Ir al contenido

Crear sesión de verificación con pasaporte

Ver como Markdown Lee esta página como texto plano Abrir en ChatGPT Haz preguntas sobre esta página Abrir en Claude Haz preguntas sobre esta página Abrir en Perplexity Haz preguntas sobre esta página

El endpoint te permite crear una sesión de verificación de identidad que solo acepta pasaporte. Funciona igual que una sesión de verificación V2 de INE: recibes una URL a la que envías a tu usuario y, cuando termina, obtienes el resultado por webhook o consultando la sesión.

El usuario captura la página de datos de su pasaporte, se toma una selfie y realiza una prueba de vida. Con eso 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.
  • La prueba de vida, para asegurar que hay una persona real frente a la cámara.
  1. Creas la sesión con este endpoint y recibes el campo form_url.
  2. Envías a tu usuario a form_url (redirección, enlace o código QR).
  3. El usuario captura su pasaporte, se toma la selfie y completa la prueba de vida.
  4. Al terminar, el usuario es enviado a tu redirect_url y la sesión pasa a VERIFYING mientras se analiza.
  5. La sesión termina en FINISHED con result 100 si el pasaporte y la biometría se verificaron, o en FAILED con result 0 y el motivo en errors. Recibes el resultado en tu webhook o lo consultas en Consultar resultado de una sesión de pasaporte.

Método: POST

https://api.verificamex.com/identity/v2/identity/passport-sessions

Para realizar la solicitud es necesario incluir los siguientes encabezados:

EncabezadoValorDescripción
Acceptapplication/jsonTipo de contenido de la respuesta.
Content-Typeapplication/jsonTipo de contenido de la solicitud.
AuthorizationBearer {tu_token}Token generado para autenticar al usuario.

El cuerpo de la solicitud debe contener los siguientes parámetros:

ParámetroTipoDescripción
redirect_urlStringURL a la que se redirigirá el usuario una vez finalizada la verificación.
webhookString OpcionalURL a la que se enviará una petición POST con el resultado de la validación. Ver Webhooks de sesiones de pasaporte.
document_numberString OpcionalNúmero de pasaporte que esperas que capture el usuario (máximo 20 caracteres). Se compara contra el número leído del documento.
only_mobile_devicesBoolean OpcionalIndica si la verificación solo se puede realizar en dispositivos móviles. Por defecto false.
with_webhook_binariesBoolean OpcionalIndica si el webhook debe incluir los archivos de la verificación en Base64. Por defecto true.
optionalsObject OpcionalObjeto para guardar información relevante para ti que no es necesaria para la validación (por ejemplo, tu folio interno). Se te devuelve tal cual en la sesión y en el webhook.
logoString OpcionalURL del logo que se mostrará en la pantalla de verificación.
customizationObject OpcionalObjeto para personalizar los colores de la interfaz.
customization.button_colorString OpcionalColor de los botones en formato hexadecimal.
customization.background_colorString OpcionalColor de fondo en formato hexadecimal.
customization.primary_colorString OpcionalColor primario en formato hexadecimal.
customization.secondary_colorString OpcionalColor secundario en formato hexadecimal.
customization.button_text_colorString OpcionalColor del texto de los botones en formato hexadecimal.
{
"redirect_url": "https://www.tusitio.com/gracias",
"webhook": "https://www.tusitio.com/webhooks/verificamex",
"document_number": "G00000001",
"only_mobile_devices": false,
"with_webhook_binaries": true,
"optionals": {
"folio": "CLI-1001"
},
"logo": "https://www.tusitio.com/logo.png",
"customization": {
"button_color": "#F54927",
"background_color": "#FFFFFF",
"primary_color": "#27F55B",
"secondary_color": "#82167E",
"button_text_color": "#FFFFFF"
}
}
{
"data": {
"object": "VerificationSession",
"id": "9d805854-f8a1-4135-ad57-3629ca0fc679",
"status": "OPEN",
"result": null,
"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": null,
"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:27:14.000000Z",
"readable_created_at": "hace 5 segundos",
"readable_updated_at": "hace 4 segundos"
},
"meta": {
"include": [
"ine",
"renapo",
"passport",
"files"
],
"custom": []
}
}

El cuerpo de la respuesta contiene los siguientes parámetros:

ParámetroTipoDescripción
dataObjectObjeto que contiene la información de la sesión de verificación.
data.objectStringTipo de objeto, siempre "VerificationSession".
data.idStringIdentificador único de la sesión. Guárdalo para consultar el resultado.
data.statusStringEstado de la sesión. Al crearla siempre es "OPEN".
data.resultIntegerResultado de la verificación: 100 aprobada, 0 rechazada, null mientras no termina.
data.errorsArrayMotivos de rechazo. null al crear la sesión.
data.commentsStringComentarios internos del proceso. null al crear la sesión.
data.only_mobile_devicesBooleanIndica si la sesión solo se puede realizar en dispositivos móviles.
data.redirect_urlStringURL a la que se redirigirá al usuario al terminar.
data.webhookStringURL a la que se enviarán los cambios de estado de la sesión.
data.validationsArraySiempre vacío en sesiones de pasaporte.
data.ine_readingObjectLectura completa del pasaporte. null hasta que se analiza el documento.
data.optionalsObjectDatos opcionales que enviaste al crear la sesión.
data.form_urlStringURL de la pantalla de verificación a la que debes enviar a tu usuario.
data.created_atStringFecha de creación en formato ISO-8601.
data.updated_atStringFecha de la última actualización en formato ISO-8601.
data.readable_created_atStringFecha de creación en formato legible.
data.readable_updated_atStringFecha de la última actualización en formato legible.
metaObjectInformación adicional de la respuesta.
meta.includeString[]Relaciones que se pueden solicitar con el parámetro include. En sesiones de pasaporte la que te interesa es passport.
meta.customString[]Relaciones extra solicitadas.