CURP (Clave Única de Registro de Población) database verification guide

Businesses operating in Mexico are obliged to verify their users’ identity using database verification checks as part of the identity verification process.

This guide gives an overview of the verification check of the Mexican Clave Única de Registro de Población (CURP). The CURP (Unique Key of Population Registry) is the name of the population number/certificate in Mexico.

The solutionis available via API, web flow, and native SDKs.

Contact your solutions engineer for info and configuration.


Prerequisites


Flow overview

The flow is a bit different, depending on the method you are using to verify your end-users with Veriff.

Use over 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 CURP registry validation webhook

Use over API

  1. Generate a verification session using the a API keys and the baseURL of the integration used for this solution integration (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 CURP registry validation webhook and/or query the data from the GET /sessions/{sessionId}/decision/curp-registry[↗] endpoint


Find the decision and/or session related info

You can get the data from three sources:

  • Receive the CURP registry validation webhook

  • Query the results via GET sessions/{sessionId}/decision/curp-registry

  • View the session in Veriff Customer Portal

Webhook payload

Check the CURP registry validation webhook payload, see the CURP webhook documentation for detailed overview.

API call

You can use the GET /sessions/{sessionId}/decision/curp-registry[↗] endpoint, check 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/curp-registry?version=1.0.0

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


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:


Article versioning

Date

Description

Mar 28, 2025

Broken link fixed

Mar 12, 2025

Documentation published