Referencia de la API

# Consulta una CURP en RENAPO

Devuelve la identidad registrada en RENAPO para una CURP, con el estado de certificación y las CURP asociadas por corrección.

POST

`/v1/curp/lookup`

Consulta una CURP en RENAPO, el registro nacional de población, y obtén la identidad registrada para ella. Tarda alrededor de 5 segundos y cuesta 10 créditos.

Úsalo para confirmar que una CURP existe y pertenece a la persona: compara los nombres y la fecha de nacimiento con los datos que te proporcionó. Las CURP con formato incorrecto se rechazan antes de consultar RENAPO.

## Cuerpo de la solicitud


| Campo | Tipo | Requerido | Descripción |
| --- | --- | --- | --- |
| `curp` | string | Sí | La CURP a consultar (18 caracteres, mayúsculas o minúsculas). |
| `include_pdf` | boolean | No | Usa true para incluir el PDF oficial de la CURP en pdf_base64. El valor predeterminado es false. |


## Solicitud de ejemplo

curl

```bash
curl -X POST https://curpcheck.com/v1/curp/lookup \
  -H "x-api-key: rfc_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"curp": "PEMJ800101HDFRRN07"}'
```

## Respuesta (200)

200 OK

```json
{
  "curp": "PEMJ800101HDFRRN07",
  "found": true,
  "message": "Identity retrieved from RENAPO",
  "person": {
    "curp": "PEMJ800101HDFRRN07",
    "renapo_valid": true,
    "names": "JUAN",
    "paternal_surname": "PEREZ",
    "mothers_maiden_name": "MARTINEZ",
    "sex": "HOMBRE",
    "birthdate": "01/01/1980",
    "nationality": "MEXICO",
    "entity_birth": "DF",
    "status_curp": "RCN",
    "certified": true,
    "certification": "CURP Certificada: verificada con el Registro Civil",
    "associated_curps": [],
    "probation_document": "ACTA DE NACIMIENTO",
    "probation_document_data": {},
    "homonimo": false
  }
}
```

found es true (RENAPO devolvió el registro en person), false (RENAPO no devolvió un solo registro; message trae el motivo de RENAPO, y person.homonimo es true cuando RENAPO reporta un problema con la clave) o null (no se pudo contactar a RENAPO, reintenta más tarde). Una respuesta false cuesta 10 créditos. Una respuesta null no se cobra.

person usa los mismos campos que los objetos person y legal_representative que devuelve /rfc/validate en RFCCheck. birthdate viene en el formato DD/MM/AAAA de RENAPO.

## Estatus de la CURP

status_curp es el código de estatus propio de RENAPO, sin cambios. Valores comunes: AN (alta normal), AH (alta con homonimia), RCN (registro de cambio no afectando a CURP) y RCC (registro de cambio afectando a CURP). Los códigos que empiezan con B son bajas, es decir, la CURP fue dada de baja; BD es baja por defunción.

person.certified es true cuando el PDF incluye una leyenda de certificación, false cuando se pudo leer el PDF y no aparece la leyenda, o null cuando no se pudo leer. La certificación puede ser del Registro Civil, la SRE o el INM. Este campo no determina la nacionalidad ni el derecho a obtener un pasaporte o una credencial del INE.

Cada consulta y búsqueda lee el PDF oficial para incluir person.certification (la leyenda de certificación tal como aparece) y person.associated_curps (CURP asociadas por corrección). Una lista vacía indica que no aparecen CURP asociadas. Si no se puede leer el documento, ambos campos son null y se devuelve la identidad registrada. include_pdf solo controla si se devuelve el archivo en base64.

Con include_pdf en true, una respuesta exitosa también incluye pdf_base64, el PDF oficial de RENAPO codificado en base64. No se cobran créditos adicionales. Si no se puede descargar el PDF solicitado, found es null y no se cobra la solicitud; inténtalo más tarde.

## Errores

- `422 missing_curp`: no hay curp en la solicitud. No se cobra.
- `422 invalid_curp`: la CURP no cumple las revisiones de formato, fecha de nacimiento, estado o dígito verificador, por lo que no se envió a RENAPO. No se cobra.