Combined INE+CURP database verification guide

This guide gives an overview of the verification check of the Mexican INE and CURP databases. Businesses operating in Mexico are obliged to verify their users’ identity using database verification checks as part of the identity verification process.

It is available via API, web flow, and native SDKs.

The CURP (Unique Key of Population Registry) is the name of the population number/certificate in Mexico.

INE (Institutio Nacional Electoral - Mexican Electoral Registry) is the organization that issues the voter ID cards and maintains the voters registry.


Prerequisites

Contact your solutions engineer for info and configuration.


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

  1. Generate a verification session using the API keys and the baseURL of the integration used for this solution (see the API Documentation and API Reference[↗] how to find these)

  2. Capture end-user’s document and selfie images with Veriff’s SDKs

    1. Send the end-user through the verification flow to capture the images (using the preferred Veriff SDK)

    2. You need the session URL generated in step 1 to use the SDKs (found in response payload as verification.url)

  3. Session will be submitted automatically once the end-user takes and submits necessary images

  4. Receive the results from Veriff via INE+CURP webhook

Use via API

  1. Generate a verification session using the a API keys and the baseURL of the integration used for this solution (see the API Documentation and API Reference[↗] how to find these)

    1. Veriff strongly recommends you create and send the endUserId or vendorData

    2. Veriff strongly recommends you collect and send additional  session/device data via POST sessions/{sessionid}/collected-data[↗] for improved fraud detection

  2. Use your image-capturing method, or prepare previously collected end-user selfie and document images

  3. Upload the end-user's media via POST /sessions/{sessionId}/media[↗] call

    1. Specify the image.context as appropriate for the image (see Context types (image, video) for more info about image context types)

  4. Patch session status to submitted status using PATCH /sessions/{sessionId}[↗] call

  5. Check the decision data and/or session related info from the INE+CURP webhook and/or query the data from the  endpoint GET /sessions/{sessionId}/decision/combined-ine-curp-registry[↗]


Find decision and/or session related info

Webhook payload

First and foremost, you should check the INE+CURP registry validation webhook payload.

→ See the INE+CURP webhook article for detailed info

API call

Second source is the GET /sessions/{sessionId}/decision/combined-ine-curp-registry[↗] endpoint, see the documentation for more info.

Make sure to add the mandatory query parameter version=1.0.0 to the API URL: GET sessions/{sessionId}/decision/combined-ine-curp-registry?version=1.0.0

Veriff Customer Portal

You can find the verification session related info 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


Full forms of the statusCurp acronyms

  • Active CURP: AN (Alta Normal), AH (Alta con Homonimia), CRA CU (CURP Reactivada), RCN (Registro de Cambio no Afectando a CURP), RCC (Registro de Cambio Afectando a CURP)

  • For inactive CURP: BD (Baja por Defuncion), BDA (Baja por Duplicidad), BCC (Baja por Cambio en CURP), BCN (Baja no Afectando a CURP)


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: