INDIVIDUAL or an ORGANIZATION.
VALID risk factors already associated with the entity's service profile into the workflow's context. The initial risk score is based on this pre-existing state.
processResults, which serve as the source data for many risk factors.
RISK step is triggered. This step evaluates all factors defined in the risk profile, applies the configured scoring logic (scoreMethod), and aggregates the results to produce a final score for each factor.
workflowRiskScore. This score is then mapped to a workflowRiskLevel. The complete RiskAssessment is added to the workflowResult.
STALE.
entity\_agelookup\_rangeindividual.dateOfBirth.normalizeddocument\_type\_lookuplookupmax (Typically used to take the score of the riskiest document)individual.documents.IDENTITY\[].typejurisdiction\_lookuplookupmaxindividual.nationalityjurisdiction\_lookuplookupmaxindividual.addresses\[] where type is RESIDENTIALis\_pep, has\_sanctions, has\_adverse\_media, on\_watchlistboolprocessResults\[] where supplementaryData.type is AMLpep\_level\_lookuplookupmaxprocessResults\[].supplementaryData.pepData\[].levelworkflow\_attempts\_counterlookup\_rangeindividual.customAttributes object.
custom\_attribute\_lookuplookupindividual.customAttributesunresolved\_duplicateslookup\_rangetrue\_positive\_duplicateslookup\_rangefraud\_count\_sessionlookup\_rangefraud\_ip\_addresslookupmax (to capture the highest risk signal from any session)\["HIGH", "LOW"]).fraud\_devicelookupmax (to capture the highest risk signal from any device)\["HIGH", "LOW"]).fraud\_emaillookup"MEDIUM").fraud\_phone\_numberlookup"HIGH").FALSE\_POSITIVE | The risk for the result is ignored entirely and excluded from the calculation. |
| TRUE\_POSITIVE\_ACCEPT | The risk for the result is forced to LOW to reflect that the signal is real but the risk has been accepted by the operator. |
| TRUE\_POSITIVE\_REJECT | The risk for the result remains as it was from the provider, reflecting that the signal is real and has been rejected by the operator. |
***
## Advanced Configuration
### Aggregation Methods
Aggregation applies only when a factor's handler yields multiple input values (e.g., multiple device risk scores). The engine first calculates an "item score" for each value and then collapses them into a single "factor score" using one of the following methods:
| Method | Description |
| :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |
| **max** | The final factor score is the highest score from all evaluated items. |
| **sum** | The final factor score is the sum of all item scores. |
| **min** | The final factor score is the lowest score from all evaluated items. |
| **average** | The final factor score is the mathematical average of all item scores. |
| **count** | The final score is determined by the total number of input items, which is then mapped against the ranges defined in the scores array. |
### Connector-Level HIT/CLEAR Mapping
For some third-party providers, you can configure how their risk levels map to FrankieOne's `HIT` or `CLEAR` results at the connector level. This allows for fine-tuning of your risk appetite.
By default, the mapping is:
* `HIGH`, `MEDIUM`, `UNACCEPTABLE` -> **HIT**
* `LOW` -> **CLEAR**
You can override this behavior in the connector configuration. For example, to treat `MEDIUM` risk as `CLEAR`:
```json theme={null}
"connector": {
"provider": {
"...rest of provider config": "",
"v2": {
"riskLevelPROResultMapping": {
"FRAUD_DEVICE": {
"MEDIUM": "CLEAR"
},
"FRAUD_IP_ADDRESS": {
"MEDIUM": "CLEAR"
},
"FRAUD_EMAIL_ADDRESS": {
"MEDIUM": "CLEAR"
},
"FRAUD_PHONE_NUMBER": {
"MEDIUM": "CLEAR"
}
}
},
"...rest of provider config": ""
}
}
```
# Australian Documents
Source: https://docs.frankieone.com/docs/australian-documents-v2
The FrankieOne KYC v2 API supports a variety of Australian documents for identity verification. This guide provides details on how to handle these documents effectively.
## Supported Australian Documents
The FrankieOne KYC v2 API supports the following Australian documents:
| Document Name | Document Type |
| :---------------------------- | :------------------- |
| Birth Certificate | `BIRTH_CERT` |
| Centrelink Card | `CONCESSION` |
| Citizenship Certificate | `CITIZENSHIP` |
| Immigration Card (ImmiCard) | `IMMIGRATION` |
| Drivers License | `DRIVERS_LICENSE` |
| Marriage Certificate | `MARRIAGE_CERT` |
| Name Change Certificate | `NAME_CHANGE` |
| National Health ID (Medicare) | `NATIONAL_HEALTH_ID` |
| Passport | `PASSPORT` |
***
### Birth Certificates
Birth certificates are official documents issued by the government that record an individual's birth. They include details such as the individual's name, date of birth, place of birth, and parentage.
When submitting a birth certificate for verification, ensure the document is clear, complete, and issued by an official authority. All required details, as specified below, must be included:
**Required Fields**
GET /v2/workflows
to see which workflows are enabled for your account.
| flowId | On which stage? | Event Emitted | Payload |
| ocr\_only | failed uploading OCR | `ocr_only:failed` | - |
| ocr\_only | success uploading OCR | `ocr_only:success` | - |
| manual\_kyc | manual kyc is mounted | `manual_kyc:mounted` | - |
| manual\_kyc | success with manual kyc | `manual_kyc:success` | - |
| manual\_kyc | partial success with manual kyc | `manual_kyc:partial` | - |
| manual\_kyc | failed manual kyc | `manual_kyc:failed` | - |
| idv | idv is getting mounted | `idv:mount` | - |
| idv | idv process success | `idv:success` | - |
| idv | idv process failed | `idv:failed` | - |
| idv | idv getting rendered | `idv:render` | - |
| idv\_review | idv\_review is getting mounted | `idv_review:mount` | - |
| idv\_review | idv\_review getting rendered | `idv_review:render` | - |
| idv\_review | idv was failed on idv\_review flow | `idv_review:idv_failed` | (error message depends on error type) |
| idv\_review | after submitting review screen | `idv_review:submit` | * |
| idv\_review | idv\_review process is success | `idv_review:success` | result from calling `individual.submit()` sample: ```json theme={null} { "payload": { "checkDate": "0001-01-01T00:00:00.000Z", "checkTypes": [ "id", "namev", "two_plus", "pep", "idvalidate" ], "personalChecks": { "name": null, "dateOfBirth": null, "phoneNumber": null, "email": null, "chineseName": null, "addresses": { "4021e881-e51a-48ab-b8db-82cdc882d1a2": null } }, "status": { "type": "unchecked", "label": "Unchecked", "key": "UNCHECKED" }, "risk": { "level": null, "class": "HIGH" }, "alertList": [], "blocklistPotentialMatches": [], "duplicatePotentialMatches": [], "duplicateBlocklistMatches": [], "checkCounts": { "name": null, "address": { "4021e881-e51a-48ab-b8db-82cdc882d1a2": [] }, "document": {}, "dob": null }, "kycMethod": "electronic", "issues": { "creditHeader": false, }, "checkResults": [], "rulesetsMatches": [] } } ``` |
| idv\_review | during idv\_review, there are some issues occurred | `idv_review:error` | ```json theme={null} { error: {} // object of dumped errors } ``` |