API OCR de DNI alemán
Extrae nombre, número de documento, campos de identidad verificados por MRZ y la dirección empadronada del anverso y reverso del Personalausweis alemán. Conserva umlauts y ß tal cual, con variantes ASCII para banca y fiscalidad.


Pruébalo ahora
Descubre el poder de nuestro OCR. Sube un documento y mira los resultados al instante.
Arrastra tu documento o haz clic para subirlo
Soporta PDF, PNG, JPG (máx. 10MB)
Al subir un documento aceptas nuestros términos. Aplicamos cero retención de datos.
¿No encaja exactamente? Adaptamos campos y respuestas a tus necesidades: añadir campos, dividirlos, reestructurarlos y más. Cuéntanos qué necesitas
Tipo de documento alemán: PERSONALAUSWEIS (tarjeta estándar con chip y MRZ), VORLAEUFIGER_PERSONALAUSWEIS (sin chip ni MRZ) u OTHER
Número de documento en el anverso: 9 caracteres, una letra de autoridad y 8 alfanuméricos (p. ej. L01X00T47)
True si el dígito de control MRZ del número es válido y coincide con el anverso
Número de acceso (CAN): seis dígitos en el anverso, no incluido en la MRZ
Autoridad emisora en el reverso (p. ej. Stadt Köln)
Fecha de expedición, AAAA-MM-DD. No está en la MRZ, así que nunca se verifica por MRZ
Fecha de caducidad (Gültig bis), AAAA-MM-DD
True si el dígito de control MRZ de la caducidad es válido y coincide con la tarjeta
Apellido como está impreso, con umlauts y ß. Los DNI alemanes tienen un único apellido: partículas nobiliarias («von der Leyen») y compuestos («Müller-Lüdenscheidt») no se dividen
Apellido en la transliteración ASCII de la MRZ (Ä→AE, Ö→OE, Ü→UE, ß→SS)
True si el apellido, tras transliterar, coincide con la MRZ
Todos los nombres de pila como están impresos, separados por un espacio
Nombres de pila en la transliteración ASCII de la MRZ
True si los nombres de pila, tras transliterar, coinciden con la MRZ
Apellido de nacimiento, solo si difiere del actual. Nunca se fusiona en surname
Apellido de nacimiento en la transliteración ASCII de la MRZ
Grado doctoral (p. ej. DR., DR. MED., PROF. DR.). Nunca forma parte del nombre
Nombre religioso o artístico, si aparece en el reverso
Fecha de nacimiento, AAAA-MM-DD
True si el dígito de control MRZ del nacimiento es válido y coincide con la tarjeta
Lugar de nacimiento como está impreso, con umlauts
Sexo como código ICAO: M (masculino), F (femenino), X (diverso). La «W» de tarjetas antiguas se normaliza a F y la «D» a X
Solo true si el sexo de la MRZ se pudo leer y coincide con el impreso
Estatura en centímetros enteros (p. ej. 178). Los metros de tarjetas antiguas se convierten
Color de ojos normalizado: BLAU, BRAUN, GRAU, GRUEN, BLAU-GRAU, GRAU-BRAUN, GRAU-GRUEN, GRUEN-BRAUN, SCHWARZ u OTHER
Color de ojos exactamente como está impreso, con umlauts (p. ej. GRÜN)
Dirección completa como en el reverso, con saltos de línea sustituidos por espacios
Nombre de la calle sin número (p. ej. Heidestraße)
Nombre de la calle en ASCII (p. ej. Heidestrasse)
Número de portal como texto, con sufijos o rangos (p. ej. 17, 12a, 23-27)
Código postal, siempre cinco dígitos
Localidad del domicilio empadronado
Localidad en ASCII (p. ej. Koeln)
Estado federado (Bundesland). Suele ser null: el Personalausweis no lo imprime y nunca se infiere del código postal
País de la dirección como código ISO 3166-1 alpha-3 (DEU), o null
True si hay una dirección alemana impresa. False solo si la tarjeta indica «KEINE HAUPTWOHNUNG IN DEUTSCHLAND»; entonces todos los campos de dirección son null. Null si no se capturó ninguna dirección (p. ej. solo el anverso)
Si se encontró una MRZ. El Personalausweis provisional no tiene
Si todos los dígitos de control ICAO 9303 de la MRZ son válidos, incluido el compuesto
Preguntas frecuentes
Respuestas rápidas a las preguntas frecuentes sobre nuestra API OCR de DNI alemán.
¿Cómo obtener la máxima precisión?
Usa imágenes de alta resolución con buena iluminación y envía siempre anverso y reverso en la misma solicitud. El anverso incluye nombre, número y caducidad; el reverso, domicilio, autoridad, estatura, color de ojos y la MRZ.
¿Se conservan umlauts y ß?
Sí. Nombre, dirección y lugar de nacimiento conservan exactamente los caracteres impresos, incluidos Ä, Ö, Ü y ß. Como la MRZ solo puede codificar ASCII, devolvemos también campos *_ascii con la transliteración oficial (Ä→AE, Ö→OE, Ü→UE, ß→SS), la que esperan SEPA, ELSTER y DATEV.
¿Cómo se tratan los apellidos?
Las tarjetas alemanas tienen un único apellido, que nunca se divide. Partículas como «von der Leyen» y apellidos compuestos como «Müller-Lüdenscheidt» se devuelven como un valor. El apellido de nacimiento y el grado doctoral van en campos propios y nunca se mezclan con el nombre.
¿Qué devuelve gender y cómo se trata la «W»?
El sexo se devuelve siempre como código ICAO M, F o X. Las tarjetas actuales imprimen M/F, las antiguas M/W (W = weiblich, femenino) y desde 2018 puede aparecer D (divers). Todas se normalizan: W pasa a F y D a X. gender_verified es true solo si MRZ e impresión coinciden.
¿Por qué address_state suele ser null?
El Personalausweis no imprime el Bundesland: la dirección es solo calle, número, código postal y localidad. No inferimos el estado del código postal, así que address_state es null en casi todas las tarjetas. Usa address_zip_code si necesitas derivar una región.
¿Qué significan los campos _verified?
Se calculan en nuestro código, nunca por el modelo. Un campo está verificado cuando el dígito de control ICAO 9303 de la MRZ es matemáticamente válido y el valor MRZ coincide con el impreso. false significa que no pudimos confirmarlo, no que sea incorrecto. mrz_valid indica si todos los dígitos de control de la MRZ pasaron.
¿Admite tarjetas antiguas y el DNI provisional?
Sí. Admite la tarjeta con chip actual, la variante de 2021 y las laminadas anteriores a 2010. El documento provisional (Vorläufiger Personalausweis) se informa como document_type VORLAEUFIGER_PERSONALAUSWEIS; no tiene MRZ, así que mrz_detected es false y ningún campo puede verificarse por MRZ.
Integra nuestra API en segundos
Empieza a extraer datos de tus documentos en segundos con nuestra API OCR lista para usar.
curl -X POST "https://api.tiny-idp.com/api/extractors/run/de-national-id-card" \ -H "x-api-key: YOUR_API_KEY" \ -F "files=@/path/to/your/document.jpg"
const formData = new FormData();
const fileInput = document.querySelector('input[type="file"]');
formData.append('files', fileInput.files[0]);
const response = await fetch("https://api.tiny-idp.com/api/extractors/run/de-national-id-card", {
method: 'POST',
headers: {
'x-api-key': 'YOUR_API_KEY'
},
body: formData
});
const result = await response.json();
console.log(result);import requests
url = "https://api.tiny-idp.com/api/extractors/run/de-national-id-card"
headers = {"x-api-key": "YOUR_API_KEY"}
files = {"files": open("document.jpg", "rb")}
response = requests.post(url, headers=headers, files=files)
print(response.json())<?php
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://api.tiny-idp.com/api/extractors/run/de-national-id-card",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'x-api-key: YOUR_API_KEY',
'Accept: application/json'
],
CURLOPT_POSTFIELDS => [
'files' => new CURLFile('/path/to/your/document.jpg')
]
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Integra con tu agente de desarrollo
Copia las instrucciones para integrar Tiny IDP con Claude Code, Cursor, ChatGPT o Windsurf.
¿Listo para construir?
Obtén tu clave API gratuita y empieza a extraer datos de tus documentos en minutos. Sin necesidad de tarjeta de crédito.
Casos de uso comunes
Descubre cómo otras empresas usan nuestra API OCR para automatizar sus procesos.
KYC bancario y fintech en Alemania
Lee el número de documento, fecha de nacimiento y domicilio de ambas caras del Personalausweis para dar de alta clientes bajo las obligaciones de identificación (GwG) sin teclear en back-office.
RRHH y nóminas
Captura identidad verificada para el expediente de personal, con variantes ASCII del nombre listas para DATEV, ELSTER y ficheros SEPA que no aceptan umlauts.
Empadronamiento e inmobiliaria
Obtén la Anschrift estructurada (calle, número, CP y localidad) para contratos de alquiler, justificantes de domicilio y portales de inquilinos.
Telecomunicaciones, energía y seguros
Verifica identidad y domicilio para activar contratos de móvil, fibra o energía, con dígitos de control MRZ validados en cada petición y cero retención de datos.
Precios simples y transparentes
Sin cargos ocultos. Sin mínimos mensuales. Paga solo por lo que extraigas.
Basado en el uso
Pago por uso transparente. Sin compromisos ni mínimos mensuales.
- Extractores ilimitados
- Modelos listos para usar y personalizados
- Tecnología avanzada de OCR e IA
- Conforme al RGPD
- Infraestructura alojada en la UE
- Soporte estándar
Enterprise
Precios a medida para grandes volúmenes. Obtén garantías de SLA, despliegue local o dedicado y soporte exclusivo — contáctanos y prepararemos un plan adaptado a tu escala.
- Modelos de precios a medida
- Garantías de SLA
- Opciones de despliegue local
- Soporte para integraciones personalizadas
- Soporte dedicado 24/7
- Solicitudes de funciones prioritarias
Precios sin IVA. Los descuentos por volumen se aplican automáticamente.
Seguridad y cumplimiento empresarial
Nos tomamos muy en serio la privacidad. Tiny IDP está diseñado para cumplir con los estándares europeos más estrictos.
Cero retención de datos
No almacenamos tus documentos, imágenes ni respuestas. Los datos se procesan en memoria y se eliminan inmediatamente.
Conforme al RGPD
Cumplimiento total con el Reglamento General de Protección de Datos (RGPD) para tu tranquilidad.
Infraestructura en la UE
Todos los datos se procesan y alojan exclusivamente en centros de datos europeos seguros.
¿Necesitas extraer datos de un documento específico?
¡Ofrecemos extractores a medida! Define tu propio esquema JSON y reglas para extraer datos de cualquier tipo de documento.