CURP
Descriptionβ
Verifies the CURP (Unique Population Registry Code) and the personal information of any Mexican citizen or legal resident through RENAPO (National Population Registry).
HTTP method GETβ
Endpointβ
https://api.msla-id.com/experience-idv-docverifcheck-api-v1/api/idv-govcheck/v1/mx-identities/{curp}/validate
For testing purposes, use the base domain: apidev.msla-id.com
info
Before proceeding, make sure you have your jwt token, if you don't, check the login documentation.
Request header parameterβ
| NAME | REQUIRED | TYPE | DESCRIPTION |
|---|---|---|---|
| Authorization | β | string | Bearer JWT token |
URI request parameterβ
| NAME | REQUIRED | TYPE | DESCRIPTION | EXAMPLE |
|---|---|---|---|---|
| curp | β | string | CURP (Unique Population Registry Code), 18 characters | PELJ850315HJCRPN05 |
Status code responsesβ
| Code | Description |
|---|---|
| 200 | OK |
| 400 | IDV-1003 Arguments are not valid (malformed CURP) |
| 401 | Unauthorized (empty body) |
| 403 | IDV-1004 Forbidden |
| 404 | IDV-1002 Data not found |
| 500 | IDV-1008 Internal server error |
| 504 | IDV-1100 Gateway timeout |
The full documentation error codes can be found here.
Response 200 status codeβ
{
"traceId": "b2345cfc7bee621e",
"timestamp": "2026-10-14 17:44:30",
"data": {
"curp": "PELJ850315HJCRPN05",
"names": "JUAN CARLOS",
"paternalSurname": "PEREZ",
"maternalSurname": "LOPEZ",
"birthDate": "15/03/1985",
"birthState": "JALISCO",
"birthCountry": "MEXICO",
"sex": "HOMBRE",
"curpStatus": "RCN",
"probationDocument": 1,
"probationDocumentData": {
"registrationYear": "1985",
"registrationStateCode": "14",
"registrationState": "JALISCO",
"registrationMunicipalityCode": "039",
"registrationMunicipality": "",
"page": "",
"folio": "",
"book": "",
"recordNumber": "00123",
"foreignRegistrationNumber": "",
"volume": ""
},
"validationCode": "vc1792011234.5678901"
}
}
Response fieldsβ
| FIELD | TYPE | DESCRIPTION |
|---|---|---|
| data.curp | string | Queried CURP |
| data.names | string | Given name(s) of the person |
| data.paternalSurname | string | Paternal surname |
| data.maternalSurname | string | Maternal surname. It can be null if the record has none |
| data.birthDate | string | Date of birth, format DD/MM/YYYY |
| data.birthState | string | State of birth |
| data.birthCountry | string | Country of birth |
| data.sex | string | Registered sex (for example HOMBRE) |
| data.curpStatus | string | CURP status code in RENAPO (for example RCN) |
| data.probationDocument | integer | Code of the probation document type |
| data.probationDocumentData | object | Registration data of the probation document (year, state, municipality, record, etc.) |
| data.validationCode | string | Unique identifier of the query. |
Response 400 status codeβ
{
"traceId": "542fc743fffda052",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1003",
"message": "Arguments are not valid.",
"data": null
}
Response 401 status codeβ
The response has no body (empty).
Response 404 status codeβ
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1002",
"message": "Data not found.",
"data": null
}
Response 500 status codeβ
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1008",
"message": "Error in the source of origin, please contact an administration.",
"data": null
}
Response 504 status codeβ
{
"traceId": "43a20f33d4e8730d",
"timestamp": "yyyy-mm-dd HH:MM:SS",
"code": "IDV-1100",
"message": "Gateway Timeout",
"data": null
}