Mexico โ CURP
Verifik's Identity Verification API helps you authenticate Mexican citizens using the Unique Population Registry Code (CURP). It's designed to streamline your KYC (Know Your Customer) processes, prevent fraud, and ensure you meet all regulatory requirements effortlessly.
We built this integration for businesses that need a fast, secure, and automated way to confirm the true identity of users, employees, or customers.
What does this API validate?โ
Our API connects directly with official records to validate:
- Full Name & CURP: Supports Clave รnica de Registro de Poblaciรณn (CURP).
- Personal Details: Returns date of birth, gender, and nationality.
- Identity Match: Confirms that the name provided matches the CURP number.
By verifying these details, you can be confident that the person you're dealing with is real and holds a valid document, significantly lowering the risk of impersonation and fraud.
API Referenceโ
Endpointโ
https://api.verifik.co/v2/mx/curp
This endpoint verifies a Mexican nationalโs CURP (Clave รnica de Registro de Poblaciรณn) against official records. Send documentType and documentNumber on a GET request; a successful response confirms the identity record and returns validated name and biographical fields when the CURP is recognized.
Headersโ
| Name | Value |
|---|---|
| Accept | application/json |
| Authorization | Bearer <token> |
Parametersโ
| Name | Type | Required | Description |
|---|---|---|---|
documentType | string | Yes | Allowed value: CURP. |
documentNumber | string | Yes | The CURP value to validate. |
Requestโ
- Node.js
- Python
import axios from "axios";
const { data } = await axios.get("https://api.verifik.co/v2/mx/curp", {
params: { documentNumber: "ABCD890513ABCDEF09", documentType: "CURP" },
headers: { Accept: "application/json", Authorization: `Bearer ${process.env.VERIFIK_TOKEN}` },
});
console.log(data);
import os, requests
url = "https://api.verifik.co/v2/mx/curp"
headers = {"Accept": "application/json", "Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"}
params = {"documentNumber": "ABCD890513ABCDEF09", "documentType": "CURP"}
r = requests.get(url, headers=headers, params=params)
print(r.json())
CURP formatโ
A CURP is 18 characters. Verifik checks the layout and the RENAPO check digit before calling the registry.
| Positions | Meaning |
|---|---|
| 1โ4 | Letters taken from the name |
| 5โ10 | Birth date as YYMMDD |
| 11 | Sex: H or M |
| 12โ13 | State of birth (NE for people born outside Mexico) |
| 14โ16 | Internal consonants from the name |
| 17 | Century homoclave: 0โ9 when the birth year is 1931โ1999, or AโJ when the birth year is 2000โ2030 |
| 18 | Check digit |
The check digit is calculated from the first 17 characters with the RENAPO dictionary 0123456789ABCDEFGHIJKLMNรOPQRSTUVWXYZ. Each character's dictionary value is multiplied by 18 down to 2, and the digit is (10 - (sum % 10)) % 10.
A CURP that fails length, character layout, date, sex, state code, century homoclave, or the check digit is rejected with HTTP 409. The check-digit message includes the expected character. documentation always points at this English section:
{
"code": "InvalidCurp",
"message": "CURP check digit is invalid. The last character should be 0.",
"documentation": "https://docs.verifik.co/identity/mexico#curp-format"
}
Responseโ
- 200
- 409
{
"data": {
"documentType": "CURP",
"documentNumber": "ABCD890513ABCDEF09",
"firstName": "Juan",
"lastName": "Pรฉrez",
"fullName": "Juan Pรฉrez",
"dateOfBirth": "1989-05-13",
"nationality": "Mexican"
},
"signature": {"message": "Certified by Verifik.co", "dateTime": "January 16, 2024 3:44 PM"},
"id": "MX001"
}
{
"code": "InvalidCurp",
"message": "CURP check digit is invalid. The last character should be 0.",
"documentation": "https://docs.verifik.co/identity/mexico#curp-format"
}
Notesโ
documentNumbermust match the CURP format. A value that fails the layout or the check digit returns 409InvalidCurpand does not call the registry.
Common Use Casesโ
- Fintech & Banking: Verify identities instantly during account opening or loan applications.
- E-commerce & Delivery: Authenticate users and couriers before they become active on your platform.
- HR & Recruitment: Validate candidate documents as part of your hiring workflow.
- Insurance & Healthcare: Confirm identities before issuing policies or providing medical benefits.
Official Sources & Reliabilityโ
We connect directly with official Mexican government sources (RENAPO) to ensure you receive verified, up-to-the-minute information. Every query is handled with strict adherence to security and regulatory standards.
Key Benefitsโ
- Automated Compliance: Streamline your KYC checks to prevent fraud without adding friction for your users.
- Instant Results: Process verifications in seconds, perfect for real-time digital onboarding.
- Trusted Data: Rely on data sourced directly from official records.
- Easy Integration: Connect easily via our REST API or use our compatible SDKs.
Compliance & Securityโ
We prioritize the safety of your data. Verifik uses advanced encryption (HTTPS/TLS 1.3) and strict privacy management standards to ensure confidentiality. Our service is monitored 24/7 for availability and offers role-based access controls to keep your team's access secure.
About Verifikโ
Verifik is a leading platform for identity verification, compliance, and fraud prevention across Latin America. Our APIs automate KYC, KYB, AML, and biometric validation processes, connecting businesses with official data sources in Colombia, Mexico, Peru, Chile, Uruguay, Argentina, and beyond.