Consultar resultado de una sesión de pasaporte
Una sesión de pasaporte se consulta con el mismo endpoint que el resto de las
sesiones de verificación V2, filtrando por el id que
recibiste al crear la sesión. La diferencia es que debes pedir el objeto
passport, que trae los datos del pasaporte ya interpretados y el resumen de la verificación.
Método: GET
Endpoint
Sección titulada «Endpoint»https://api.verificamex.com/identity/v2/identity/sessions/{id}?include=passportEncabezados de la Solicitud
Sección titulada «Encabezados de la Solicitud»| Encabezado | Valor | Descripción |
|---|---|---|
| Accept | application/json | Tipo de contenido de la respuesta. |
| Authorization | Bearer {tu_token} | Token generado para autenticar al usuario. |
Parámetros de la Solicitud
Sección titulada «Parámetros de la Solicitud»| Parámetro | Tipo | Descripción |
|---|---|---|
| id | String | ID de la sesión de verificación. |
Query Parameters
Sección titulada «Query Parameters»| Parámetro | Tipo | Descripción |
|---|---|---|
| include | String | Usa passport para recibir la lectura del pasaporte. Los archivos (files) se incluyen siempre. ine y renapo no aplican a estas sesiones. |
| with_binaries | Boolean | Controla si cada archivo incluye su contenido en Base64 en el campo binary. Por defecto true. |
Estados y resultado
Sección titulada «Estados y resultado»status | result | Qué significa |
|---|---|---|
OPEN | null | La sesión se creó y el usuario aún no termina la captura. |
VERIFYING | null | El usuario terminó la captura y se está analizando el pasaporte. |
FINISHED | 100 | El pasaporte y la biometría se verificaron correctamente. |
FINISHED | 0 | El pasaporte se verificó, pero no se pudieron cobrar los tokens (ver errores). |
FAILED | 0 | El documento no es un pasaporte o no pasó las verificaciones. El motivo viene en errors. |
Cómo se decide el resultado
Sección titulada «Cómo se decide el resultado»- Se confirma que el documento capturado es un pasaporte. Si no lo es, la sesión termina en
FAILEDcon el errorDOC-PASSPORT-002. - Se revisa la verificación global del documento: el pasaporte se considera verificado cuando el resultado
global es
Oky no hay comprobaciones fallidas (failed_checks= 0). Si no, la sesión termina enFAILEDcon el errorDOC-PASSPORT-001. - Si el pasaporte se verificó, se cobran los tokens de la sesión y termina en
FINISHEDconresult100.
El objeto passport
Sección titulada «El objeto passport»Se encuentra en data.passport.data y está disponible cuando termina el análisis del documento (la sesión
en FINISHED o FAILED). Es null mientras el pasaporte no se ha analizado.
| Campo | Tipo | Descripción |
|---|---|---|
| object | String | Siempre "PassportReading". |
| id | String | Identificador de la lectura. |
| verified | Boolean | true si el documento pasó la verificación global sin comprobaciones fallidas. |
| document_type | String | Tipo de documento detectado. En una sesión aprobada siempre es "Passport". |
| country_code | String | País del documento (código ISO de 3 letras, por ejemplo "MEX"). |
| document_number | String | Número de pasaporte. |
| name | String | Nombre(s) del titular. |
| surname | String | Apellidos completos del titular. |
| father_surname | String | Primer apellido, si el pasaporte lo distingue. |
| mother_surname | String | Segundo apellido, si el pasaporte lo distingue. |
| sex | String | Sexo como aparece en el documento (por ejemplo "F" o "M"). |
| nationality | String | Nacionalidad (código ISO de 3 letras). |
| issuing_state | String | País emisor (código ISO de 3 letras). |
| personal_number | String | Número personal impreso en el pasaporte. En pasaportes mexicanos es la CURP. |
| date_of_birth | String | Fecha de nacimiento (YYYY-MM-DD). |
| date_of_issue | String | Fecha de expedición (YYYY-MM-DD). |
| date_of_expiry | String | Fecha de vencimiento (YYYY-MM-DD). |
| place_of_birth | String | Lugar de nacimiento. |
| issuing_authority | String | Autoridad que expidió el pasaporte. |
| global_result | String | Resultado global de la verificación del documento. "Ok" es el único valor aprobatorio; cualquier otro es un motivo de rechazo (por ejemplo "FailedChecks"). |
| security_level | String | Nivel de seguridad con el que se analizó el documento. |
| total_checks | Integer | Número de comprobaciones realizadas sobre el documento y la biometría. |
| success_checks | Integer | Comprobaciones que pasaron. |
| warning_checks | Integer | Comprobaciones con advertencia (no rechazan la sesión). |
| failed_checks | Integer | Comprobaciones que fallaron. Con una sola, la sesión se rechaza. |
| face_matching_confidence | Number | Porcentaje de similitud (0–100) entre la selfie y la foto del pasaporte. null si no se pudo comparar. |
| liveness_passed | Boolean | true si la prueba de vida fue exitosa. null si no se realizó. |
| created_at | String | Fecha de creación en formato ISO-8601. |
| updated_at | String | Fecha de la última actualización en formato ISO-8601. |
Errores
Sección titulada «Errores»Cuando la sesión no se aprueba, errors trae una entrada con esta forma:
{ "Key": "DOC-PASSPORT-001", "Name": "Verificación del pasaporte", "Category": "PassportValidation", "Result": false, "Output": "FailedChecks", "Message": "El pasaporte no pasó las verificaciones del documento o biométricas"}| Key | status | Motivo | Output |
|---|---|---|---|
| DOC-PASSPORT-001 | FAILED | El pasaporte no pasó las verificaciones del documento o las biométricas (comparación facial o prueba de vida). | El resultado global (global_result). |
| DOC-PASSPORT-002 | FAILED | El documento capturado no es un pasaporte. | El tipo de documento detectado (por ejemplo "IdCard"). |
| INSUFFICIENT-TOKENS-001 | FINISHED | El pasaporte se verificó, pero no tenías tokens suficientes al cerrar la sesión. El result queda en 0 y no se entregan los archivos (files). | Detalle del error de cobro. |
Archivos de la verificación
Sección titulada «Archivos de la verificación»El objeto files.data contiene las evidencias del proceso. Cada archivo trae una URL firmada (url) que
expira a los 15 minutos y, por defecto, su contenido en Base64 (binary).
file_type | Contenido |
|---|---|
PDF_VERIFICATION_REPORT | PDF con el reporte de la verificación. |
PASSPORT_FRONT | Imagen de la página de datos del pasaporte. |
FACE | Selfie del usuario. |
CROP_LIVE_PORTRAIT | Recorte del rostro de la selfie usado en la comparación facial. |
CROP_DOCUMENT_PORTRAIT | Recorte de la fotografía del pasaporte usado en la comparación facial. |
VIDEO | Video de la prueba de vida. |
Respuesta del Endpoint
Sección titulada «Respuesta del Endpoint»{ "data": { "object": "VerificationSession", "id": "9d805854-f8a1-4135-ad57-3629ca0fc679", "status": "FINISHED", "result": 100, "errors": null, "comments": null, "only_mobile_devices": false, "redirect_url": "https://www.tusitio.com/gracias", "webhook": "https://www.tusitio.com/webhooks/verificamex", "validations": [], "ine_reading": { "DocumentData": [ { "Type": "DocumentNumber", "Name": "Número de documento", "Value": "G00000001", "Source": "MRZ" }, { "Type": "Name", "Name": "Nombre", "Value": "MARÍA FERNANDA", "Source": "OCR" }, { "Type": "PersonalNumber", "Name": "Número personal", "Value": "LOGM900903MDFPRR09", "Source": "OCR" } ], "DocumentVerifications": [ { "Category": "Identification", "Key": "TemplateSelected", "Name": "Identificación del Documento", "Result": "Ok", "Output": null }, { "Category": "Biometrics", "Key": "Biometrics_FaceMatching", "Name": "Comprobación Facial", "Result": "Ok", "Output": "99.97" }, { "Category": "Biometrics", "Key": "Biometrics_LivenessCheck", "Name": "Verificación de Vida", "Result": "Ok", "Output": "OK" } ] }, "optionals": { "folio": "CLI-1001" }, "form_url": "https://app.verificamex.com/verification/9d805854-f8a1-4135-ad57-3629ca0fc679", "created_at": "2026-10-03T08:27:13.000000Z", "updated_at": "2026-10-03T08:31:02.000000Z", "readable_created_at": "hace 5 minutos", "readable_updated_at": "hace 1 minuto", "passport": { "data": { "object": "PassportReading", "id": "NxOpZowo9GmjKqdR", "verified": true, "document_type": "Passport", "country_code": "MEX", "document_number": "G00000001", "name": "MARÍA FERNANDA", "surname": "LÓPEZ GARCÍA", "father_surname": "LÓPEZ", "mother_surname": "GARCÍA", "sex": "F", "nationality": "MEX", "issuing_state": "MEX", "personal_number": "LOGM900903MDFPRR09", "date_of_birth": "1990-09-03", "date_of_issue": "2025-04-15", "date_of_expiry": "2035-04-15", "place_of_birth": "CIUDAD DE MÉXICO", "issuing_authority": "OF. PASAPORTES CDMX", "global_result": "Ok", "security_level": "Medium", "total_checks": 29, "success_checks": 29, "warning_checks": 0, "failed_checks": 0, "face_matching_confidence": 99.97, "liveness_passed": true, "created_at": "2026-10-03T08:30:58.000000Z", "updated_at": "2026-10-03T08:30:58.000000Z" } }, "files": { "data": [ { "object": "VerificationFiles", "id": "a1d41e60-888b-4168-8951-bc915828c877", "file_type": "PASSPORT_FRONT", "mime_type": "image/png", "size": 331008, "url": "https://storage.googleapis.com/...&X-Goog-Signature=...", "created_at": "2026-10-03T08:30:59.000000Z", "updated_at": "2026-10-03T08:30:59.000000Z", "binary": "iVBORw0KGgoAAAANSUhEUgAA..." } ] } }, "meta": { "include": ["ine", "renapo", "passport", "files"], "custom": [] }}{ "data": { "object": "VerificationSession", "id": "b3f1c2d4-1a2b-4c3d-8e9f-0a1b2c3d4e5f", "status": "FAILED", "result": 0, "errors": [ { "Key": "DOC-PASSPORT-001", "Name": "Verificación del pasaporte", "Category": "PassportValidation", "Result": false, "Output": "FailedChecks", "Message": "El pasaporte no pasó las verificaciones del documento o biométricas" } ], "comments": null, "validations": [], "optionals": { "folio": "CLI-1002" }, "form_url": "https://app.verificamex.com/verification/b3f1c2d4-1a2b-4c3d-8e9f-0a1b2c3d4e5f", "created_at": "2026-10-03T09:00:00.000000Z", "updated_at": "2026-10-03T09:04:10.000000Z", "passport": { "data": { "object": "PassportReading", "verified": false, "document_type": "Passport", "document_number": "G00000002", "global_result": "FailedChecks", "total_checks": 29, "success_checks": 27, "warning_checks": 0, "failed_checks": 2, "face_matching_confidence": 41.3, "liveness_passed": true } } }, "meta": { "include": ["ine", "renapo", "passport", "files"], "custom": [] }}Ejemplo resumido: el objeto passport trae todos los campos descritos arriba y files las evidencias
del intento, igual que en una sesión aprobada.
{ "message": "Unauthorized" }