Volver al blog

Cómo Extraer Datos de un Pasaporte Automáticamente (OCR + MRZ)

Guía completa para extraer datos de pasaportes de cualquier país con OCR: qué es la zona MRZ, cómo funcionan los dígitos verificadores ICAO 9303 y cómo integrarlo por API.

Extraer Datos de Pasaporte
extraer datos de pasaporteOCR pasaporteMRZICAO 9303API pasaporte

Si tu empresa recibe pasaportes — para verificación de identidad, KYC, check-in de huéspedes, contratación de extranjeros o trámites migratorios — capturar los datos a mano es lento y propenso a errores. Un solo dígito mal transcrito en el número de pasaporte puede invalidar todo un expediente.

La buena noticia: el pasaporte es, de todos los documentos de identidad, el más fácil de leer automáticamente con precisión verificable. La razón es la zona MRZ.

¿Qué es la zona MRZ?

La MRZ (Machine Readable Zone, zona de lectura mecánica) son las dos líneas de 44 caracteres impresas al pie de la página principal de cualquier pasaporte:

P<MEXGOMEZ<VELAZQUEZ<<MARGARITA<<<<<<<<<<<<<
G123456786MEX8007050F3307054<<<<<<<<<<<<<<08

Su formato lo define el estándar internacional ICAO 9303 y es idéntico en todos los países: México, Estados Unidos, España, Argentina, China… La primera línea contiene el tipo de documento, el país emisor y los nombres; la segunda, el número de pasaporte, la nacionalidad, la fecha de nacimiento, el sexo, la fecha de vencimiento y el número personal (en los pasaportes mexicanos, la CURP).

Los dígitos verificadores: lectura con prueba matemática

Lo que hace especial a la MRZ es que se auto-verifica. La segunda línea incluye cuatro dígitos de control calculados con un algoritmo público (pesos 7-3-1 sobre el valor de cada carácter):

  1. Dígito del número de pasaporte
  2. Dígito de la fecha de nacimiento
  3. Dígito de la fecha de vencimiento
  4. Dígito compuesto sobre todos los anteriores

Si el OCR confunde un 0 con una O o un 5 con una S, los dígitos dejan de cuadrar y el error se detecta antes de entregarte los datos. Ningún otro campo de un documento de identidad ofrece esa garantía: en una credencial INE, por ejemplo, una CURP mal leída solo se detecta contra el registro oficial.

Nuestra API valida los cuatro dígitos en cada extracción. Si la imagen no permite una lectura que pase la validación, el token se reembolsa automáticamente en lugar de entregarte datos dudosos.

Qué datos se extraen

De la página principal del pasaporte la API devuelve, en JSON:

  • passportNumber — número de pasaporte
  • surname y givenNames — apellidos y nombres
  • nationality y issuingCountry — nacionalidad y país emisor
  • dateOfBirth, dateOfIssue, dateOfExpiry — fechas en formato DD/MM/YYYY
  • sex, placeOfBirth, issuingAuthority
  • personalNumber — la CURP en pasaportes mexicanos
  • mrzLine1 y mrzLine2 — la zona MRZ completa, validada

Cómo integrarlo en tu aplicación

La integración es una sola petición HTTP con la imagen de la página principal:

curl -X POST https://extraerdatosdepasaporte.com/api/v1/extract \
  -H "X-API-Key: pas_tu_api_key" \
  -F "image_front=@./pasaporte.jpg"

La respuesta llega en uno o dos segundos con todos los campos estructurados. Soportamos imágenes JPEG, PNG y WebP de hasta 10MB, enviadas como archivo (multipart), base64, URL o binario directo.

Consejos para la mejor precisión

  1. Fotografía la página completa, incluidas las dos líneas MRZ al pie. Sin MRZ no hay validación.
  2. Evita reflejos sobre la laminación — es la causa #1 de caracteres ilegibles. Inclina ligeramente el documento o apaga el flash.
  3. Resolución mínima recomendada: 1200 píxeles de ancho. Los caracteres MRZ son pequeños.
  4. Encuadra recto: la MRZ se lee mejor sin rotación pronunciada.

Empieza gratis

Al crear una cuenta recibes 20 extracciones gratis para probar el servicio con tus propios documentos, sin tarjeta. La documentación de la API incluye ejemplos en JavaScript, Python y PHP.

¿Necesitas extraer datos de pasaportes automáticamente?

Prueba nuestra API con 20 extracciones gratis. Integración en minutos, resultados en segundos.

Comenzar gratis