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 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_requestedstatus
If the session is uploaded via API, decision webhook is sent immediately.
Prerequisites
- Make sure you have access to the Veriff Customer Portal
- Set up webhook URL(s) on your side and have them at hand
- Make sure they match the Webhook URL requirements
- Make sure your system is able to handle Webhooks receipt, delivery and resending requirements
- Check the Webhooks headers and payload section for info
- Secure your communication, check the HMAC Authentication and Endpoint Security article
- Make sure your system is able to handle the Backwards compatible changes
5.Proceed to Decision webhook setup section below
Decision webhook setup
Log in to the Veriff Customer Portal
Navigate to the Integrations page via the top menu and open the relevant integration
On the integration's page, select the Settings tab
Under the title Integration settings you see a list of webhooks
Fill in the
Webhook decisions URL
→ See Webhooks Guide > Set up webhooks sub-section for detailed overview of the setup process
Additional notes
Driver's license categories extraction
Contact your Solutions Engineer who can activate the feature for your integration, so it is possible to extract the
validFromandvalidUntildates from a driver's license.
riskScoreparameterThis 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
pepSanctionMatchparameterWarning: legacy field, may return incorrect result.
If you are running the AML checks, please see the 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.PEPstring.
submissionTimeparameterThis 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
submittedstatus was received.
Note about INE and CURP registry check
matchData
MATCHmeans that the input data matches registry data
NO_MATCHmeans the input data does not match registry data
NO_INPUTmeans no data was provided for the field
NO_DATAmeans the registry did not contain any info for this field
Sample request
{
"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",
"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,
"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": {
"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
}
}
},
"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 responseverification:object* Verification request decision object.nullif decision is not available yetid:string* UUID v4 which identifies the verification sessionattemptId:string* UUID v4 of the attempt which received a status (as shown inverification.statusfield)vendorData:string | null* The unique identifier that you created for your end-user.nullif not specifiedendUserId:string | null* TheUUIDthat you created for your end-user.nullif not specifiedstatus:string* Verification status, one ofapproved,declined,resubmission_requested,review,expired,abandonedcode:integer* Verification session decision code, one of9001,9102,9103,9104,9121. For more info, see the verification session decision codesreason:string | null* Reason why the verification failedreasonCode:integer | null* Reason code of the failed verification. For more info, see the possible codes for a failed verificationdecisionTime:string | null* Timestamp of the decision, represented asUTC YYYY-MM-DDTHH:MM:SS.SSS+Timezone Offset(ISO 8601)acceptanceTime:string* Timestamp of the session generation, represented asUTC YYYY-MM-DDTHH:MM:SS.SSS+Timezone Offset(ISO 8601)submissionTime: string* Timestamp of when the session was submitted, represented asUTC YYYY-MM-DDTHH:MM:SS.SSSSSS+Timezone Offset(ISO 8601)person:object* Data about the verified personfirstName:string | null* Person's first name as written on the documentlastName:string | null* Person's last name as written on the documentdateOfBirth:string* Person’s date of birth, represented asYYYY-MM-DDgender:string | null* Person’s gender, represented as M or F, ornullif not presentnationality:string | null* Person’s nationality, represented as ISO 3166alpha-2oralpha-3numberidNumber:string | null* National identification numberyearOfBirth:string | null* Person’s year of birth, represented asYYYYplaceOfBirth:string | null* Person’s place of birthaddresses: a map with keysfulladdressandparsedAddress. Optional, depending on the integrationfullAddress:string | nullAddress as single stringparsedAddress:objectObject containing parts of thefullAddressvalue as separate keys. Optional, depending on the integrationcity:string | nullAny human settlement, including cities, towns, villages, hamlets, localities, etc.country:string | nullSovereign nations and their dependent territories (ISO-3166)houseNumber:string | nullExternal (street-facing) building numberpostcode:string | nullPostal codes used for mail sortingstate:string | nullA first-level administrative divisionstreet:string | nullStreet nameunit:string | nullAn apartment, unit, office, lot, or other secondary unit designator
fullName:string | nullFull name of the person. Optional, only for Indian Aadhaar cards registry based verificationnameComponents:objectObject containing person’s name components extracted from the document. Optional, only available if configured for you integration by Verifftitle:string | nullPerson’s title extracted from the document, e.g., “MR”, “MS”.nullwhen no title data present on the documentmiddleName:string | nullPerson’s middle name extracted from the document, from a dedicated field on the document or document barcode results.nullwhen the first name has no suffix according to barcode data. The field is not sent when the document has no dedicated field or barcodefirstNameOnly:string | nullPerson’s first name extracted from the document and stripped from all components likemiddleNameorfirstNameSuffixfirstNameSuffix:string | nullPerson’s first name suffix.nullwhen the first name has no suffix according to barcode data. The field is not sent when the document has no barcode
occupation:stringOccupation data from the document. Optional, depending on the integrationemployer:stringEmployer's name from the document. Optional, depending on the integrationforeignerStatus:stringForeigner status field from the document. Optional, depending on the integrationextraName:stringAdditional name from the document. Optional, depending on the integrationtitle:stringPerson’s title extracted from the document. Optional, depending on the integrationifeIdentifier:string | nullThe voter's card identifier (OCR). Optional, only for Mexican registries verificationineIdentifier:string | nullThe citizen's identifier (Identificador del Ciudadano). Optional, only for Mexican registries verificationpepSanctionMatch:string | nullLegacy field, may return incorrect result, should be ignoredcitizenship:nullDeprecated, always returns nullelectorNumber:string | nullPerson’s electoral number. Optional, currently only for Mexican registry checks. Present only if the data was available on the documenteyeColor:string | nullPerson’s eye color as stated on the document. Optional, present only if the data was available on the documenthairColor:string | nullPerson’s hair color as stated on the document. Optional, present only if the data was available on the documentheight:string | nullPerson’s height as stated on the document. Optional, present only if the data was available on the documentweight:string | nullPerson’s weight as stated on the document. Optional, present only if the data was available on the document
document:object* Verified documentnumber:string | null* Document number,[a-zA-Z0-9]characters onlytype:string | null* Document type, one ofPASSPORT,ID_CARD,RESIDENCE_PERMIT,DRIVERS_LICENSE,VISA,OTHER. For more info, see the Supported document types for IDV articlecountry:string | null* Document issuing country, represented as ISO 3166alpha-2codestate:string | null* Document issuing state, represented as ISO 3166alpha-2oralpha-3coderemarks:stringData extracted from document’s remarks fieldvalidUntil:string | nullDocument is valid until date, represented asYYYY-MM-DD. Optional, must be configured for your integration by the Solutions EngineervalidFrom:string | nullDocument is valid from date, represented asYYYY-MM-DD. Optional, must be configured for your integration by the Solutions EngineerplaceOfIssue:string | nullPlace where document was issued. Optional, depending on the integrationfirstIssue:string | nullDate of document first issue, represented asYYYY-MM-DD. Optional, depending on the integrationissueNumber:string | nullDocument issue number. Optional, depending on the integrationissuedBy:string | nullDocument issuing authority. Optional, depending on the integrationnfcValidated:booleanIndicates if the biometric document data has been successfully decoded. Optional, only when NFC validation has been enabled for the integrationresidencePermitType:stringType of the residence permit, as shown on the document. Optional, depending on the integrationportraitIsVisible:booleanIndicates that the portrait image is visible in the session and its quality is sufficient to perform verification. Optional, depending on the integrationsignatureIsVisible:booleanIndicates that the signature is present on the document and readable to perform the verification. Optional, depending on the integrationineIdentifier:string | nullPerson’s INE (Mexican voter’s registry) identifier number. Optional, present only if the data was available on the documentspecimen:objectContains additional data about the particular document type. Optional, depending on integrationcontainsContactlessChip:booleanIndicates if the document contains a contactless chip (NFC)firstIssuedDate:stringIndicates the first issue date of the identity document template, as YYYY-MM-DDlastIssuedDate:stringIndicates the last issue date of the identity document template, as YYYY-MM-DDnistVersion:stringIndicates the version of the US National Institute of Standards and Technology guidelinesdigitalDocument:booleanIndicates if the document is a digital template identity documentnonStandardDrivingLicense:booleanIndicates 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:booleanIndicates if the document is issued to a military personnel/staff or personnel's familytemporaryEmergencyDocument:booleanIndicates if the document is a temporary identity documentasylumRefugeeDocument:booleanIndicates if it is a document that is issued exclusively to asylum seekers or refugeesICAOStandardizedDocument:booleanIndicates if the document is under the standards of International Civil Aviation OrganizationnotNationalIdCard:booleanIndicates if the identity card is not a national ID card (e.g., social security card, tax ID, electoral ID)legalStatus:string|nullIndicates 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 identityhasSecurityRisk:booleanIndicates if the document has properties that can increase the chance of document tampering
additionalVerifiedData:objectData that has been optionally verified for the session. Optional, depending on the integrationdriversLicenseNumber:stringNumber of the driver's license. Optional, depending on the integrationdriversLicenseCategory:objectIndicates 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:objectDate when the driving license category was obtained. Optional, depending on the integrationB:string | nullCategory is valid from date, represented asYYYY-MM-DD
driversLicenseCategoryUntil:objectDriving license category expiry date. Optional, depending on the integrationB:string | nullCategory is valid until date, represented asYYYY-MM-DD
driversLicenseCategories:arrayList of category types visible on the driver's licenseestimatedAge:numberEstimated age. Optional, depending on the integrationestimatedGender:numberEstimated gender, values closer to 0.0 indicate 'male', values closer to 1.0 indicate 'female'. Optional, depending on the integrationUKTFCheckResult:arrayArray of UK DIATF checks results. Optional, only for customers with Veriff UK DIATF solutioncpfValidation:object | nullBrazilian individual taxpayer registry (CPF) validation check object. Optional, only for customers with Brazilian registry checksstatus:string | nullStatus of the entry in the registry, one ofCPF 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 | nullBrazilian individual taxpayer registry (CPF) number of the personname:string | nullPerson's name in the CPFdateOfBirth:string | nullPerson's date of birth in the CPF asYYYY-MM-DDyearOfDeath:string | null Person's year of death in the CPF asYYYY-MM-DD
processNumber:stringProcess number (e.g., "Trámite №") from the document. Optional, depending on the integrationineBiometricRegistryValidation:objectINE Biometric Database Verification check object. Optional, available only when the INE Biometric Validation check has been enabled for the integrationfaceMatch:boolean | nullIndicates if the person's selfie image is a match with their image in the registry. This decision is made based on the value returned infaceMatchPercentage(see below).nullif the check could not be completedfaceMatchPercentage:integer | nullIndicates 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.nullif the check could not be completedresponseStatus:string | nullIndicates the response received from the service provider. One of success or failure; ornullif the check could not be completed
registryValidation:objectRegistry validation check object. Optional, available only when the registry validation check has been enabled for the integration (currently available for Colombia registries)countryRegistry:stringCountry of the registryregistryName:stringName of the registryfullNameSimilarity:numberSimilarity of the full name in the registry to the full name in the documentdocumentValid:booleanIndicates if the document is valid in the registrypersonIsAlive:booleanIndicates if the person is alive in the registry
proofOfAddress:objectProof of address data. Optional, available only if the Proof of Address Verification has been enabled for your integration.nameMatch:booleanIndicates if the name on the proof of address document matches the name from the initial request data.nullif the check could not be completed.nameMatchPercentage:floatIndicates the level of similarity the matched names have, in the range of 0.00-100.00.nullif the check could not be completed.documentType:stringIndicates the type of the proof of address document.nullif the check could not be completed.issueDate:string | nullPoA document issue date, inYYYY-MM-DDformatfraud:objectReturns data about document integrity. Available only if the fraud validation check has been enabled for your Proof of Address integration.riskLevel:string | nullIndicates the risk level, possible valuesLOW_RISK,MEDIUM_RISK,HIGH_RISK.nullif the check was not executed or failed.reason:string | nullShort description indicating the reason behind the risk level.nullif the check was not executed or failed.reasonDescription:string | nullHuman readable explanation of the data in thereasonfield.nullif the check was not executed or failed.indicators:arrayArray strings listing the factors that influenced the risk assessment. Empty if the check was not executed or failed.
addressValidationResult:objectContains data that has been found about the extracted addresscomponents:objectplausibleFullAddress:string | nullFull address as a string, containing extracted and found datacity:string | nullAny human settlement, including cities, towns, villages, hamlets, localities, etc.unit:string | nullAn apartment, unit, office, lot, or other secondary unit designatorstate:string | nullA first-level administrative divisionstreet:string | nullStreet namecountry:string | nullSovereign nations and their dependent territories (ISO 3166)postcode:string | nullPostal codes used for mail sortinghouseNumber:string | nullExternal (street-facing) building number
addressType:string | nullIndicates if the address is of a residential or business premise, or it is a PO box. One ofresidential,business,poBox.nullif the address validation feature was has not been enabled, or if no data was sent.validations:objectContains country validation result datacountryExists:objectIndicates if the validation was able to verify the countryresult:string | nullIndicates the result of country validation, or if it was skipped. One ofsuccess,failure,skipped
addressMatching:Contains all address matching validation resultsaddresses:arrayArray of exactly 2 address objects - first from initData, second from PoA documentfullAddress:stringOriginal full address string as provided/extractedparsedAddress:objectGoogle Maps API parsed address componentscity:string | nullParsed city nameunit:string | nullParsed partment/unit numberstate:string | nullParsed state/provincestreet:string | nullParsed street name (premise)country:string | nullParsed country namepostcode:string | nullParsed postal/ZIP codehouseNumber:string | nullParsed house/building number
result:booleanIndicates whether addresses match based on thresholdmatchThreshold:integerConfigured matching percentage thresholdmatchPercentage:integerIndicates matching percentage
validationResults:arrayData that has been optionally verified for the US Database Verification session or any other Match Database Verification session, depending on the integration. Empty if no additional data was verified. Optional, depending on integrationregistryName:stringName of the registryfirstName:stringIndicates the match level of person’s first name datalastName:stringIndicates the match level of person’s last name datadateOfBirth:stringIndicates the match level of person’s date of birth dataaddress:stringIndicates the match level of person’s address datacity:stringIndicates the match level of person’s address data, specifically citystate:stringIndicates the match level of person’s address data, specifically statezip:stringIndicates the match level of person’s address data, specifically zip code (post code)idNumber:stringIndicates the match level of person’s identity number or SNN number data
officialDatabaseVerification:objectContains database verification results. Optional, only available if INE Database Verification or CURP Database Verification has been enabled for your integrationine:objectContains INE verification resultsmatchData:objectOptional, 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 above).dateOfBirth:stringIndicates if the date of birth data matches gender data in registryfullName:stringIndicates if the full name data matches gender data in registrygender:stringIndicates if the gender data matches gender data in registry
validations:objectObject containing validation check resultsprocessing:objectProcessing validation resultresult:stringOne ofsuccess,failure(request processing encountered an error, e.g., system error, communication issue, provider unavailable),not_applicable(processing check was not configured),skippedreasons:arrayAdditional information about the validation result. Not sent ifresult:success.
ineCardIsValid:objectConfirms that the INE credential exists and data matchesresult:stringOne ofsuccess,failure(credential is invalid, the data does not match, or the credential does not exist),not_applicable(processing check was not configured),skippedreasons:arrayAdditional information about the validation result. Not sent ifresult:success.
ineIsValidForVoting:objectVerifies active voting rightsresult:stringOne ofsuccess,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),skippedreasons:arrayAdditional information about the validation result. Not sent ifresult:success.
matching:objectOptional, only available when the input data matching validation was enabled for the integration (ine.matchDataparameter is included in the payload)result:stringAlwayssuccess, irrespective ofmatchDataresults
registryResponse:objectDetailed information from the Mexican electoral registryelectorKey:stringVoter key (Clave de Elector) assigned to the credential holderissueNumber:stringThe issue/emission number of the credential (1-9 indicating how many times the credential has been reissued)registrationYear:stringYear the person was registered in the electoral systemissueYear:stringYear the current credential was issuedvalidity:stringExpiration date of the credential (format: DD de MMMM de YYYY in Spanish)ocr:stringOCR (Optical Character Recognition) code from the credentialcic:stringCIC (Código de Identificación de la Credencial) aka credential identification codefederalDistrict:stringFederal electoral district number
curp: object containing CURP verification resultsmatchData:objectOptional, 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 above).dateOfBirth:stringIndicates if the date of birth data matches gender data in registryfullName:stringIndicates if the full name data matches gender data in registrygender:stringIndicates if the gender data matches gender data in registry
validations:objectprocessing: Indicates processing validation resultresult:stringindicates if the request was properly processed, one ofsuccess,failure(there was an error when processing the request) ornot_applicable(processing check was not configured).reasons:arrayAdditional information about the validation result. Not sent ifresult:success.
curpIsValid: CURP validity validation resultresult:stringstatus of the validity validation check, one ofsuccess,failure(CURP does not exist, has a formatting issue, or is invalid) ornot_applicable(validity check not configured).reasons:arrayAdditional information about the validation result. Not sent ifresult:success.
curpHasNoRiskFactors: risk factors validation resultresult:stringstatus of the validation, one ofsuccess,failure(risk factors were detected) ornot_applicable(no risk factors were found).reasons:arrayAdditional information about the validation result. Not sent ifresult:success.
matching:objectOptional, only available when the input data matching validation was enabled for the integration (curp.matchDataparameter is included in the payload)result:stringAlwayssuccess, irrespective ofmatchDataresults
registryResponseObject containing detailed information retrieved from the Mexican government registry.curp:stringThe validated CURP numberpaternalSurname:stringPerson's paternal surname from registrymaternalSurname:stringPerson's maternal surname from registrynames:stringPerson's given name(s) from registrygender:stringGender indicator (H=Male, M=Female)dob:stringDate of birth from registrynationality:stringNationality codesupportingDocument:stringType of supporting document used for CURP registrationregistrationEntity:stringEntity where the person was registeredregistrationStateNumber:stringState indicator where the person was registeredregistrationMunicipalityKey:stringMunicipality indicator where the person was registeredpage:stringPage number from birth certificate (if applicable)tome:stringTome number from birth certificate (if applicable)book:stringBook number from birth certificate (if applicable)minutesNumber:stringMinutes number from civil registrycrip:stringCRIP identifierregistrationEntity2:stringSecondary registration entityregistrationYear:stringYear of registrationforeignRegistrationNumber:stringForeign registration indicatorletterFolio:stringLetter folio from registrationbirthStateKey:stringState of birth codeissueEntityKey:stringEntity that issued the CURPcurpStatus:stringCurrent status of the CURPcertificateFolio:stringCertificate information
faceMatch:stringIndicates the result of Selfie2Selfie Biometric Validation result. Optional, available only if the solution has been enabled for your configuration.biometricRegistryValidationResults:objectBiometric registry validation container. Optional, available only when Brazilian CPF Biometric Database Check has been enabled for your integration.[ISO country code]:objectCountry code in ISO 3166alpha-2format. Indicates the country the biometric registry validation solution is enabled for. Currently available only for Brazilian CPF Biometric Database Check solutionisFirstNameMatch:booleanFirst name match result,nullif first name match validation was not enabled or the check could not be completedisLastNameMatch:booleanLast name match result,nullif last name match validation was not enabled or the check could not be completedisDobMatch:booleanDate of birth match result,nullif date of birth match validation was not enabled or the check could not be completedisFaceMatch:booleanFacial biometric match result,nullif selfie not sent or the check could not be completed
riskScore:objectData about the risk score. Optional, depending on the integrationscore:numberA 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:arrayArray 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[↗] article in Veriff Knowledge Baselabel:stringName of the risk labelcategory:stringRisk label category, one ofclient_data_mismatch,crosslinks,device,document,images,network,session,person,risk-scoresessionIds:arrayArray of verification IDs that are referenced to the particular risk label
biometricAuthenticationobjectBiometric Authentication data object. Optional, the presence of this property depends on biometric authentication being enabled for the integrationmatchedSessionId:string | nullUUID v4 which refers to the verification session ID which face matchedmatchedSessionEndUserId:string | nullRefers to the verification session endUserId which the face matchedmatchedSessionVendorData:string | nullUUID v4 which refers to the verification session vendor data or end-user UUID which face matcheddetails:objectLists 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[↗] 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 objectip:string | nullIP of the device from which the verification was made
Changelog
Date | Description |
|---|---|
Dec 10, 2025 | Added to
|
Dec 3, 2025 | Added link to Match Database Verification article to |
Nov 27, 2025 |
|
Nov 19, 2025 |
Info box about |
Nov 13, 2025 |
|
Oct 3, 2025 |
|
Oct 2, 2025 |
Note about |
Changelog (Mar-Sep 2025)
Date | Description |
|---|---|
Sep 8, 2025 | Updated the description of |
Sep 5, 2025 |
|
Jul 22, 2025 |
|
Jul 14, 2025 | Improved the description of When is decision webhook sent? section |
Jun 12, 2025 | The |
Jun 6, 2025 | Heading “Article versioning” changed to “Changelog” |
May 20, 2025 |
|
May 15, 2025 |
|
Apr 12, 2025 |
|
Mar 12, 2025 | Documentation published |