---
title: "Decision webhook | Veriff.com"
slug: "decision-webhook"
description: "Learn how to set up Veriff's decision webhook to receive verification session results from Veriff."
updated: 2026-05-07T11:50:40Z
published: 2026-05-07T11:50:40Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.veriff.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Decision webhook

Most of the verification solutions use the decision webhook to post data about the verification decision, verified data and checks, and session info (e.g. session ID, attempt ID, different timestamps).

The payload is sent to `Webhook decisions URL`, which you need to set up the webhook in the Veriff Customer Portal.

→*See Webhooks Guide > [Set up webhooks](https://veriff-dev-documentation.document360.io/docs/webhooks-guide#set-up-webhooks) sub-section for detailed overview of the setup process*

---

## When is decision webhook sent?

Veriff sends decision webhooks immediately after making a decision, with one exception: webhooks with `resubmission_requested` status are delayed by 5 minutes for SDK sessions (native or web) where end-users are asked to resubmit their data on the final screen. During this 5-minute window:

- No webhook is sent
- End-user can resubmit their data
- If they do not resubmit within 5 minutes, Veriff sends the webhook with `resubmission_requested` status

If the session is uploaded via API, decision webhook is sent immediately.

---

## Prerequisites

1. Make sure you **have access to the Veriff Customer Portal**
  1. If you do not, see the Getting Started → [Sign up](https://devdocs.veriff.com/docs/signing-up) and [Log in](https://devdocs.veriff.com/docs/logging-in) articles
2. Set up webhook URL(s) **on your side**and have them at hand
  1. Make sure they **match** the [Webhook URL](https://devdocs.veriff.com/docs/webhooks-guide#webhook-url-requirements) requirements
  2. Make sure your system is **able to handle** [Webhooks receipt, delivery and resending](https://devdocs.veriff.com/docs/webhooks-guide#webhook-delivery-receipt-and-resending) requirements
  3. Check the [Webhooks headers and payload](https://devdocs.veriff.com/docs/webhooks-guide#webhooks-headers-and-payload) section for info
3. Secure your communication, check the [HMAC Authentication and Endpoint Security](https://devdocs.veriff.com/docs/hmac-authentication-and-endpoint-security) article
4. Make sure your system is **able to handle** the [Backwards compatible changes](https://devdocs.veriff.com/docs/backwards-compatible-changes)

5.Proceed to **Decision webhook setup section** below

---

## Decision webhook setup

1. Log in to the **Veriff Customer Portal**
2. Navigate to the **Integrations** page via the top menu and open the relevant integration
3. On the integration's page, select the **Settings** tab
4. Under the title **Integration settings** you see a list of webhooks
5. Fill in the `Webhook decisions URL`

→*See Webhooks Guide > [Set up webhooks](https://veriff-dev-documentation.document360.io/docs/webhooks-guide#set-up-webhooks) sub-section for detailed overview of the setup process*

---

## Additional notes

> [!NOTE]
> **Driver's license categories extraction**
> 
> **Contact** your **Solutions Engineer** who can **activate the feature** for your integration, so it is possible to extract the `validFrom` and `validUntil` dates from a driver's license.

> [!NOTE]
> `riskScore` parameter
> 
> This is a numerical value representing the overall risk associated with the session. **Lower score indicates higher confidence in that the session is genuine**.
> 
> In the API and webhooks payloads, the range is shown as an integer in the range of 0.0–1.0
> 
> In the Veriff Customer Portal, the range is shown as 1–100

> [!WARNING]
> `pepSanctionMatch` parameter
> 
> **Warning: legacy field, may return incorrect result.**
> 
> 
> 
> - If you are running the AML checks, please see the [watchlist-screening webhook](/v1/docs/watchlist-screening-webhook) for accurate data.
> - If you are running the UKDIATF M1B checks, accurate data is in the decision webhook payload, in `verification.additionalVerifiedData.UKTFResult.PEP` string.

> [!NOTE]
> `submissionTime` parameter
> 
> This parameter indicates the moment when the session was submitted. It is an accurate timestamp of the session submission moment and can differ from the time value that can be derived from when the even webhook with `submitted` status was received.

> [!NOTE]
> **Note about INE and CURP registry check**`matchData`
> 
> - `MATCH` means that the input data matches registry data
> - `NO_MATCH` means the input data does not match registry data
> - `NO_INPUT` means no data was provided for the field
> - `NO_DATA` means the registry did not contain any info for this field

---

## Sample request

```json
{
    "status": "success",
    "verification": {
        "id": "12df6045-3846-3e45-946a-14fa6136d78b",
        "attemptId": "00bca969-b53a-4fad-b065-874d41a7b2b8",
        "vendorData": "12345678",
        "endUserId": "a1b2c35d-e8f7-6d5e-3cd2-a1b2c35db3d4",
        "status": "approved",
        "code": 9001,
        "reason": null,
        "reasonCode": null,
        "decisionTime": "2024-11-06T07:17:36.916Z",
        "acceptanceTime": "2024-11-06T07:15:27.000Z",
        "submissionTime": "2024-11-06T07:16:15.736755Z",
        "person": {
            "firstName": "SARAH",
            "lastName": "MORGAN",
            "dateOfBirth": "1967-03-30",
            "gender": null,
            "nationality": null,
            "idNumber": null,
            "yearOfBirth": "1967",
            "placeOfBirth": "MADRID",
            "addresses": [
               {
                "fullAddress": "1234 Ridge Road, Indiana, 56789 USA",
                "parsedAddress": {
                    "city": null,
                    "unit": null,
                    "state": "Indiana",
                    "subDivision": "Indiana",
                    "street": "1234 Ridge Road",
                    "country": "USA",
                    "postcode": "56789",
                    "houseNumber": "null"
                }
              }
            ],
            "fullName": "SARAH EMILY MORGAN",
            "nameComponents": {
                "title": null,
                "middleName": "EMILY",
                "firstNameOnly": "SARAH",
                "firstNameSuffix": null
            },
            "occupation": "Engineer",
            "employer": "Any Company LLC",
            "foreignerStatus": "EXTRANJERO",
            "extraName": "NOM D'USAGE",
            "title": "DR",
            "pepSanctionMatch": null,
            "phoneNumber": "+1234567890",
            "citizenship": null,
            "electorNumber": "GMVLMR80070501M100",
            "eyeColor": "BRN",
            "hairColor": "BRN",
            "height": "5'-03",
            "weight": "093 lb"
        },
        "document": {
            "number": "MORGA753116SM9IJ",
            "validFrom": null,
            "validUntil": "2022-04-20",
            "type": "DRIVERS_LICENSE",            
            "country": "US",
            "state": "NY",
            "placeOfIssue": "ALBANY",
            "firstIssue": "2015-03-21",
            "issueNumber": "01",
            "issuedBy": "ISSUER",
            "remarks": "WORK PERMITTED",
            "nfcValidated": true,
            "residencePermitType": "C",
            "portraitIsVisible": "true",
            "signatureIsVisible": "true",
            "ineIdentifier": "116375842",
            "specimen": {
                "containsContactlessChip": false,
                "firstIssuedDate": "2020-01-01",
                "lastIssuedDate": "2021-01-02",
                "nistVersion": "1.2.3",
                "digitalDocument": true,
                "nonStandardDrivingLicense": false,
                "militaryDocument": false,
                "temporaryEmergencyDocument": false,
                "asylumRefugeeDocument": false,
                "ICAOStandardizedDocument": false,
                "notNationalIdCard": true,
                "legalStatus": "primary",
                "hasSecurityRisk": false
            }
        },
        "additionalVerifiedData": {
            "driversLicenseNumber": "1234569",  
            "driversLicenseCategory": {
                "B": true
            },
            "driversLicenseCategoryFrom": {
                "B": "2019-10-06"
            },
            "driversLicenseCategoryUntil": {
                "B": "2025-10-05"
            },
            "driversLicenseCategories": ["B", "C", "5", "6"],
            "estimatedAge": 32,
            "estimatedGender": 0.613,
            "processNumber": "12345678912 1234",        
            "cpfValidation": {
                "status": "CPF is validated",
                "cpfNumber": "123456789",
                "name": "SARAH MORGAN",
                "dateOfBirth": "1967-03-30",
                "yearOfDeath": null
            },
            "ineBiometricRegistryValidation": {
                "faceMatch": true,
                "faceMatchPercentage": 89,
                "responseStatus": "success"
            },
            "registryValidation": {
                "countryRegistry": "CO",
                "registryName": "resigo",
                "fullNameSimilarity": 80,
                "documentValid": true,
                "personIsAlive": true
            },
            "proofOfAddress": {
                "nameMatch": true,
                "nameMatchPercentage": 100.00,
                "documentType": "UTILITY_BILL",
                "issueDate": "2025-09-01",
                "fraud": {
                    "riskLevel": "HIGH_RISK",
                    "reason": "PDF_PROCESSED_BY_EDITOR",
                    "reasonDescription": "Document was processed using editing software",
                    "indicators": []
                },
                "addressValidationResult": {
                    "status": "CONFIRMED",
                    "components": {
                        "plausibleFullAddress": "23 Willowbrook Lane, Ashford, Kent CT19 8NP, UK",
                        "city": "Ashford",
                        "unit": null,
                        "state": null,
                        "street": "Willowbrook Lane",
                        "country": "UK",
                        "postcode": "Kent CT19 8NP",
                        "houseNumber": "23"
                    },
                    "addressType": "residential",
                    "validations": {
                        "countryExists": {
                            "result": "skipped"
                        }
                    }
                }
            },
            "addressMatching": {
                "addresses": [
                  {
                    "fullAddress": "23 Willowbrook Lane, Kent CT19 8NP, UK",
                    "parsedAddress": {
                        "city": null,
                        "unit": null,
                        "state": null,
                        "street": "Willobrook Lane",
                        "country": "UK",
                        "postcode": "Kent CT19 8NP",
                        "houseNumber": "23"
                    }
                  },
                  {
                    "fullAddress": "23 Willowbrook Lane, Ashford, Kent CT19 8NP, United Kingdom",
                    "parsedAddress": {
                        "city": "Ashford",
                        "unit": null,
                        "state": "null",
                        "street": "Willobrook Lane", 
                        "country": "United Kingdom",
                        "postcode": "Kent CT19 8NP",
                        "houseNumber": "23"
                    }
                  }
                ],
                "result": true,
                "matchThreshold": 80,
                "matchPercentage": 90
            },
            "validationResults": [
               { 
                "registryName": "USA - Credit + US Identity Graph (US15)",
                "firstName": "MATCH",
                "lastName": "MATCH",
                "dateOfBirth": "NO_INPUT",
                "address": "PARTIAL_MATCH",
                "city": "MATCH",
                "state": "MATCH",
                "zip": "MATCH",
                "idNumber": "NO_DATA"
               }
            ],
            "officialDatabaseVerification": {
                "ine": {
                    "matchData": {
                        "fullName": "MATCH",
                        "dateOfBirth": "MATCH",
                        "gender": "NO_INPUT"
                    },
                    "validations": {
                        "processing": {
                            "result": "success",
                            "reasons": null
                        },
                        "ineCardIsValid": {
                            "result": "success",
                            "reasons": null
                        },
                        "ineIsValidForVoting": {
                            "result": "success",
                            "reasons": null
                        },
                        "matching": {
                            "result": "success"
                        }
                    },
                    "registryResponse": {
                        "electorKey": "GOMZJN89041509H300",
                        "issueNumber": "3",
                        "registrationYear": "2010",
                        "issueYear": "2018",
                        "validity": "31 de diciembre de 2028",
                        "ocr": "0876543210987",
                        "cic": "IDMEX2023456789012",
                        "federalDistrict": "4"
                    }
                },
                "curp": {
                    "matchData": {
                        "fullName": "MATCH",
                        "dateOfBirth": "MATCH",
                        "gender": "NO_INPUT"
                    },
                    "validations": {
                        "processing": {
                            "result": "success"
                        },
                        "curpIsValid": {
                            "result": "success"
                        },
                        "curpHasRiskFactors": {
                            "result": "not_applicable"
                        },
                        "matching": {
                            "result": "success"
                        }
                    },
                    "registryResponse": {
                        "curp": "VISH560427MSRLNL06",
                        "paternalSurname": "VILLA",
                        "maternalSurname": "SANCHES",
                        "names": "GLORIA",
                        "gender": "MUJER",
                        "dob": "27/04/1956",
                        "nationality": "MEXICO",
                        "supportingDocument": "1",
                        "registrationEntity": "SONORA",
                        "registrationStateNumber": null,
                        "registrationMunicipalityKey": null,
                        "page": null,
                        "tome": null,
                        "book": null,
                        "minutesNumber": "02203",
                        "crip": "string",
                        "registrationEntity2": "HERMOSILLO",
                        "registrationYear": "1956",
                        "foreignRegistrationNumber": "string",
                        "letterFolio": "string",
                        "birthStateKey": "SONORA",
                        "issueEntityKey": "SONORA",
                        "curpStatus": "RNC",
                        "certificateFolio": "string"
                    }
                }
            },
            "faceMatch": "strong_match",
            "biometricRegistryValidationResults": {
                "BR": {
                    "isNameMatch": null,
                    "isDobMatch": null,
                    "isFaceMatch": null
                }
            },
            "cadastroUnico": {
                "validations": {
                    "processing": {
                        "result": "success",
                        "reasons": null
                    },
                    "isUserDataValid": {
                        "result": "success",
                        "reasons": null
                    },
                    "isNotBcpBeneficiary": {
                        "result": "failure",
                        "reasons": ["User is bcp beneficiary"]
                    },
                    "isNotBolsaFamiliaBeneficiary": {
                        "result": "success",
                        "reasons": []
                    },
                    "isNotSeguroDefesoBeneficiary": {
                        "result": "failure",
                        "reasons": ["User is seguro defeso beneficiary"]
                    },
                    "isNotCadastroUnicoBeneficiary": {
                        "result": "success",
                        "reasons": []
                    },
                    "isNotAuxilioEmergencialBeneficiary": {
                        "result": "failure",
                        "reasons": ["User is auxilio emergencial beneficiary"]
                    }
                },
                "registryResponse": {
                    "bcpBenefit": {
                        "state": "SP",
                        "benefitNumber": "",
                        "isInRegistry": true,
                        "beneficiaryNis": "",
                        "referenceMonth": "202210",
                        "competenceMonth": "202210",
                        "installmentValue": "1.212,00",
                        "municipalityName": "OSASCO",
                        "judiciallyGrantedBenefit": ""
                    },
                    "bolsaFamiliaBenefit": {
                        "qsa": true,
                        "currentlyActive": false,
                        "lastBenefitDate": "05/12/2022",
                        "dataInconsistency": false,
                        "firstBenefitDate": "05/12/2022",
                        "lastBenefitValue": "",
                        "last12MonthsData": "dez/25 - NAO, nov/25 - NAO, out/25 - NAO",
                        "lastBenefitPayment": "",
                        "wasBenefitRecipient": true,
                        "currentlyInBolsaFamilia": false,
                        "employmentLinkLast5Years": true
                    },
                    "seguroDefesoBenefit": {
                        "isInRegistry": true,
                        "beneficiaryCpf": "12345678901",
                        "beneficiaryNis": "12345678901",
                        "beneficiaryName": "MARIA SILVA SANTOS",
                        "beneficiaryState": "AL",
                        "municipalityCode": "1234",
                        "municipalityName": "CORURIPE",
                        "benefitReferenceMonth": "01/10/2022",
                        "installmentValueReceived": "1212.00",
                        "fishingRegistrationNumber": "123456",
                        "bolsaFamiliaInsuranceSameDate": false
                    },
                    "auxilioEmergencialBenefit": {
                        "state": "PR",
                        "value": "300,00",
                        "observation": "NAO HA",
                        "installments": "9",
                        "municipality": "CAMBE",
                        "classification": "CADUN NAO BOLSA",
                        "isInRegistry": true,
                        "availableMonth": "12/2020",
                        "municipalityCode": "1234567"
                    }
                }
            },
            "proBet": {
                "validations": {
                    "processing": {
                        "result": "success",
                        "reasons": null
                    },
                    "isUserDataValid": {
                        "result": "success",
                        "reasons": null
                    },
                    "isNotOnPia": {
                        "result": "failure",
                        "reasons": [
                            "User is on PIA registry"
                        ]
                    },
                    "isNotOnProBet": {
                        "result": "failure",
                        "reasons": [
                            "User is on Pro Bet registry"
                        ]
                    }
                },
                "registryResponse": {
                    "pepData": {
                        "name": "MARIA SILVA SANTOS",
                        "role": "SECRETARIO GERAL",
                        "organization": "SECRETARIA NACIONAL DE DESENVOLVIMENTO REGIONAL",
                        "exerciseStartDate": "25/07/2023",
                        "exerciseEndDate": "",
                        "pepValidityDate": ""
                    },
                    "artistData": {
                         "cpf": "12345678901",
                         "name": "MARIA SILVA SANTOS",
                         "artisticName": "MARIA SILVA SANTOS",
                         "occupation": "CANTORA"
                    },
                    "piaData": {
                        "isInRegistry": true,
                        "cnpj": "12345678901234",
                        "companyName": "LOTERICA BOM DESTINO LTDA",
                        "type": "CASAS LOTERICAS"
                    },
                    "influencerData": {
                        "artisticName": "MARIA SILVA SANTOS",
                        "socialMediaUrl": "",
                        "areaOfActivity": "INFLUENCER"
                    },
                    "scoreData": {
                        "isAllowedToBet": false
                    }
                }
            }
        },
        "uDocs": {
          "metadata": {
            "pageCount": 2
          },
          "extraction": {
            "fullName": "JUAN MARTINEZ",
            "fullAddress": "AV INSURGENTES SUR 2847 PISO 3 COL DEL VALLE BENITO JUAREZ CIUDAD DE MEXICO MEXICO CP 03100",
            "bankAccountNumber": "84532345",
            "issueDate": "2024-05-28",
            "expiryDate": "2025-05-28",
            "documentNumber": "847293651024738569",
            "vehicleIdentificationNumber": "1HGBH41JXMN109186",
            "vehicleRegistrationNumber": "ABC-1234",
            "occupation": "Driver",
            "income": "45000",
            "issuer": "Skrill Limited",
            "currency": "USD",
            "countryOfBirth": "MX",
            "dateOfBirth": "1980-07-05",
            "fatherFullName": "CARLOS MARTINEZ LOPEZ",
            "motherFullName": "MARIA ELENA GARCIA RUIZ",
            "nationality": "MEXICANA",
            "birthFacility": "HOSPITAL GENERAL DE MEXICO",
            "placeOfBirthAddress": "CIUDAD DE MEXICO, MEXICO"
          },
          "classification": {
            "documentType": "financial",
            "documentSubType": "bank_statement",
            "countryCode": "mx",
            "language": "es",
            "issuer": "skrill_limited"
          },
          "validations": {
            "matchingResults": [
              {
                "type": "full_name",
                "match": true,
                "originalValue": "JUAN MARTEENEZ",
                "extractedValue": "JUAN MARTINEZ",
                "matchThreshold": 80,
                "matchPercentage": 100
              },
              {
                "type": "occupation",
                "match": true,
                "originalValue": "Driver",
                "extractedValue": "Driver",
                "matchThreshold": 80,
                "matchPercentage": 100
              },
              {
                "type": "bank_account_number",
                "match": true,
                "originalValue": "AB123456789012345",
                "extractedValue": "AB123456789012345",
                "matchThreshold": 100,
                "matchPercentage": 100
              }
            ],
            "documentExpiration": {
              "isIssueDateInRange": false,
              "isWithinValidityPeriod": false
            }
          },
          "fraud": {
            "riskLevel": "HIGH_RISK",
            "reason": "DIGITAL_MODIFICATION_HIGH_CONFIDENCE",
            "reasonDescription": "Document contains traces of digital modification, likely with fraudulent intent",
            "indicators": [
              "This document's metadata shows a creation time: 2023-03-31T12:04:01+00:00 and a modification time: 2024-05-29T11:30:26+00:00, suggesting the file was updated after it was first created."
            ]
          }
        },
        "riskScore": {
            "score": 0.12
        },
        "riskLabels": [
           {
            "label": "document_integration_...",
            "category": "document",
            "sessionIds": ["5a2358e7-fd31-4fcb-a23f-4d76651ba68a"]
            }
        ],
        "biometricAuthentication": {
            "matchedSessionId": "d40edb60-6ae6-4475-be72-84b81669cce6",
            "matchedSessionEndUserId": "a1b2c35d-e8f7-6d5e-3cd2-a1b2c35db3d4",
            "matchedSessionVendorData": "User001",
            "details": {}
        },
        "comments": [],
        "highRisk": false
    },
    "technicalData": {
        "ip": "186.153.67.122"
    }
  }
```

---

## Request properties explained

*Always sent, irrespective of product or solution used

- `status`: `string`* Status of the response
- `verification`: `object`* Verification request decision object. `null` if decision is not available yet
  - `id`: `string`* UUID v4 which identifies the verification session
  - `attemptId`: `string`* UUID v4 of the attempt which received a status (as shown in `verification.status` field)
  - `vendorData`: `string | null`* The unique identifier that you created for your end-user. `null` if not specified
  - `endUserId`: `string | null`* The `UUID` that you created for your end-user. `null` if not specified
  - `status`: `string`* Verification status, one of `approved`, `declined`, `resubmission_requested`, `review`, `expired`,` abandoned`
  - `code`: `integer`* Verification session decision code, one of `9001`, `9102`, `9103`, `9104`, `9121`. For more info, see the [verification session decision codes](/v1/docs/verification-session-decision-codes-table)
  - `reason`: `string | null`* Reason why the verification failed
  - `reasonCode`: `integer | null`* Reason code of the failed verification. For more info, see the [possible codes for a failed verification](/v1/docs/verification-session-decision-codes-table)
  - `decisionTime`: `string &nbsp;| null`* Timestamp of the decision, represented as `UTC YYYY-MM-DDTHH:MM:SS.SSS+Timezone Offset` (ISO 8601)
  - `acceptanceTime`: `string`* Timestamp of the session generation, represented as `UTC YYYY-MM-DDTHH:MM:SS.SSS+Timezone Offset` (ISO 8601)
  - `submissionTime` : string* Timestamp of when the session was submitted, represented as `UTC YYYY-MM-DDTHH:MM:SS.SSSSSS+Timezone Offset` (ISO 8601)
  - **`person`: `object`* Data about the verified person**

    - `firstName`: `string | null`* Person's first name as written on the document
    - `lastName`: `string | null`* Person's last name as written on the document
    - `dateOfBirth`: `string`* Person’s date of birth, represented as `YYYY-MM-DD`
    - `gender`: `string | null`* Person’s gender, represented as M or F, or `null` if not present
    - `nationality`: `string | null`* Person’s nationality, represented as ISO 3166 `alpha-2` or `alpha-3` number
    - `idNumber`: `string | null`* National identification number
    - `yearOfBirth`: `string | null`* Person’s year of birth, represented as `YYYY`
    - `placeOfBirth`: `string | null`* Person’s place of birth
    - **`addresses`: a map with keys `fulladdress` and `parsedAddress`. Optional, depending on the integration**

      - `fullAddress`: `string | null` Address as single string
      - `parsedAddress`: `object` Object containing parts of the `fullAddress` value as separate keys. Optional, depending on the integration
        - `city`: `string | null `Any human settlement, including cities, towns, villages, hamlets, localities, etc.
        - `country`: `string | null `Sovereign nations and their dependent territories (ISO-3166)
        - `houseNumber`: `string | null` External (street-facing) building number
        - `postcode`: `string | null `Postal codes used for mail sorting
        - `state`: `string | null `A first-level administrative division
        - `subDivision`: `string | null` A first-level administrative division. It may differ from `state` in jurisdictions where subdivisions and states are distinct administrative concepts. Optional, available only for digital identity verification solutions.
        - `street`: `string | null` Street name
        - `unit`: `string | null` An apartment, unit, office, lot, or other secondary unit designator
    - `fullName`: `string | null` Full name of the person. Optional, only for Indian Aadhaar cards registry based verification
    - `nameComponents`: `object` Object containing person’s name components extracted from the document. Optional, only available if configured for you integration by Veriff
      - `title`: `string | null` Person’s title extracted from the document, e.g., “MR”, “MS”. `null` when no title data present on the document
      - `middleName`: `string | null` Person’s middle name extracted from the document, from a dedicated field on the document or document barcode results. `null` when the first name has no suffix according to barcode data. The field is not sent when the document has no dedicated field or barcode
      - `firstNameOnly`: `string | null` Person’s first name extracted from the document and stripped from all components like `middleName` or `firstNameSuffix`
      - `firstNameSuffix`: `string | null` Person’s first name suffix. `null` when the first name has no suffix according to barcode data. The field is not sent when the document has no barcode
    - `occupation`: `string` Occupation data from the document. Optional, depending on the integration
    - `employer`: `string` Employer's name from the document. Optional, depending on the integration
    - `foreignerStatus`: `string` Foreigner status field from the document. Optional, depending on the integration
    - `extraName`: `string` Additional name from the document. Optional, depending on the integration
    - `title` : `string` Person’s title extracted from the document. Optional, depending on the integration
    - `ifeIdentifier`: `string | null` The voter's card identifier (OCR). Optional, only for Mexican registries verification
    - `ineIdentifier`: `string | null` The citizen's identifier (Identificador del Ciudadano). Optional, only for Mexican registries verification
    - `pepSanctionMatch`: `string | null` *Legacy field, may return incorrect result, should be ignored*
    - `phoneNumber`: `string | null` Person’s phone number, allows `+` and digits. Optional, available only for digital identity verification solutions.
    - `citizenship`: `null` *Deprecated, always returns null*
    - `electorNumber`: `string | null` Person’s electoral number. Optional, currently only for Mexican registry checks. Present only if the data was available on the document
    - `eyeColor` : `string | null` Person’s eye color as stated on the document. Optional, present only if the data was available on the document
    - `hairColor` : `string | null` Person’s hair color as stated on the document. Optional, present only if the data was available on the document
    - `height` : `string | null` Person’s height as stated on the document. Optional, present only if the data was available on the document
    - `weight` : `string | null` Person’s weight as stated on the document. Optional, present only if the data was available on the document
  - **`document`: `object`* Verified document**

    - `number`: `string | null`* Document number, `[a-zA-Z0-9]` characters only
    - `type`: `string | null`* Document type, one of `PASSPORT`, `ID_CARD`, `RESIDENCE_PERMIT`, `DRIVERS_LICENSE`, `VISA`, `OTHER`. For more info, see the [Supported document types for IDV](/v1/docs/supported-document-types) article
    - `country`: `string | null`* Document issuing country, represented as ISO 3166 `alpha-2` code
    - `state`: `string | null`* Document issuing state, represented as ISO 3166 `alpha-2` or `alpha-3` code
    - `remarks`: `string` Data extracted from document’s remarks field
    - `validUntil`: `string | null` Document is valid until date, represented as `YYYY-MM-DD`. Optional, must be configured for your integration by the Solutions Engineer
    - `validFrom`: `string | null` Document is valid from date, represented as `YYYY-MM-DD`. Optional, must be configured for your integration by the Solutions Engineer
    - `placeOfIssue`: `string | null` Place where document was issued. Optional, depending on the integration
    - `firstIssue`: `string | null` Date of document first issue, represented as `YYYY-MM-DD`. Optional, depending on the integration
    - `issueNumber`: `string | null` Document issue number. Optional, depending on the integration
    - `issuedBy`: `string | null` Document issuing authority. Optional, depending on the integration
    - `nfcValidated`: `boolean` Indicates if the biometric document data has been successfully decoded. Optional, only when NFC validation has been enabled for the integration
    - `residencePermitType`: `string` Type of the residence permit, as shown on the document. Optional, depending on the integration
    - `portraitIsVisible`: `boolean` Indicates that the portrait image is visible in the session and its quality is sufficient to perform verification. Optional, depending on the integration
    - `signatureIsVisible`: `boolean` Indicates that the signature is present on the document and readable to perform the verification. Optional, depending on the integration
    - `ineIdentifier`: `string | null` Person’s INE (Mexican voter’s registry) identifier number. Optional, present only if the data was available on the document
    - **`specimen`: `object` Contains additional data about the particular document type. Optional, depending on integration**

      - `containsContactlessChip`: `boolean` Indicates if the document contains a contactless chip (NFC)
      - `firstIssuedDate`: `string` Indicates the first issue date of the identity document template, as YYYY-MM-DD
      - `lastIssuedDate`: `string` Indicates the last issue date of the identity document template, as YYYY-MM-DD
      - `nistVersion`: `string` Indicates the version of the US National Institute of Standards and Technology guidelines
      - `digitalDocument`: `boolean` Indicates if the document is a digital template identity document
      - `nonStandardDrivingLicense`: `boolean` Indicates if the driving permit is different from the standard driver's licence (e.g. it is a learner's license, temporary driver's license, permit to drive boats)
      - `militaryDocument`: `boolean` Indicates if the document is issued to a military personnel/staff or personnel's family
      - `temporaryEmergencyDocument`: `boolean` Indicates if the document is a temporary identity document
      - `asylumRefugeeDocument`: `boolean` Indicates if it is a document that is issued exclusively to asylum seekers or refugees
      - `ICAOStandardizedDocument`: `boolean` Indicates if the document is under the standards of International Civil Aviation Organization
      - `notNationalIdCard`: `boolean` Indicates if the identity card is not a national ID card (e.g., social security card, tax ID, electoral ID)
      - `legalStatus`: `string` | `null` Indicates the legal status of the identity document in the country of issuance. One of primary, secondary, tertiary, indicating to what extent the document is accepted as legal proof of identity
      - `hasSecurityRisk`: `boolean` Indicates if the document has properties that can increase the chance of document tampering
  - **`additionalVerifiedData`: `object` Data that has been optionally verified for the session. Optional, depending on the integration**

    - `driversLicenseNumber`: `string` Number of the driver's license. Optional, depending on the integration
    - `driversLicenseCategory`: `object` Indicates the driver’s licence category/ies. Optional, the presence of this property depends on drivers licence category extraction being enabled for the integration.
      - `B`: `Boolean | null`
    - `driversLicenseCategoryFrom`: `object` Date when the driving license category was obtained. Optional, depending on the integration
      - `B`: `string | null` Category is valid from date, represented as `YYYY-MM-DD`
    - `driversLicenseCategoryUntil`: `object` Driving license category expiry date. Optional, depending on the integration
      - `B`: `string | null` Category is valid until date, represented as `YYYY-MM-DD`
    - `driversLicenseCategories`: `array` List of category types visible on the driver's license
    - `estimatedAge`: `number` Estimated age. Optional, depending on the integration
    - `estimatedGender`: `number` Estimated gender, values closer to 0.0 indicate 'male', values closer to 1.0 indicate 'female'. Optional, depending on the integration
    - `UKTFCheckResult`: `array` Array of UK DIATF checks results. Optional, only for customers with Veriff UK DIATF solution
      - `CIFAS`: `string` [CIFAS](https://en.wikipedia.org/wiki/Cifas) [↗]registry check result
      - `Electoral roll and Credit History UK`: `string` UK Electoral roll and credit history check result
      - `PEP`: `string` [PEP](/v1/docs/aml-screening) check result
    - `cpfValidation`: `object | null` Brazilian individual taxpayer registry (CPF) validation check object. Optional, only for customers with Brazilian registry checks
      - `status`: `string | null` Status of the entry in the registry, one of `CPF is validated`, `CPF is suspended`, `CPF holder is deceased`, `CPF is pending regularization`, `CPF is cancelled `*(was a duplicate)*, `Cancelled craft `*(meaning that it was cancelled due to reasons other than being a duplicate)*
      - `cpfNumber`: `string | null `Brazilian individual taxpayer registry (CPF) number of the person
      - `name`:` string | null` Person's name in the CPF
      - `dateOfBirth`: `string | null` Person's date of birth in the CPF as `YYYY-MM-DD`
      - `yearOfDeath`: `string | nul`l Person's year of death in the CPF as `YYYY-MM-DD`
    - `processNumber`: `string` Process number (e.g., "Trámite №") from the document. Optional, depending on the integration
    - `ineBiometricRegistryValidation`: `object` INE Biometric Database Verification check object. Optional, available only when the INE Biometric Validation check has been enabled for the integration
      - `faceMatch`: `boolean | null` Indicates if the person's selfie image is a match with their image in the registry. This decision is made based on the value returned in `faceMatchPercentage` (see below). `null` if the check could not be completed
      - `faceMatchPercentage`: `integer | null` Indicates the level of similarity the system thinks the matched images have, in the range of 0-100. Values ≥85 indicate a match; values <85 indicate that images do not match. `null` if the check could not be completed
      - `responseStatus`: `string | null` Indicates the response received from the service provider. One of success or failure; or `null` if the check could not be completed
    - `registryValidation`: `object` Registry validation check object. Optional, available only when the registry validation check has been enabled for the integration (currently available for Colombia registries)
      - `countryRegistry`: `string` Country of the registry
      - `registryName`: `string` Name of the registry
      - `fullNameSimilarity`: `number` Similarity of the full name in the registry to the full name in the document
      - `documentValid`: `boolean` Indicates if the document is valid in the registry
      - `personIsAlive`: `boolean` Indicates if the person is alive in the registry
    - `proofOfAddress`: `object` Proof of address data. Optional, available only if the [Proof of Address Verification](/v1/docs/proof-of-address-verification) has been enabled for your integration.
      - `nameMatch`: `boolean` Indicates if the name on the proof of address document matches the name from the initial request data. `null` if the check could not be completed.
      - `nameMatchPercentage`: `float` Indicates the level of similarity the matched names have, in the range of 0.00-100.00. `null` if the check could not be completed.
      - `documentType` : `string` Indicates the type of the proof of address document. `null` if the check could not be completed.
      - `issueDate`: `string | null` PoA document issue date, in `YYYY-MM-DD` format
      - `fraud`: `object` Returns data about document integrity. Available only if the [fraud validation check](https://devdocs.veriff.com/docs/proof-of-address-verification#note-about-the-fraud-validation) has been enabled for your Proof of Address integration.
        - `riskLevel`: `string | null` Indicates the risk level, possible values `LOW_RISK`, `MEDIUM_RISK`, `HIGH_RISK` . `null` if the check was not executed or failed.
        - `reason`: `string | null` Short description indicating the reason behind the risk level. `null` if the check was not executed or failed.
        - `reasonDescription`: `string | null` Human readable explanation of the data in the `reason` field. `null` if the check was not executed or failed.
        - `indicators`: `array` Array strings listing the factors that influenced the risk assessment. Empty if the check was not executed or failed.
      - `addressValidationResult`: `object` Contains data that has been found about the extracted address
        - `status`: `string` Shows the level of address validity confirmation. One of `CONFIRMED`, `CONFIRMED_PARTIAL`, `NOT_CONFIRMED`, `NOT_FOUND`
        - `components`: `object` Contains address components. Displays `null` if address data was `NOT_FOUND`.
          - `plausibleFullAddress`: `string | null` Full address as a string, containing extracted and found data
          - `city`: `string | null` Any human settlement, including cities, towns, villages, hamlets, localities, etc.
          - `unit`: `string | null` An apartment, unit, office, lot, or other secondary unit designator
          - `state`: `string | null` A first-level administrative division
          - `street`: `string | null` Street name
          - `country`: `string | null` Sovereign nations and their dependent territories (ISO 3166)
          - `postcode`: `string | null` Postal codes used for mail sorting
          - `houseNumber`: `string | null` External (street-facing) building number
        - `addressType`: `string | null` Indicates if the address is of a residential or business premise, or it is a PO box. One of `residential` , `business` , `poBox`. `null` if the address validation feature was has not been enabled, or if no data was sent.
        - `validations`: `object` Contains country validation result data
          - `countryExists`: `object` Indicates if the validation was able to verify the country
            - `result`: `string | null` Indicates the result of country validation, or if it was skipped. One of `success`, `failure`, `skipped`
    - `addressMatching:` Contains all address matching validation results
      - `addresses`: `array` Array of exactly 2 address objects - first from initData, second from PoA document
        - `fullAddress`: `string` Original full address string as provided/extracted
        - `parsedAddress`: `object` Google Maps API parsed address components
          - `city`: `string | null` Parsed city name
          - `unit`: `string | null` Parsed partment/unit number
          - `state`: `string | null` Parsed state/province
          - `street`: `string | null` Parsed street name (premise)
          - `country`: `string | null` Parsed country name
          - `postcode`: `string | null` Parsed postal/ZIP code
          - `houseNumber`: `string | null `Parsed house/building number
      - `result`: `boolean` Indicates whether addresses match based on threshold
      - `matchThreshold`: `integer` Configured matching percentage threshold
      - `matchPercentage`: `integer` Indicates matching percentage
    - `validationResults`: `array` Data that has been optionally verified for the [US Database Verification session](/v1/docs/us-database-verification) or any other [Match Database Verification](/v1/docs/match-database-verifications) session, depending on the integration. Empty if no additional data was verified. Optional, depending on integration
      - `registryName`: `string` Name of the registry
      - `firstName`: `string` Indicates the match level of person’s first name data
      - `lastName`: `string` Indicates the match level of person’s last name data
      - `dateOfBirth`: `string` Indicates the match level of person’s date of birth data
      - `address`: `string` Indicates the match level of person’s address data
      - `city`: `string` Indicates the match level of person’s address data, specifically city
      - `state`: `string` Indicates the match level of person’s address data, specifically state
      - `zip`: `string` Indicates the match level of person’s address data, specifically zip code (post code)
      - `idNumber`: `string` Indicates the match level of person’s identity number or SNN number data
    - `officialDatabaseVerification`: `object` Contains database verification results. Optional, only available if [INE Database Verification](/v1/docs/ine-database-verification) or [CURP Database Verification](/v1/docs/curp-database-verification) has been enabled for your integration
      - `ine`: `object` Contains INE verification results
        - `matchData`: `object` Optional, available only when matching validation is enabled for the integration. Shows how different end-user data types that were sent as initData or extracted from the document match the data in the registry (see the [Additional notes section](/v1/docs/decision-webhook#additional-notes) above).
          - `dateOfBirth`: `string` Indicates if the date of birth data matches gender data in registry
          - `fullName`: `string` Indicates if the full name data matches gender data in registry
          - `gender`: `string` Indicates if the gender data matches gender data in registry
        - `validations`: `object` Object containing validation check results
          - `processing`: `object` Processing validation result
            - `result`: `string` One of `success`, `failure` (request processing encountered an error, e.g., system error, communication issue, provider unavailable), `not_applicable` (processing check was not configured), `skipped`
            - `reasons`: `array` Additional information about the validation result. Not sent if `result`: `success`.
          - `ineCardIsValid`: `object` Confirms that the INE credential exists and data matches
            - `result`: `string` One of `success`, `failure` (credential is invalid, the data does not match, or the credential does not exist), `not_applicable` (processing check was not configured), `skipped`
            - `reasons`: `array` Additional information about the validation result. Not sent if `result`: `success`.
          - `ineIsValidForVoting`: `object` Verifies active voting rights
            - `result`: `string` One of `success`, `failure` (voting rights have been suspended or revoked, though the credential may still be valid as an ID), `not_applicable` (processing check was not configured), `skipped`
            - `reasons`: `array` Additional information about the validation result. Not sent if `result`: `success`.
          - `matching`: `object` Optional, only available when the input data matching validation was enabled for the integration (`ine.matchData` parameter is included in the payload)
            - `result`: `string` Always `success`, irrespective of `matchData` results
        - `registryResponse`: `object` Detailed information from the Mexican electoral registry
          - `electorKey`: `string` Voter key (*Clave de Elector*) assigned to the credential holder
          - `issueNumber`: `string` The issue/emission number of the credential (1-9 indicating how many times the credential has been reissued)
          - `registrationYear`: `string` Year the person was registered in the electoral system
          - `issueYear`: `string` Year the current credential was issued
          - `validity`: `string` Expiration date of the credential (format: *DD de MMMM de YYYY* in Spanish)
          - `ocr`: `string` OCR (Optical Character Recognition) code from the credential
          - `cic`: `string` CIC (*Código de Identificación de la Credencial*) aka credential identification code
          - `federalDistrict`: `string` Federal electoral district number
      - `curp` : object containing CURP verification results
        - `matchData`: `object` Optional, available only when matching validation is enabled for the integration. Shows how different end-user data types that were sent as initData or extracted from the document match the data in the registry (see the [Additional notes section](/v1/docs/decision-webhook#additional-notes) above).
          - `dateOfBirth`: `string` Indicates if the date of birth data matches gender data in registry
          - `fullName`: `string` Indicates if the full name data matches gender data in registry
          - `gender`: `string` Indicates if the gender data matches gender data in registry
        - `validations`: `object`
          - `processing` : Indicates processing validation result
            - `result`: `string` indicates if the request was properly processed, one of `success`, `failure` (there was an error when processing the request) or `not_applicable` (processing check was not configured).
            - `reasons`: `array` Additional information about the validation result. Not sent if `result`: `success`.
          - `curpIsValid`: CURP validity validation result
            - `result`: `string` status of the validity validation check, one of `success`, `failure` (CURP does not exist, has a formatting issue, or is invalid) or `not_applicable` (validity check not configured).
            - `reasons`: `array` Additional information about the validation result. Not sent if `result`: `success`.
          - `curpHasNoRiskFactors`: risk factors validation result
            - `result`: `string` status of the validation, one of `success`, `failure` (risk factors were detected) or `not_applicable` (no risk factors were found).
            - `reasons`: `array` Additional information about the validation result. Not sent if `result`: `success`.
          - `matching`: `object` Optional, only available when the input data matching validation was enabled for the integration (`curp.matchData` parameter is included in the payload)
            - `result`: `string` Always `success`, irrespective of `matchData` results
        - `registryResponse` Object containing detailed information retrieved from the Mexican government registry.
          - `curp` : `string` The validated CURP number
          - `paternalSurname`: `string` Person's paternal surname from registry
          - `maternalSurname` : `string` Person's maternal surname from registry
          - `names` : `string` Person's given name(s) from registry
          - `gender` : `string` Gender indicator (H=Male, M=Female)
          - `dob` : `string` Date of birth from registry
          - `nationality` : `string` Nationality code
          - `supportingDocument` : `string` Type of supporting document used for CURP registration
          - `registrationEntity` : `string` Entity where the person was registered
          - `registrationStateNumber`: `string` State indicator where the person was registered
          - `registrationMunicipalityKey`: `string` Municipality indicator where the person was registered
          - `page` : `string` Page number from birth certificate (if applicable)
          - `tome` : `string` Tome number from birth certificate (if applicable)
          - `book` : `string` Book number from birth certificate (if applicable)
          - `minutesNumber` : `string` Minutes number from civil registry
          - `crip` : `string` CRIP identifier
          - `registrationEntity2` : `string` Secondary registration entity
          - `registrationYear` : `string` Year of registration
          - `foreignRegistrationNumber` : `string` Foreign registration indicator
          - `letterFolio` : `string` Letter folio from registration
          - `birthStateKey` : `string` State of birth code
          - `issueEntityKey` : `string` Entity that issued the CURP
          - `curpStatus` : `string` Current status of the CURP
          - `certificateFolio` : `string` Certificate information
    - `faceMatch`: `string` Indicates the result of [Selfie2Selfie Biometric Validation](/v1/docs/selfie2selfie-biometric-verification) result. Optional, available only if the solution has been enabled for your configuration.
    - `biometricRegistryValidationResults`: `object` Biometric registry validation container. Optional, available only when [Brazilian CPF Biometric Database Check](/v1/docs/cpf-biometric-database-check) has been enabled for your integration.
      - `[ISO country code]`: `object` Country code in ISO 3166 `alpha-2` format. Indicates the country the biometric registry validation solution is enabled for. Currently available only for [Brazilian CPF Biometric Database Check](/v1/docs/cpf-biometric-database-check) solution
        - `isFirstNameMatch`: `boolean` First name match result, `null` if first name match validation was not enabled or the check could not be completed
        - `isLastNameMatch`: `boolean` Last name match result, `null` if last name match validation was not enabled or the check could not be completed
        - `isDobMatch`: `boolean` Date of birth match result, `null` if date of birth match validation was not enabled or the check could not be completed
        - `isFaceMatch`: `boolean` Facial biometric match result, `null` if selfie not sent or the check could not be completed
    - `cadastroUnico`: `object` Main container for Cadastro Único Database Verification results. Optional, only available if the [Cadastro Único Database Verification](/v1/docs/brazilian-cadastro-unico-database-verification) has been enabled for your solution.
      - `validations`: `object` Contains validation rule results
        - `processing`: `object` Indicates if registry processing was successful
          - `result`: `string` Validation outcome (`success` or `failure`)
          - `reasons`: `array | null` Explanations for failure (`null` or empty if `result` value is `successful`)
        - `isUserDataValid`: `object` Validates input data format (CPF number and date of birth)
          - `result`: `string` Validation outcome (`success` or `failure`)
          - `reasons`: `array | null` Explanations for failure (`null` or empty if `result` value is `successful`)
        - `isNotBcpBeneficiary`: `object` Checks if user is NOT receiving BCP benefit (`failure` means IS receiving)
          - `result`: `string` Validation outcome (`success` or `failure`)
          - `reasons`: `array | null` Explanations for failure (`null` or empty if `result` value is `successful`)
        - `isNotBolsaFamiliaBeneficiary`: `object` Checks if user is NOT receiving *Bolsa Família* (`failure` means IS receiving)
          - `result`: `string` Validation outcome (`success` or `failure`)
          - `reasons`: `array | null` Explanations for failure (`null` or empty if `result` value is `successful`)
        - `isNotSeguroDefesoBeneficiary`: `object` Checks if user is NOT receiving fishermen insurance (`failure` means IS receiving)
          - `result`: `string` Validation outcome (`success` or `failure`)
          - `reasons`: `array | null` Explanations for failure (`null` or empty if `result` value is `successful`)
        - `isNotCadastroUnicoBeneficiary`: `object` Checks if user is NOT in general registry (`failure` means IS registered)
          - `result`: `string` Validation outcome (`success` or `failure`)
          - `reasons`: `array | null` Explanations for failure (`null` or empty if `result` value is `successful`)
        - `isNotAuxilioEmergencialBeneficiary`: `object` Checks if user is NOT receiving emergency aid (`failure` means IS receiving)
          - `result`: `string` Validation outcome (`success` or `failure`)
          - `reasons`: `array | null` Explanations for failure (`null` or empty if `result` value is `successful`)
      - `registryResponse`: `object` Contains detailed benefit information from government registries
        - `bcpBenefit`: `object` Continuous Cash Benefit details
          - `state`: `string` Brazilian state code where benefit is registered
          - `benefitNumber`: `string` Unique benefit identification number
          - `isInRegistry`: `boolean` Indicates whether user was found in BCP registry
          - `beneficiaryNis`: `string` Social Identification Number of beneficiary
          - `referenceMonth`: `string` Reference period for data, represented as `YYYYMM`
          - `competenceMonth`: `string` Competence month for payment, represented as `YYYYMM`
          - `installmentValue`: `string` Monetary value of benefit installment
          - `municipalityName`: `string` City where beneficiary resides
          - `judiciallyGrantedBenefit`: `string` Indicates if benefit was court-ordered
        - `bolsaFamiliaBenefit`: `object` *Bolsa Família* program details
          - `qsa`: `boolean` *Quadro Social e Administrativo* indicator, indicating if the beneficiary is registered as a partner or administrator of a business
          - `currentlyActive`: `boolean` Indicates whether benefit is currently active
          - `lastBenefitDate`: `string` Date of last benefit payment, represented as `DD/MM/YYYY`
          - `dataInconsistency`: `boolean` Flags data inconsistencies in record
          - `firstBenefitDate`: `string` Date user first received benefit
          - `lastBenefitValue`: `string` Value of last installment paid
          - `last12MonthsData`: `string` Payment history summary for last year
          - `lastBenefitPayment`: `string` Details of last payment method
          - `wasBenefitRecipient`: `boolean` Indicates whether user ever received this benefit
          - `currentlyInBolsaFamilia`: `boolean` Current enrollment status
          - `employmentLinkLast5Years`: `boolean` Had formal employment in last 5 years
        - `seguroDefesoBenefit`: `object` Artisanal fishermen insurance details
          - `isInRegistry`: `boolean` Shows whether user found in *Seguro Defeso* registry
          - `beneficiaryCpf`: `string` CPF number of the beneficiary
          - `beneficiaryNis`: `string` NIS number of the beneficiary
          - `beneficiaryName`: `string` Full name of the beneficiary
          - `beneficiaryState`: `string` State of the beneficiary
          - `municipalityCode`: `string` IBGE municipality code
          - `municipalityName`: `string` Municipality name
          - `benefitReferenceMonth`: `string` Reference month for benefit, represented as `DD/MM/YYYY`
          - `installmentValueReceived`: `string` Amount received for installment
          - `fishingRegistrationNumber`: `string` RGP fishing registration number
          - `bolsaFamiliaInsuranceSameDate`: `boolean` Indicates if the person received both benefits in same period
        - `auxilioEmergencialBenefit`: `object` Emergency aid details
          - `state`: `string` State where aid was registered
          - `value`: `string` Monetary value of aid installment
          - `observation`: `string` Remarks about benefit status
          - `installments`: `string` Specific installment number
          - `municipality`: `string` City where beneficiary resides
          - `classification`: `string` Category of beneficiary
          - `isInRegistry`: `boolean` Whether user found in Emergency Aid registry
          - `availableMonth`: `string` Month funds became available, represented as `MM/YYYY`
          - `municipalityCode`: `string` Municipality code
    - `proBet`: `object` ProBet validation results container. Optional, available only if the [ProBet Database Verification](/v1/docs/pro-bet-database-verification) has been enabled for your integration.
      - `validations`: `object` Validation rule results
        - `processing`: `object` Processing validation result
          - `result`: `string` Validation outcome (`success`, `failure`)
          - `reasons`: `array | null` Explanations for failure (`null` or empty if `result` value is `successful`)
        - `isUserDataValid`: `object` User data format validation
          - `result`: `string` Validation outcome
          - `reasons`: `array | null` Explanations for failure (`null` or empty if `result` value is `successful`)
        - `isNotOnPia`: `object` PIA registry check (negative logic)
          - `result`: `string` Validation outcome
          - `reasons`: `array | null` Explanations for failure (`null` or empty if `result` value is `successful`)
        - `isNotOnProBet`: `object` ProBet registry check (negative logic)
          - `result`: `string` Validation outcome
          - `reasons`: `array | null` Explanations for failure (`null` or empty if `result` value is `successful`)
      - `registryResponse`: `object` Detailed registry data
        - `pepData`: `object` Politically exposed person (PEP) information
          - `name`: `string` Full name of PEP
          - `role`: `string` Public office or role held
          - `organization`: `string` Government body or organization
          - `exerciseStartDate`: `string` Role start date
          - `exerciseEndDate`: `string` Role end date
          - `pepValidityDate`: `string` PEP validity date
        - `artistData`: `object` Artist/public figure information
          - `cpf`: `string` Brazilian Tax ID
          - `name`: `string` Legal name
          - `artisticName`: `string` Stage or public name
          - `occupation`: `string` Profession or role
        - `piaData`: `object` Betting administration registry information
          - `isInRegistry`: `boolean` Indicates whether found in PIA registry
          - `cnpj`: `string` Company tax identification number
          - `companyName`: `string` Legal company name
          - `type`: `string` Business category
        - `influencerData`: `object` Digital influencer information
          - `artisticName`: `string` Social media name
          - `socialMediaUrl`: `string` Primary social media URL
          - `areaOfActivity`: `string` Influence category
        - `scoreData`: `object` The final computed result based on all the data above
          - `isAllowedToBet`: `boolean` Indicates whether the end-user is allowed to bet
  - **`udocs`: `object` Container for [Unstructured Docs (uDocs)](/v1/docs/unstructured-docs) features and add-on results. Optional, present only when the solution has been enabled for your integration.**

    - **`metaData`: `object` Meta info about the document and the verification process. Always present when `udocs` object is returned.**

      - `pageCount`: `integer` Number of pages processed from the end-user's document.
    - **`extraction`: `object` Data fields extracted from the end-user's document. Optional, keys appearing here depend on the use case and document type configured for your integration. Any key may be omitted or return an empty string if the data could not be extracted.**

      - `fullName`: `string` Person's full name as extracted from the document
      - `fullAddress`: `string` Person's full address as extracted from the document
      - `bankAccountNumber`: `string` Bank account number as extracted from the document
      - `issueDate`: `string` Document issue date as extracted from the document. Represented as `YYYY-MM-DD` .
      - `expiryDate`: `string` Document expiry date as extracted from the document. Represented as `YYYY-MM-DD`.
      - `documentNumber`: `string` Document reference number as extracted from the document (e.g., policy number, certificate number)
      - `vehicleIdentificationNumber`: `string` The unique 17-character VIN (Vehicle Identification Number) as extracted from the document. Only for Vehicle ownership verification and Vehicle insurance policy verification use cases.
      - `vehicleRegistrationNumber`: `string` Vehicle registration number as extracted from the document. Only for Vehicle ownership verification and Vehicle insurance policy verification use cases.
      - `occupation`: `string` Person's occupation as extracted from the document. Only for Source of income verfication use case.
      - `income`: `string` Income amount as extracted from the document. Only for Source of income verfication use case.
      - `issuer`: `string `Document issuer name as extracted from the document
      - `currency`: `string` Currency as extracted from the document
      - `countryOfBirth`: `string` The country where the person was born, as recorded on the birth certificate. Only for Birth certificate verification use case.
      - `dateOfBirth`: `string` The person's date of birth in ISO 8601 format (YYYY-MM-DD), as recorded on the birth certificate. Only for Birth certificate verification use case.
      - `fatherFullName`: `string` The full name of the person's father, as recorded on the birth certificate. Only for Birth certificate verification use case.
      - `motherFullName`: `string` The full name of the person's mother, as recorded on the birth certificate. Only for Birth certificate verification use case.
      - `nationality`: `string` The nationality of the person as recorded on the birth certificate. Only for Birth certificate verification use case.
      - `birthFacility`: `string` The name of the hospital or facility where the person was born, as recorded on the birth certificate. Only for Birth certificate verification use case.
      - `placeOfBirthAddress`: `string` The city or address of the place of birth, as recorded on the birth certificate. Only for Birth certificate verification use case.
    - **`classification`: `object` Document classification result: document type, country, language, and issuer. Optional, nested fields may be omitted if classification confidence is too low.**

      - `documentType`: `string` High-level document category grouping. One of "financial", "government", "housing", "insurance", "legal", "tax", "utility", "other".
      - `documentSubType`: `string` Specific document type within the category. See [Supported document types](/v1/docs/supported-document-types) for possible values.
      - `countryCode`: `string` Document's country of origin, represented as ISO 3166 alpha-2 code
      - `language`: `string` Document's language, represented as ISO 369-1 code
      - `issuer`: `string` Document issuing entity as identified during classification
    - **`validations`: `object` Validation results for InitData Matching and Document Expiration checks. Optional, present only when at least one of these features has been enabled for your integration.**

      - **`matchingResults`: Comparison results between initData fields and data extracted from the document. Optional, present only when InitData Matching has been enabled for your integration and initData was provided in the session creation request.**

        - `type`: `string` The initData field that was matched against extracted data
        - `match`: `boolean` Indicates if match was `true` or `false`. `true` if the match percentage meets or exceeds the match threshold. `false` if the match percentage is below the threshold or the extracted value is empty.
        - `originalValue`: `string` Echoes the initData value that was sent in the session creation request
        - `extractedValue`: `string` The value extracted from the end-user's document
        - `matchThreshold`: `integer` The minimum match percentage configured for this field

`matchPercentage`: `integer` The actual match percentage calculated between the two values
      - **`documentExpiration`: `object` Document validity period check results. Optional, present only when the Document Expiration check has been enabled for your integration.**

        - `issueDateInRange`: `boolean` Checks if document’s issue date clears the allowed range threshold (days since issue date).

Skipped if the document has an expiry date and expiry date-based validation is enabled.
        - `isWithinValidityPeriod`: `boolean` Checks if document’s expiration date clears the range threshold (days before expiration date).
    - **`fraud`: `object` Document tampering and risk analysis. Optional, present only when the Tampering Check add-on has been enabled for your integration.**

      - `riskLevel`: `string | null` Risk level of the document. Note: `HIGH_RISK` results in a declined session status. `null` if the check was not executed or failed.
      - `reason`: `string | null` Short identifier for the reason behind the risk level. `null` if the check was not executed or failed.
      - `reasonDescription`: `string | null` Human-readable explanation of the `reason` value. `null` if the check was not executed or failed.

`indicators`: `array of string` Array of strings describing the factors that influenced the risk assessment. Empty array if no specific markers were detected or if the check was not executed.
  - **`riskScore`: `object` Data about the risk score. Optional, depending on the integration**

    - `score`: `number` A float in the range of 0.0–1.0. Numerical value representing the overall risk associated with the session. Lower score indicates more confidence in that the session is genuine. Note: in the Veriff environment, the range is shown as 1–100.
  - **`riskLabels`: `array` Array of risk labels related to the session. Optional, the presence of this property depends on risk labels being enabled for the integration. Log in to Customer portal to see the [Risk Insights and Crosslinks](https://help.veriff.com/en/articles/3410712-risk-labels-and-crosslinks)[↗] article in Veriff Knowledge Base**

    - `label`: `string` Name of the risk label
    - `category`: `string` Risk label category, one of `client_data_mismatch`, `crosslinks`, `device`, `document`, `images`, `network`, `session`, `person`, `risk-score`
    - `sessionIds`: `array` Array of verification IDs that are referenced to the particular risk label
  - **`biometricAuthentication` `object` Biometric Authentication data object. Optional, the presence of this property depends on biometric authentication being enabled for the integration**

    - `matchedSessionId`: `string | null` UUID v4 which refers to the verification session ID which face matched
    - `matchedSessionEndUserId`: `string | null` Refers to the verification session endUserId which the face matched
    - `matchedSessionVendorData`: `string | null` UUID v4 which refers to the verification session vendor data or end-user UUID which face matched
    - `details`: `object` Lists the results of different checks that were made to verify the end-user. Log in to Customer portal to see the [Risk Insights and Crosslinks](https://help.veriff.com/en/articles/3410712-risk-labels-and-crosslinks)[↗] article in Veriff Knowledge Base
  - `comments`: `array` *(Deprecated) Always returns empty []*
  - `highRisk`: `boolean` *(Deprecated) Marked if session was considered high risk or not*
- `technicalData`: `object`* Technical data object
  - `ip`: `string | null` IP of the device from which the verification was made

---

## Changelog

| Date | Description |
| --- | --- |
| May 7, 2026 | Birth Certificate Verification (Unstructured Docs use case) related fields and sample payload values added to `uDocs.extraction` object |
| May 6, 2026 | `person.phoneNumber` and `person.addresses.parsedAddress.subDivision` parameters added |
| Mar 30, 2026 | `status` string added to `addressValidationResult` object |
| Mar 25, 20206 | New object `udocs` added to `verification` root object to support [Unstructured Docs](/v1/docs/unstructured-docs) solution |
| Feb 27, 2026 | Sample payload formatting updated |
| Feb 10,2026 | `addressMatching` object indentation updated |
| Dec 17, 2025 | New objects added to `additionalVerifiedData`: - `cadastroUnico` object to support the [Cadastro Único Database Verification](/v1/docs/brazilian-cadastro-unico-database-verification) solution - `proBet` object added to support the [ProBet Database Verification](/v1/docs/pro-bet-database-verification) solution |
| Dec 10, 2025 | Added to `additionalVerifiedData`: - `biometricRegistryValidationResults` object (related to [Brazil CPF Biometric Database Check](/v1/docs/cpf-biometric-database-check)solution) - `faceMatch` parameters added to (related to Selfie2Selfie Biometric Verification solution) |
| Dec 3, 2025 | Added link to Match Database Verification article to `additionalVerifiedData.validationResults` object |
| Nov 27, 2025 | `additionalVerifiedData.officialDatabaseVerification.curp.registryResponse` updated |
| Nov 19, 2025 | `ine.matchData`, `curp.matchData` and `validations.matching` added to payload and explanation sections Info box about `matchData` values added to [Additional notes](/v1/docs/decision-webhook#additional-notes)section |
| Nov 13, 2025 | - Proof of [Address Validation](/v1/docs/proof-of-address-verification#address-validation) and [Address Matching](/v1/docs/proof-of-address-verification#address-matching) payload and explanation added - [INE Database Validation](/v1/docs/ine-database-verification) payload and explanation added - [CURP Database Validation](/v1/docs/curp-database-verification) payload and explanation added - Typo fixed in `extraName` parameter |
| Oct 3, 2025 | `submissionTime` format updated |
| Oct 2, 2025 | `submissionTime` parameter added Note about `submissionTime` parameter added to indicate its difference from the session submission time that can be deducted from event webhook |

### Changelog (Mar-Sep 2025)

| Date | Description |
| --- | --- |
| Sep 8, 2025 | Updated the description of `person.addresses` parameter, to clarify that it is not an array that could return multiple addresses, but instead it is a *map* with keys `fullAddress` and `parsedAddress`, both which return only one value. |
| Sep 5, 2025 | `nameComponents` object added, containing person’s name components extracted from the document. Optional, only available if configured for you integration by Veriff |
| Jul 22, 2025 | - New `riskLabels.category` added: `risk-score` - Following fields added: - `document` object: `ineIdentifier` - `person` object: `electorNumber`, `eyeColor`, `hairColor`, `height`, `weight` |
| Jul 14, 2025 | Improved the description of [When is decision webhook sent?](/v1/docs/decision-webhook#when-is-decision-webhook-sent) section |
| Jun 12, 2025 | The `decisionTime` string now shows that it can also be `null` |
| Jun 6, 2025 | Heading “Article versioning” changed to “Changelog” |
| May 20, 2025 | `fraud` object added to `additionalVerifiedData.proofOfAddress` object (related to [Proof of Address Verification](/v1/docs/proof-of-address-verification)) |
| May 15, 2025 | `attemptId` sample UUID updated |
| Apr 12, 2025 | `registryValidation` array added (new array is currently associated only with US Database Verification) |
| Mar 12, 2025 | Documentation published |
