Analizador de MRZ y calculadora de dígitos de control

Pega la zona de lectura mecánica (MRZ) de un pasaporte, documento de identidad o visa: TD3, TD2 o TD1. Se detecta el formato, se lee cada campo y cada dígito de control de ICAO 9303 se recalcula y se compara con el impreso. Todo se ejecuta en tu navegador; nada sale de la página.

Qué es una zona de lectura mecánica

Una zona de lectura mecánica (MRZ) es el bloque de líneas de ancho fijo al pie de un pasaporte o documento de identidad, normalizado por el Doc 9303 de ICAO. Codifica en posiciones fijas número de documento, Estado emisor, nombre, nacionalidad, fecha de nacimiento, sexo y caducidad, con dígitos de control que verifican la lectura.

Dónde está cada campo en TD1, TD2 y TD3

Las posiciones se cuentan desde 1 en cada línea, como las numera ICAO 9303. Cada dígito de control va justo después del campo que protege; el dígito compuesto es el último carácter de su línea.

Posiciones de los campos y de los dígitos de control en los tres formatos de MRZ
CampoTD3 (pasaporte)TD2TD1 (documento de identidad)
Código de documentolínea 1, 1–2línea 1, 1–2línea 1, 1–2
Estado emisorlínea 1, 3–5línea 1, 3–5línea 1, 3–5
Nombrelínea 1, 6–44línea 1, 6–36línea 3, 1–30
Número de documentolínea 2, 1–9línea 2, 1–9línea 1, 6–14
su dígito de controllínea 2, 10línea 2, 10línea 1, 15
Nacionalidadlínea 2, 11–13línea 2, 11–13línea 2, 16–18
Fecha de nacimientolínea 2, 14–19línea 2, 14–19línea 2, 1–6
su dígito de controllínea 2, 20línea 2, 20línea 2, 7
Sexolínea 2, 21línea 2, 21línea 2, 8
Fecha de caducidadlínea 2, 22–27línea 2, 22–27línea 2, 9–14
su dígito de controllínea 2, 28línea 2, 28línea 2, 15
Número personallínea 2, 29–42
su dígito de controllínea 2, 43
Dígito de control compuestolínea 2, 44línea 2, 36línea 2, 30

Cómo se calcula un dígito de control

  1. Toma el campo que protege el dígito: el número de documento, la fecha de nacimiento, la fecha de caducidad, el número personal o todo el rango del dígito compuesto.
  2. Da a cada carácter su valor: un dígito vale lo que indica, una letra vale su posición en el alfabeto más nueve (A = 10, Z = 35) y el relleno < vale cero.
  3. Multiplica cada valor por el peso de su posición. Los pesos se repiten 7, 3, 1 a lo largo del campo, empezando por 7 en el primer carácter.
  4. Suma todos los productos.
  5. El dígito de control es esa suma módulo 10: la última cifra del total.

Así queda el cálculo con el número de pasaporte del espécimen, AM7304518, un documento inventado que no pertenece a nadie:

La ponderación 7-3-1 aplicada carácter a carácter sobre el número de documento de un espécimen
CarácterValorPesoProducto
A10770
M22366
7717
33721
0030
4414
55735
1133
8818
Suma y después módulo 10214 → 4

Así que el dígito que se imprime después de AM7304518 en esa zona es 4. Carga el ejemplo TD3 de arriba y el analizador recalcula el mismo número delante de ti.

El dígito compuesto

Un dígito más cubre casi toda la zona a la vez: el compuesto. Se calcula de la misma manera, sobre un rango que omite los campos que ningún dígito protege, y en TD1 ese rango abarca dos líneas, que es donde suele fallar un analizador escrito a mano. Una zona cuyos dígitos de campo pasan todos pero cuyo compuesto falla se ha transcrito bien por partes y se ha ensamblado mal.

Lo que los dígitos no cubren

Ningún dígito de control cubre el nombre, y ninguno cubre el Estado emisor. Un error de lectura en cualquiera de los dos pasa desapercibido: la aritmética sigue cuadrando. Por eso leer también la cara impresa del documento y comparar las dos lecturas detecta lo que los dígitos no pueden.

Preguntas frecuentes

¿Qué es una MRZ?

Una zona de lectura mecánica (MRZ) es el bloque de líneas de ancho fijo al pie de un pasaporte o documento de identidad, normalizado por el Doc 9303 de ICAO. Codifica en posiciones fijas número de documento, Estado emisor, nombre, nacionalidad, fecha de nacimiento, sexo y caducidad, con dígitos de control que verifican la lectura.

¿Qué formatos admite esta herramienta?

Los tres formatos de ICAO 9303: TD3, las dos líneas de 44 de un pasaporte; TD2, dos líneas de 36; y TD1, las tres líneas de 30 de un documento de identidad o un permiso de residencia. También lee los dos formatos de visa, MRV-A y MRV-B, que no tienen dígito compuesto. El formato se detecta por el número de líneas y su longitud, y se recalcula cada dígito de control que tiene el formato.

¿Por qué falla un dígito de control?

Casi siempre porque un carácter del campo que protege se leyó o se escribió mal: una O por un 0, una B por un 8, un relleno perdido al final de una línea. La tabla muestra el dígito que imprime la zona junto al que resulta de los datos, y el campo que cubre el dígito. Cuando un dígito de campo pasa y el compuesto falla, revisa los caracteres entre los campos: el compuesto también cubre los propios dígitos de campo.

¿Puede leer la zona a partir de una foto?

No. Esta página lee el texto que pegas, y nada sale de tu navegador. Leer la zona y la página impresa a partir de una foto es lo que hace la API de reconocimiento: una llamada HTTP con la imagen, y los campos vuelven como JSON con los mismos dígitos de control ya verificados.

¿Guardan alguno de mis datos?

No. La zona que pegas la analiza código que se ejecuta en tu propio navegador: no se sube nada y no se hace ninguna solicitud que la contenga. Esta página es un archivo estático, y la única solicitud que hace después de cargarse es para preguntar si hay un aviso del servicio que mostrar arriba, una llamada que no lleva nada de lo que escribiste. La API de reconocimiento es algo aparte, a lo que tienes que llamar a propósito.

Adónde ir después

  • Generador de MRZ – crea una zona válida con dígitos de control correctos para tus datos de prueba.
  • TD1, TD2 y TD3 – los tres formatos, cuántas líneas y caracteres tiene cada uno y dónde los define el estándar.
  • Leer un documento completo – la cara impresa además de la codificada, en una sola solicitud y sin cuenta.
  • OCR de pasaportes por país – los Estados emisores que lee esta API, cada uno con su propia zona de espécimen.