API de OCR de pasaportes de México

Envía una foto de un pasaporte de México y recibe los datos estructurados en la misma respuesta HTTP: la zona de lectura mecánica (MRZ) analizada, los dígitos de control ICAO 9303 verificados y los campos visuales extraídos. Sin SDK que instalar ni cola que consultar.

Cómo se reconoce un pasaporte de México

Un pasaporte de México sigue la norma ICAO 9303: una zona de lectura mecánica de dos líneas de 44 caracteres (formato TD3) impresa al pie de la página de datos, debajo de la zona de inspección visual que lee una persona. Sus cinco primeros caracteres son P<MEX: el código del documento y, después, el Estado emisor con el código ISO 3166-1 alfa-3 MEX. La API lee las dos zonas, contrasta los dígitos de control de la MRZ y devuelve una única forma de respuesta con todas las claves presentes.

México es MX en una lista alfa-2 y MEX en la zona, y ningún añadido lleva de uno a otro: MX ni siquiera es prefijo de MEX. Un sistema que guarda el código de dos letras necesita la tabla ISO 3166-1 para llegar al de tres letras que imprime de verdad la zona de lectura mecánica.

Zonas de lectura mecánica emitidas por México

La norma 9303 define tres diseños de zona, y la API lee los tres. Abajo aparece una titular inventada (no es nadie, y paradeigma es la palabra griega para ejemplo) en cada diseño, con MEX como Estado emisor. Cada dígito de control se calcula a partir de los caracteres que lo acompañan en lugar de escribirse a mano, así que todas las zonas de esta página validan.

TD3 – Pasaporte de México

2 líneas de 44. Nacionalidad MEX. El Estado emisor y la nacionalidad son ambos MEX: un pasaporte certifica la nacionalidad del Estado que lo emite.

P<MEXPARADEIGMA<<ELENI<SOFIA<<<<<<<<<<<<<<<<
AM73045184MEX9403084F3203101PN48291630<<<<72

TD2 – Documento de viaje emitido por México

2 líneas de 36. Nacionalidad GRC. Emitido por MEX a una persona de nacionalidad GRC, así que los dos códigos difieren. Aquí el nombre tiene 31 caracteres en lugar de los 39 del pasaporte.

I<MEXPARADEIGMA<<ELENI<SOFIA<<<<<<<<
TR61850420GRC9403084F2911043<<<<<<<2

TD1 – Documento de identidad o permiso de residencia emitido por México

3 líneas de 30. Nacionalidad GRC. Tres líneas de 30, con el nombre en una línea propia. El código del documento es ID: la parte 5 de la 9303 fija el primer carácter como A, C o I y deja el segundo al Estado emisor.

IDMEXAK472913<4PN48291630<<<<<
9403084F3405204GRC<<<<<<<<<<<9
PARADEIGMA<<ELENI<SOFIA<<<<<<<

Ningún dígito de control cubre al Estado emisor: en los tres diseños la aritmética recorre el número del documento, las fechas y los datos opcionales, nunca los tres caracteres que dicen quién lo emitió. Una zona cuyos dígitos pasan todos no ha demostrado que venga de México: eso lo hacen la zona visual y las medidas de seguridad del propio documento.

Los campos que recibes

Cada pasaporte de México reconocido devuelve los mismos campos estructurados. Un valor que no se pudo leer es null, nunca una clave ausente.

  • Apellidos y nombre
  • Fecha de nacimiento y sexo
  • Número de documento y número personal
  • Nacionalidad y Estado emisor (MEX)
  • Fechas de expedición y de caducidad, días restantes
  • El veredicto de la MRZ y las líneas de las que se leyó

Haz la llamada

Ejecuta esto contra el sandbox público: sin registro, con reconocimiento real, gratis para un número limitado de documentos y 10 solicitudes por hora por IP. Cambia la clave del sandbox por tu propia clave de producción para seguir reconociendo pasaportes de México.

curl -X POST https://api.doc.cheap/v1/scans \
  -H "Authorization: Bearer sk_sandbox_public" \
  -H "Content-Type: application/json" \
  -d "{\"image\": \"$(base64 < document.jpg | tr -d '\n')\"}"

Dónde está documentado

Esta página cubre lo que es propio de México. Las cuatro páginas de abajo (en inglés) recogen todo lo demás.

  • Reconocer un pasaporte

    La llamada de arriba con un documento real, en curl, JavaScript y Python, y cada clave de la respuesta explicada.

  • La MRZ y la zona visual

    Por qué un documento imprime los mismos datos dos veces, a qué zona creer cuando no coinciden y qué pueden y qué no pueden demostrar los dígitos de control.

  • Idiomas y escrituras de los campos

    La zona es una transliteración latina; la zona visual no. Qué lectura conserva la escritura original y cómo se resuelve un identificador de idioma.

  • Errores

    Cada código de error con el que puede responder la API, en una tabla: qué lo causa, si un reintento puede funcionar y si la llamada se cobró.

Empieza a reconocer pasaportes de México

Primera llamada correcta en menos de 60 segundos, 1¢ por documento, y la imagen del documento nunca se guarda.

Solo pagas los documentos que realmente reconocemos.

Foto borrosa, ningún documento en el encuadre, tipo desconocido: gratis. Nunca pagas un escaneo fallido.