Validar pasaporte con archivos
El endpoint te permite validar un pasaporte a partir de imágenes que tú ya tienes: envías la foto de la página de datos del pasaporte y, opcionalmente, una selfie del titular. A diferencia de la sesión de verificación con pasaporte, no hay que enviar al usuario a ninguna pantalla de captura.
Descripción
Sección titulada «Descripción»Con las imágenes que envías se verifica:
- La autenticidad del documento: lectura de la MRZ (zona de lectura mecánica) y del texto visible (OCR), dígitos de control de la MRZ, vigencia y coincidencia entre los datos de la MRZ y los del OCR.
- La comparación facial entre la selfie y la fotografía impresa en el pasaporte, solo si envías la selfie.
Flujo de la validación
Sección titulada «Flujo de la validación»La validación es asíncrona: el endpoint responde de inmediato y el análisis se hace en segundo plano.
- Envías las imágenes a este endpoint y recibes el
uuidde la validación constatuspending. - La validación pasa a
processingmientras se analiza el pasaporte (normalmente menos de un minuto). - Termina en
completedconresult100 si se aprobó, o enfailedconresult0 y el motivo enerrors. - Recibes el resultado en tu
webhooko lo consultas en Consultar validación de pasaporte con archivos.
Método: POST
Endpoint
Sección titulada «Endpoint»https://api.verificamex.com/identity/v2/validations/passportEncabezados de la Solicitud
Sección titulada «Encabezados de la Solicitud»Para realizar la solicitud es necesario incluir los siguientes encabezados:
| Encabezado | Valor | Descripción |
|---|---|---|
| Accept | application/json | Tipo de contenido de la respuesta. |
| Content-Type | application/json | Tipo de contenido de la solicitud. |
| Authorization | Bearer {tu_token} | Token generado para autenticar al usuario. |
Cuerpo de la Solicitud
Sección titulada «Cuerpo de la Solicitud»| Parámetro | Tipo | Descripción |
|---|---|---|
| passport_front | String | Imagen de la página de datos del pasaporte (la que tiene la fotografía y la MRZ) codificada en Base64. |
| selfie | String Opcional | Selfie del titular codificada en Base64. Si la envías, se compara su rostro con la fotografía del pasaporte. |
| webhook | String Opcional | URL a la que se enviará una petición POST con el resultado cuando la validación termine. |
Ejemplo de cuerpo de la solicitud
Sección titulada «Ejemplo de cuerpo de la solicitud»{ "passport_front": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD....", "selfie": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD....", "webhook": "https://www.tusitio.com/webhooks/verificamex"}curl -X POST https://api.verificamex.com/identity/v2/validations/passport \ -H "Authorization: Bearer {TU_TOKEN}" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "passport_front": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD....", "selfie": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD....", "webhook": "https://www.tusitio.com/webhooks/verificamex" }'Respuesta del Endpoint
Sección titulada «Respuesta del Endpoint»La respuesta tiene la misma estructura que Consultar validación de pasaporte con archivos. Al crearla, la validación todavía no tiene resultado.
{ "object": "PassportValidation", "uuid": "01a14459-d3a0-7087-bee8-dbd53d6418f0", "status": "pending", "result": null, "errors": null, "face_comparison_requested": true, "passport": null, "document_reading": null, "files": [], "tokens": 0, "created_at": "2026-10-16T10:55:00-06:00", "updated_at": "2026-10-16T10:55:00-06:00"}{ "message": "El formato de la imagen de la página de datos del pasaporte no es compatible. Usa JPG, PNG o WEBP.", "errors": { "passport_front": [ "El formato de la imagen de la página de datos del pasaporte no es compatible. Usa JPG, PNG o WEBP." ] }}{ "message": "Unauthorized"}{ "message": "Las transacciones del usuario se han terminado"}| Parámetro | Tipo | Descripción |
|---|---|---|
| object | String | Siempre "PassportValidation". |
| uuid | String | Identificador de la validación (UUID v7). Guárdalo para consultar el resultado. |
| status | String | Al crearla siempre es "pending". |
| result | Integer | null mientras la validación no termina. |
| face_comparison_requested | Boolean | true si enviaste selfie y se hará la comparación facial. |
| tokens | Integer | Tokens cobrados. 0 mientras la validación no termina. |
Webhook
Sección titulada «Webhook»Si enviaste webhook, recibirás una sola petición POST cuando la
validación termine (completed o failed). El cuerpo es el mismo objeto que devuelve
Consultar validación de pasaporte con archivos, sin la envoltura
data.
Diferencias con la sesión de verificación con pasaporte
Sección titulada «Diferencias con la sesión de verificación con pasaporte»| Sesión de verificación | Validación con archivos | |
|---|---|---|
| Captura | El usuario entra a form_url y captura en vivo | Tú envías las imágenes |
| Prueba de vida | Sí | No |
| Comparación facial | Sí | Solo si envías selfie |
| Costo | 10 tokens | 5 tokens, más 5 por la comparación facial |
| Resultado | GET /v2/identity/sessions/{id}?include=passport | GET /v2/validations/passport/{uuid} |