Veriff INE Biometric Database Verification (aka INE Biometric Validation) is a check required for establishing identity in the Mexican market.
It is available via API, web flow, and native SDKs.
All session-related info is returned via decision webhook and can be queried via different API endpoints. The results of the verification can also be viewed in the Veriff Customer Portal, under the Webhook tab.
Contact your solutions engineer for info and configuration.
Prerequisites
You have an integration set up with Veriff
The check is configured for that integration by your Solutions Engineer
A verification session generated for the end-user
You have configured the decision webhook to get responses from Veriff (see the Webhooks section for info)
End-user has given consent to pass their image to conduct the INE Biometric Validation check
Flow overview
The flow is a bit different, depending on the method you are using to verify your end-users with Veriff.
Use via SDK
Generate a verification session using the
API keys
and thebaseURL
of the integration you are using for INE Biometric Database Verification (see the API Documentation and API Reference[↗] how to find these)Capture end-user’s document and selfie images with Veriff’s SDKs
Send the end-user through the verification flow to capture the images (using the preferred Veriff SDK)
You need the session URL generated in step 1 to use the SDKs (found in response payload as
verification.url
)
Session will be submitted automatically once the end-user takes and submits necessary images
Receive the results from Veriff via decision webhook
Use via API
The flow is just the same as when you are using the public API endpoints to do the document + selfie IDV verification. Main difference is that you must include the consent parameter in the API request payload (see above).
Generate a verification session using the
API keys
and thebaseURL
of the integration you are using for INE Biometric Database Verification (see the API Documentation and API Reference[↗] how to find these)Make sure to include the consent in the payload
Use your image-capturing method, or prepare previously collected end-user selfie and document images
Upload the end-user's media via POST /sessions/{sessionId}/media[↗] call
Specify the
image.context
as appropriate for the image (see Context types (image, video) for more info about image context types)
Patch session status to
submitted
status using PATCH /sessions/{sessionId}[↗] callCheck the decision data and/or session related info from the decision webhook and/or query the data from the GET sessions/{sessionId}/decision[↗] endpoint
Add end-user’s consent to the session
When generating a session for INE Biometric Database Verification purposes, in the verification
object include the consents array with type: ine
and approved
: true
attributes (as shown below). true
is mandatory to start the INE Biometric Validation. If false
or missing, the session is not created.
Below is an excerpt from the POST /sessions request payload, to show the relevant attributes. For full view of the payload, see the POST /sessions[↗] documentation.
curl -X POST \
--url '/v1/sessions/' \
-H 'Content-Type: application/json' \
-H 'X-AUTH-CLIENT: API-PUBLIC-KEY' \
-d '{
"verification": {
"callback": "https://veriff.com",
"consents": [
{
"type": "ine",
"approved": true
}
],
...
}
}'
Ensure consent from the end-user that they permit sending their image to Veriff and Veriff's service provider for conducting the INE Biometric Registry Verification check, including biometric data processing.
Find decision and/or session related info
Webhook payload
The INE Biometric Validation check results are in additionalVerifiedData.ineBiometricRegistryValidation
object.
Sample request
The sample and explanation below contain only INE Biometric Validation part of the webhook. The decision webhook is used for many purposes, to find more info about it, see the decision webhook payload.
{
"status": "success",
"verification": {
...
"additionalVerifiedData": {
"ineBiometricRegistryValidation": {
"faceMatch": true,
"faceMatchPercentage": 89,
"responseStatus": "success"
},
...
},
...
}
}
Request properties explained
status
:string
* Status of the responseverification
:object
* Verification request decision object…
additionalVerifiedData
:object
* Data which has been optionally verified for sessionineBiometricRegistryValidation
:object
* INE Biometric Database Verification check objectfaceMatch
: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 completedfaceMatchPercentage
: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 completedresponseStatus
:string | null
* Indicates the response received from the service provider. One of success or failure; ornull
if the check could not be completed
*Required field
API call
The second source is the GET sessions/{sessionId}/decision endpoint, API call response, as additionalVerifiedData.ineBiometricRegistryValidation
object.
Sample response
The example below contains only INE Biometric Validation part of the webhook. The endpoint is used for many purposes, to find more information about it, see the GET sessions/{sessionId}/decision[↗] documentation.
{
"status": "success",
"verification": {
...
"additionalVerifiedData": {
"ineBiometricRegistryValidation": {
"faceMatch": true,
"faceMatchPercentage": 89,
"responseStatus": "success"
},
...
},
...
}
}
Response properties explained
status
:string
* Status of the responseverification
:object
* Verification request decision object…
additionalVerifiedData
:object
* Data which has been optionally verified for sessionineBiometricRegistryValidation
:object
* INE Biometric Database Verification check objectfaceMatch
: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 completedfaceMatchPercentage
: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 completedresponseStatus
:string | null
* Indicates the response received from the service provider. One of success or failure; ornull
if the check could not be completed
*Required field
Veriff Customer Portal
You can find the verification session related info, including the decision, in the Veriff Customer Portal, under the Webhooks tab.
→ See Review verification in Veriff Customer Portal about how to view the session info in the Veriff Customer portal
Status and reason codes
For an approved
session, see the verification.code
and verification.status
parameters.
If the session was declined
or resubmission_requested
, you can find additional information by checking the verification.status
, verification.code
, verification.reason
and verification.reasonCode
data objects.
For more info about the codes you are seeing, refer to: