> For the complete documentation index, see [llms.txt](https://docs.vida.id/identity-stack/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vida.id/identity-stack/verify/smart-kyc-fraud-api/api-integration/biometric-and-demographic-verification.md).

# Biometric & Demographic Verification

This API allows partners to perform both biometric and demographic verification in a single request. By submitting user information and a captured selfie, the API validates identity through facial analysis, liveness detection, and demographic cross-checks against trusted data sources. This combined flow enables efficient, high-assurance verification while minimizing user friction. The following section outlines the required request parameters for initiating this verification process.

## **Parameters**

### **Main Parameters**

<table><thead><tr><th width="172">Field</th><th width="117">Type</th><th>Description</th><th>Sample Value</th></tr></thead><tbody><tr><td>partnerTrxId<mark style="color:red;">*</mark></td><td>string</td><td>Generate a unique transaction ID in UUID format and include it in the request to link your transaction with the VIDA transaction.</td><td><p>Generated random UUID by the partner. </p><p></p><p>Example:</p><p><code>1000073-c00f-4008-8005-d2ec4d9be956</code></p></td></tr><tr><td>transactionType<mark style="color:red;">*</mark></td><td>string</td><td>Type of the transaction</td><td>In the biometric and demographic verification  below transaction type is applicable:<br><code>FULL_FRAUD_ASSESSMENT</code></td></tr><tr><td>govId<mark style="color:red;">*</mark></td><td>string</td><td>The user's government ID number (NIK number)</td><td> NIK - Nomor Induk Kependudukan), consisting of a 16-digit number: <code>3451222123456716</code></td></tr><tr><td>govIdType</td><td>string</td><td>The type of IDCard Document. </td><td>Supported values: <code>"KTP"</code></td></tr><tr><td>fullName<mark style="color:red;">*</mark></td><td>string</td><td>Users Full Name which should same with registered ID</td><td><p>User full name as per KTP.</p><p></p><p>Example: <code>Johnny Rudiantara Sembiring</code></p></td></tr><tr><td>dob<mark style="color:red;">*</mark></td><td>string</td><td>User's Date of Birth</td><td><p>Date of Birth in <code>yyyy-mm-dd</code> format<br></p><p>Example: <code>1989-01-01</code></p></td></tr><tr><td>mobile<mark style="color:red;">*</mark></td><td>string</td><td>The user's verified mobile number with the country code, provided in E.164 format without spaces or special characters. </td><td><p>If the mobile number isn’t available, a verified email address can be passed, however, one of the two is mandatory. </p><p></p><p>Example: <code>+6281293671234</code></p></td></tr><tr><td>email</td><td>string</td><td>The user's valid email address</td><td>Example: <code>user@gmail.com</code></td></tr><tr><td>consent<mark style="color:red;">*</mark></td><td>object</td><td>A user’s consented timestamp value where they agreed to consent sharing data with VIDA</td><td><p>"consent": {</p><p>      "consentedAt": "1614089870",</p><p>     "consentGiven": true</p><p>    }</p></td></tr><tr><td>selfiePhoto<mark style="color:red;">*</mark></td><td>base64-encoded string</td><td>A plain base64-encoded string of the user's selfie for facial recognition and face-match checks, adhering to specified image standards.</td><td>Example: <code>"/9j/4AAQSkZJRgABAQAAJAAkAAD/4QhcR..."</code></td></tr><tr><td>idCardPhoto</td><td>base64-encoded string</td><td>A plain base64-encoded string of the user ID card Photo (i.e. KTP)</td><td>Example: <code>"/9j/4AAQSkZJRgABAQAAJAAkAAD/4QhcR..."</code></td></tr></tbody></table>

<mark style="color:red;">\*</mark>required parameter

### **Extended Demographic Parameters**

Extended demographic parameters refer to additional identity-related fields that go beyond the standard personal information typically used in identity verification. Including extended parameters can enhance the accuracy of verification, support higher assurance levels, or fulfill regulatory and business requirements for more detailed profiling.

<table><thead><tr><th width="179.062255859375">Field</th><th width="117">Type</th><th>Description</th><th>Sample Value</th></tr></thead><tbody><tr><td>pob</td><td>string</td><td>User's Place of Birth</td><td><code>Jakarta</code></td></tr><tr><td>motherMaidenName</td><td>string</td><td>The user's mother’s maiden name as per IDCard.</td><td><code>Siti Elizabeth</code></td></tr><tr><td>maritalStatus</td><td>string</td><td>The user's marital status as per IDCard.</td><td><code>Belum Kawin</code></td></tr><tr><td>familyCardNo</td><td>string</td><td>The user's family card number (if idCardType is KTP)</td><td><code>3451222123456716</code></td></tr><tr><td>address</td><td>string</td><td>The user's residential address as per KTP (Alamat).</td><td><code>Jl. Pasti Cepat A7/66</code></td></tr><tr><td>village</td><td>string</td><td>The user's residential village as per KTP (Kelurahan/Desa).</td><td><code>Pegadungan</code></td></tr><tr><td>villageCode</td><td>string (4 digit)</td><td>The user's residential village code (Kelurahan/Desa).</td><td><code>1001</code></td></tr><tr><td>district</td><td>string</td><td>The user's residential district as per KTP (Kecamatan).</td><td><code>Kalideres</code></td></tr><tr><td>districtCode</td><td>string (2 digit)</td><td>The user's residential district code (Kecamatan).</td><td><code>10</code></td></tr><tr><td>city</td><td>string</td><td>The user's city of residence as per KTP (Kabupaten/Kota)</td><td><code>Jakarta Barat</code></td></tr><tr><td>cityCode</td><td>string (2 digit)</td><td>The user's city code of residence (Kabupaten/Kota)</td><td><code>13</code></td></tr><tr><td>province</td><td>string</td><td>The user's province of residence as per KTP (Provinsi).</td><td><code>DKI Jakarta</code></td></tr><tr><td>provinceCode</td><td>string (2 digit)</td><td>The user's province code of residence (Provinsi).</td><td><code>23</code></td></tr></tbody></table>

### Alternative: Multistage Full Verification with VIDA

VIDA supports Biometric and Demographic Verification executed separately.

This flow is suitable for use case where:

* Partners who requires demographic check first, before collecting user selfie photo
* Partner do intermediary check in between Demographic check and Biometric checks. For example: Credit scoring check

Such flow enable a more flexible verification flow where the client needs to handle both stages separately but link them through a shared transaction reference called `groupId`

<figure><img src="/files/xHLuTGz9VMd7LYYf2FWG" alt=""><figcaption></figcaption></figure>

1. During the [**Step 1: Demographic-only Verification**,](/identity-stack/verify/smart-kyc-fraud-api/api-integration/demographic-verification.md) partners should send a unique `groupId` that can be used to track related transactions and pair it with biometric verification for later.&#x20;
   1. The same `groupId` should be sent during the [**Step 2: Biometric-only Verification**](/identity-stack/verify/smart-kyc-fraud-api/api-integration/biometric-verification.md) to allow for NIK linking between two separate checks.
      1. In step 2, VIDA will check the Step 1's Demographic verification result based on groupId, which will determine the certificate issuance status
   2. `groupId` will expire within 1 day, and will be valid for up to 3 times of Biometric Verification retries
2. Each step will return a response `transactionId` that are unique for either calls
   1. A `registrationId` is returned upon successful Step 2. This unique ID signifies the user, which can be used for digital signature for VIDA DirectSign API.

{% hint style="info" %}
Using this flow — where both Demographic and Biometric Verification are done through VIDA — then a **Level 2 Certificate will be issue**d when both checks are accepted.

For API specification of Multistage Verification approach, please visit the [Demographic-only Verification](/identity-stack/verify/smart-kyc-fraud-api/api-integration/demographic-verification.md) and [Biometric-only Verification](/identity-stack/verify/smart-kyc-fraud-api/api-integration/biometric-verification.md) page
{% endhint %}

## **Sample Request**

<details>

<summary>Sample Request (Main Parameters Only)</summary>

```json
{
    "partnerTrxId": "{{random-UUID}}", //must be unique for every transaction.
    "transactionType":"FULL_FRAUD_ASSESSMENT",
    "mobile":"Phone Number",
    "email": "useremail@emailprovider.com",
    "govId": "Gov Id from ID Card",
    "govIdType": "KTP",
    "fullName": "Name from ID Card", 
    "dob": "YYYY-MM-DD",
    "idCardPhoto":"{{KTPCARD}}",
    "selfiePhoto":"{{selfieID1}}",
    "consent": {
        "consentedAt": "1614089870",
        "consentGiven": true
    }
}
```

</details>

<details>

<summary>Sample Request (With Extended Demog)</summary>

```json
{
  // MANDATORY FIELDS
  "partnerTrxId": "{{random-UUID}}", //must be unique for every transaction.
  "transactionType": "DATA_FRAUD_ASSESSMENT",
  "govId": "{{GOV_ID}}",
  "govIdType": "KTP",
  "fullName": "{{FULL_NAME}}",
  "mobile": "{{MOBILE_E164}}",
  "email": "{{EMAIL}}",
  "dob": "{{DOB_YYYY_MM_DD}}",
  "selfiePhoto": "{{SELFIE_BASE64}}",
  "consent": { "consentedAt": {{UNIX_EPOCH_SECONDS}}, "consentGiven": true },
  
  //Extended Demographic Fields
  "address": "{{ADDRESS}}",
  "district": "{{DISTRICT_NAME}}",
  "districtCode": "{{DISTRICT_CODE}}",
  "village": "{{VILLAGE_NAME}}",
  "villageCode": "{{VILLAGE_CODE}}",
  "city": "{{CITY_NAME}}",
  "cityCode": "{{CITY_CODE}}",
  "province": "{{PROVINCE_NAME}}",
  "provinceCode": "{{PROVINCE_CODE}}",
  "familyCardNo": "{{FAMILY_CARD_NO}}",
  "maritalStatus": "{{MARITAL_STATUS}}",
  "gender": "{{GENDER}}",
  "occupation": "{{OCCUPATION}}",
  "motherMaidenName": "{{MOTHER_MAIDEN_NAME}}",
  "pob": "{{PLACE_OF_BIRTH}}"
}
```

</details>

## **Sample Response**

HTTP Status Code: <mark style="color:$info;">`200`</mark>

<details>

<summary>JSON Response</summary>

```json
{
    "data": {
        "authenticationLevel": "IAL2",
        "certificate": {
            "level": 2,
            "detail": "Certificate with long term validity is issued and its utilization is for digital signature and digital identity purpose in VIDA system."
        },
        //authenticationLevel & certificate field should NOT be used programmatically
        //authenticationLevel & certificate result depends on verification data availability & its RA level
        //Instead, customer should define successful transaction based on Status Check API, score & fraudAssessment status,

        "transactionType": "FULL_FRAUD_ASSESSMENT",
        "transactionId": "713ec63c-fa89-4efc-971b-d1120112eef9",
        "fraudAssessment": "COMPLETED",
        "assessmentResults": [
            {
                "name": "full_name",
                "result": 1.0
            },
            {
                "name": "dob",
                "result": 1.0
            },
            {
                "name": "nik",
                "result": 1.0
            },
            {
                "name": "selfiePhoto",
                "result": 0.9
            },
            {
                "name": "liveness",
                "result": 0.164398
            },
            {
                "name": "imgManipulationScore",
                "result": 0.117981
            }
        ]
    }
}
```

</details>

#### Sample Response Value Explanation

<table><thead><tr><th width="199.36785888671875">Values</th><th>Description</th></tr></thead><tbody><tr><td><strong>full_name</strong></td><td>Degree of match between the provided full name and stored data.</td></tr><tr><td><strong>selfiePhoto</strong></td><td>The degree of match between the selfie provided and the stored biometric data. (Score threshold: 0 to 1)</td></tr><tr><td><strong>liveness</strong></td><td>Score indicating the likelihood that the selfie represents a live person. (Score: 0 to 1)</td></tr><tr><td><strong>imgManipulationScore</strong></td><td>Score that indicate the probability of image manipulation in the selfie. (Score: 0 to 1)</td></tr><tr><td><strong>dob</strong></td><td>Score that indicate the probability of date of birth data validation. (Score: 0 to 1)</td></tr><tr><td><strong>fraudAssessment</strong></td><td><p>Indicates the current state of the fraud assessment process.</p><ul><li>Status: SUBMITTED — The assessment has been submitted and is pending review. At this stage, the data will be processed through post-correction.</li><li><p>Status: COMPLETED — The review process is finished, and the result is either approved or rejected:</p><ul><li>Approved: The data has been successfully corrected and validated.</li><li>Rejected: The data was found to be incorrect or spoofed, and has been rejected.</li></ul></li></ul></td></tr><tr><td><strong>authenticationLevel</strong></td><td><a href="/pages/imLVFT18M11v0vr29Nau">Assurance level </a>of the authentication process.<br><br>authenticationLevel field should not be used programmatically to determine a successful transaction. Instead, customer should define successful transaction based on Status Check API, score &#x26; fraudAssessment status</td></tr><tr><td><strong>certificate</strong></td><td>Details regarding the certificate's trustworthiness for digital signatures.<br><br>certificate field should not be used programmatically to determine a successful transaction. Instead, customer should define successful transaction based on Status Check API, score &#x26; fraudAssessment statu</td></tr></tbody></table>

## 1. Accept Responses

HTTP Status Code: `200`

Status : `SUCCESS`

### Main Required Parameters

<details>

<summary>JSON Response</summary>

```json
{
    "data": {
        "authenticationLevel": "IAL2",
        "certificate": {
            "level": 2,
            "detail": "Certificate with long term validity is issued and its utilization is for digital signature and digital identity purpose in VIDA system."
        },
        //authenticationLevel & certificate field should NOT be used programmatically
        //authenticationLevel & certificate result depends on verification data availability & its RA level
        //Instead, customer should define successful transaction based on Status Check API, score & fraudAssessment status,

        "transactionType": "FULL_FRAUD_ASSESSMENT",
        "transactionId": "unique transaction id generated to identify this transaction",
        "fraudAssessment": "COMPLETED",
        "assessmentResults": [
            {
                "name": "full_name",
                "result": 1.0
            },
            {
                "name": "dob",
                "result": 1.0
            },
            {
                "name": "nik",
                "result": 1.0
            },
            {
                "name": "selfiePhoto",
                "result": 0.9
            },
            {
                "name": "liveness",
                "result": 0.164398
            },
            {
                "name": "imgManipulationScore",
                "result": 0.117981
            }
        ]
    }
}
```

</details>

### With All Extended Demographic Parameters

<details>

<summary>JSON Response</summary>

```json
{
    "data": {
        "authenticationLevel": "IAL2",
        "certificate": {
            "level": 2,
            "detail": "Certificate with long term validity is issued and its utilization is for digital signature and digital identity purpose in VIDA system."
        },
        //authenticationLevel & certificate field should NOT be used programmatically
        //authenticationLevel & certificate result depends on verification data availability & its RA level
        //Instead, customer should define successful transaction based on Status Check API, score & fraudAssessment status,

        "transactionType": "FULL_FRAUD_ASSESSMENT",
        "transactionId": "unique transaction id generated to identify this transaction",
        "fraudAssessment": "COMPLETED",
        "assessmentResults": [
            {
                "name": "full_name",
                "result": 1.0
            },
            {
                "name": "dob",
                "result": 1.0
            },
            {
                "name": "mother_maiden_name",
                "result": 1.0
            },
            {
                "name": "nik",
                "result": 1.0
            },
            {
                "name": "selfiePhoto",
                "result": 0.9
            },
            {
                "name": "liveness",
                "result": 0.164398
            },
            {
                "name": "imgManipulationScore",
                "result": 0.117981
            }
        ]
    }
}
```

</details>

## 2. Reject Responses

### 2.1 Below threshold

Case when selfie photo or demographic check result is below the VIDA assurance threshold.

HTTP Status Code: `200`

Status : `Success`

### SelfiePhoto Score

<details>

<summary>JSON Response</summary>

```json
{
    "data": {
        "transactionType": "FULL_FRAUD_ASSESSMENT",
        "transactionId": "2c08afcc-fbb5-4409-8d2e-28bd6f2cddbe",
        "fraudAssessment": "COMPLETED",
        "assessmentResults": [
            {
                "name": "full_name",
                "result": 1.0
            },
            {
                "name": "dob",
                "result": 1.0
            },
            {
                "name": "mother_maiden_name",
                "result": 1.0
            },
            {
                "name": "nik",
                "result": 1.0
            },
            {
                "name": "selfiePhoto",
                "result": 0.30000000000000004
            },
            {
                "name": "liveness",
                "result": 0.070489
            },
            {
                "name": "imgManipulationScore",
                "result": 0.081049
            }
        ]
    }
}    
```

</details>

### Demographic Score

<details>

<summary>JSON Response</summary>

```json
{
    "data": {
        "transactionType": "FULL_FRAUD_ASSESSMENT",
        "transactionId": "38f32f36-ebb9-4a72-94ad-554321e9027d",
        "fraudAssessment": "COMPLETED",
        "assessmentResults": [
            {
                "name": "full_name",
                "result": 0.375
            },
            {
                "name": "dob",
                "result": 1.0
            },
            {
                "name": "nik",
                "result": 1.0
            },
            {
                "name": "selfiePhoto",
                "result": 0.9
            },
            {
                "name": "liveness",
                "result": 0.070489
            },
            {
                "name": "imgManipulationScore",
                "result": 0.081049
            }
        ]
    }
}
```

</details>

### Demographic & SelfiePhoto Score

<details>

<summary>JSON Response</summary>

```json
{
    "data": {
        "transactionType": "FULL_FRAUD_ASSESSMENT",
        "transactionId": "8d069f89-c917-4c9e-8292-fe2cbfe7b487",
        "fraudAssessment": "COMPLETED",
        "assessmentResults": [
            {
                "name": "full_name",
                "result": 0.375
            },
            {
                "name": "dob",
                "result": 1.0
            },
            {
                "name": "nik",
                "result": 1.0
            },
            {
                "name": "selfiePhoto",
                "result": 0.30000000000000004
            },
            {
                "name": "liveness",
                "result": 0.070489
            },
            {
                "name": "imgManipulationScore",
                "result": 0.081049
            }
        ]
    }
}
```

</details>

### 2.2 Liveness and Image Manipulation not passed

HTTP Status Code: `200`

Status : `Success`

**JSON Response**&#x20;

<details>

<summary>Liveness Check Error &#x26; Image Manipulation Check Failed</summary>

```json
{
    "data": {
        "transactionType": "FULL_FRAUD_ASSESSMENT",
        "transactionId": "320814b5-b97c-46a9-8c3b-96e844e88c84",
        "fraudAssessment": "COMPLETED",
        "assessmentResults": [
            {
                "name": "liveness",
                "result": 0.999932
            },
            {
                "name": "imgManipulationScore",
                "result": 0.997597
            }
        ]
    }
}
```

</details>

### 2.3 Image quality not passed (single detail)

HTTP Status Code: `200`

Status : `SUCCESS`

#### Face Too Small

<details>

<summary>JSON Response</summary>

```json
{
    "transactionId": "2ad38778-00d9-4fdf-b509-a3b6bf35eb34",
    "groupId": "{{as received in request}}",
    "errors": [
        {
            "code": 1052,
            "title": "Detect Un-standardized Image Quality",
            "detail": "Face too small"
        }
    ]
}
```

</details>

#### Face Occluded

<details>

<summary>JSON Response</summary>

```json
{
    "transactionId": "b8cc863f-d61e-4f62-b2a0-63796903798f",
    "groupId": "{{as received in request}}",
    "errors": [
        {
            "code": 1051,
            "title": "Detect Un-standardized Image Quality",
            "detail": "Face Occluded"
        }
    ]
}
```

</details>

#### Multiple Faces Detected

<details>

<summary>JSON Response</summary>

```json
{
    "transactionId": "b8cc863f-d61e-4f62-b2a0-63796903798f",
    "groupId": "{{as received in request}}",
    "errors": [
        {
            "code": 1055,
            "title": "Detect Un-standardized Image Quality",
            "detail": "No face detected"
        }
    ]
}
```

</details>

#### Image is Blurry

<details>

<summary>JSON Response</summary>

```json
{
    "transactionId": "b8cc863f-d61e-4f62-b2a0-63796903798f",
    "groupId": "{{as received in request}}",
    "errors": [
        {
            "code": 1076,
            "title": "Image Quality Is Below Threshold",
            "detail": "Image Is Blur"
        }
    ]
}
```

</details>

#### Underexposure

<details>

<summary>JSON Response</summary>

```json
{
    "transactionId": "b8cc863f-d61e-4f62-b2a0-63796903798f",
    "errors": [
        {
            "code": 1074,
            "title": "Image Quality Is Below Threshold",
            "detail": "Under Exposure"
        }
    ]
}
```

</details>

#### Overexposure

<details>

<summary>JSON Response</summary>

```json
{
    "transactionId": "2ad38778-00d9-4fdf-b509-a3b6bf35eb34",
    "errors": [
        {
            "code": 1075,
            "title": "Image Quality Is Below Threshold",
            "detail": "Over Exposure"
        }
    ]
}
```

</details>

#### Unnatural Color

<details>

<summary>JSON Response</summary>

```json
{
    "transactionId": "b0f4a52f-d917-41d1-8e0b-23fa93c34d15",
    "errors": [
        {
            "code": 1063,
            "title": "Image Quality Is Below Threshold",
            "detail": "UnNatural Color"
        }
    ]
}
```

</details>

### 2.4 Image quality not passed (multiple details)

HTTP Status Code: `200`

Status : `Success`

#### Blur and Overexposure

<details>

<summary>JSON Response</summary>

```json
{
    "transactionId": "b8cc863f-d61e-4f62-b2a0-63796903798f",
    "groupId": "{{as received in request}}",
    "errors": [
        {
            "code": 1075,
            "title": "Image Quality Is Below Threshold",
            "detail": "Over Exposure"
        },
        {
            "code": 1076,
            "title": "Image Quality Is Below Threshold",
            "detail": "Image Is Blur"
        }
    ]
}
```

</details>

#### Blur and Underexposure

<details>

<summary>JSON Response</summary>

```json
{
    "transactionId": "b8cc863f-d61e-4f62-b2a0-63796903798f",
    "groupId": "{{as received in request}}",
    "errors": [
        {
            "code": 1074,
            "title": "Image Quality Is Below Threshold",
            "detail": "Under Exposure"
        },
        {
            "code": 1076,
            "title": "Image Quality Is Below Threshold",
            "detail": "Image Is Blur"
        }
    ]
}
```

</details>

#### Blur and Unnatural Color

<details>

<summary>JSON Response</summary>

```json
{
    "transactionId": "b8cc863f-d61e-4f62-b2a0-63796903798f",
    "groupId": "{{as received in request}}",
    "errors": [
        {
            "code": 1063,
            "title": "Image Quality Is Below Threshold",
            "detail": "UnNatural Color"
        },
        {
            "code": 1076,
            "title": "Image Quality Is Below Threshold",
            "detail": "Image Is Blur"
        }
    ]
}
```

</details>

#### Unnatural Color and Overexposure

<details>

<summary>JSON Response</summary>

```json
{
    "transactionId": "b8cc863f-d61e-4f62-b2a0-63796903798f",
    "errors": [
        {
            "code": 1075,
            "title": "Image Quality Is Below Threshold",
            "detail": "Over Exposure"
        },
        {
            "code": 1063,
            "title": "Image Quality Is Below Threshold",
            "detail": "UnNatural Color"
        }
    ]
}
```

</details>

## 3. Error Responses

These errors occur when one or more mandatory fields are not provided in the request. The response includes details of the missing parameter in the detail field.

HTTP Status Code: `400`

Status : `ERROR`&#x20;

#### Missing (fullName)

<details>

<summary>JSON Response</summary>

```json
{
    "errors": [
        {
            "code": 1006,
            "title": "must not be blank",
            "detail": "dob"
        }
    ]
}
```

</details>

#### Missing (selfiePhoto)

<details>

<summary>JSON Response</summary>

```json
{
    "errors": [
        {
            "code": 1006,
            "title": "must not be blank",
            "detail": "selfiePhoto"
        }
    ]
}
```

</details>

#### Missing (DOB and fullName)

<details>

<summary>JSON Response</summary>

```json
{
    "errors": [
        {
            "code": 1006,
            "title": "must not be blank",
            "detail": "dob"
        },
        {
            "code": 1006,
            "title": "must not be blank",
            "detail": "fullName"
        }
        
    ]
}
```

</details>

## 4. Response when the API submitted in Manual Review

Response returned when the API submission enters the manual review stage.

HTTP Status Code: `440`

Status: `SUBMITTED`

<details>

<summary>JSON Response for Manual Review</summary>

```json
{
    "data": {
        "transactionType": "FULL_FRAUD_ASSESSMENT",
        "transactionId": "82a2b8d8-3078-470a-86a2-a7d54f23ab7f",
        "fraudAssessment": "SUBMITTED",
        "assessmentResults": [
            {
                "name": "full_name",
                "result": 0.6150000000000001
            },
            {
                "name": "dob",
                "result": 1.0
            },
            {
                "name": "nik",
                "result": 1.0
            },
            {
                "name": "selfiePhoto",
                "result": 0.9
            }
        ]
    }
```

</details>
