🇩🇪AlemaniaMRZ VerifiedAnverso y reversoVista previa

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.

API OCR de DNI alemán
Empieza en segundos
Regístrate para obtener tu clave API y empieza a procesar tus documentos
Precisión de vanguardia
Utilizamos los modelos de IA más avanzados para garantizar la máxima precisión y velocidad
Conforme al RGPD
Alojado en la UE, conforme al RGPD y con cero retención de datos por defecto
Paga solo por lo que proceses
Sin permanencia ni cuotas mínimas. Descuentos por volumen aplicados automáticamente.

+100k peticiones con 4,2s de latencia media en 2026

Indemnizame
Sagardobus
Swipoo
Acciona

Pruébalo ahora

Descubre el poder de nuestro OCR. Sube un documento y mira los resultados al instante.

Anverso y Reverso Recomendados

Permite extraer datos de ambas caras. Por favor, sube el anverso y reverso para mayor precisión.

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.

Respuesta JSON
{
"success":
true,
"data":{
"document_type":
"PERSONALAUSWEIS",
"document_number":
"L01X00T47",
"document_number_verified":
true,
"can":
"123456",
"issuing_authority":
"Stadt Köln",
"issuing_date":
"2021-08-02",
"expiry_date":
"2031-08-01",
"expiry_date_verified":
true,
"surname":
"MÜLLER-LÜDENSCHEIDT",
"surname_ascii":
"MUELLER-LUEDENSCHEIDT",
"surname_verified":
true,
"given_names":
"ERIKA ANNA",
"given_names_ascii":
"ERIKA ANNA",
"given_names_verified":
true,
"birth_name":
"SCHMIDT",
"birth_name_ascii":
"SCHMIDT",
"doctoral_degree":
"DR.",
"religious_artistic_name":
null,
"date_of_birth":
"1983-08-12",
"date_of_birth_verified":
true,
"place_of_birth":
"KÖLN",
"gender":
"F",
"gender_verified":
true,
"height_cm":
178,
"eye_colour":
"GRUEN",
"eye_colour_raw":
"GRÜN",
"raw_address":
"Heidestraße 17 51147 Köln",
"address_street":
"Heidestraße",
"address_street_ascii":
"Heidestrasse",
"address_house_number":
"17",
"address_zip_code":
"51147",
"address_city":
"Köln",
"address_city_ascii":
"Koeln",
"address_state":
null,
"address_country":
"DEU",
"has_german_residence":
true,
"mrz_detected":
true,
"mrz_valid":
true
},
"balance":
14.5,
"cost":
0.045
}

¿No encaja exactamente? Adaptamos campos y respuestas a tus necesidades: añadir campos, dividirlos, reestructurarlos y más. Cuéntanos qué necesitas

document_typeenum

Tipo de documento alemán: PERSONALAUSWEIS (tarjeta estándar con chip y MRZ), VORLAEUFIGER_PERSONALAUSWEIS (sin chip ni MRZ) u OTHER

PERSONALAUSWEISVORLAEUFIGER_PERSONALAUSWEISOTHER
document_numberstring | null

Número de documento en el anverso: 9 caracteres, una letra de autoridad y 8 alfanuméricos (p. ej. L01X00T47)

document_number_verifiedboolean

True si el dígito de control MRZ del número es válido y coincide con el anverso

canstring | null

Número de acceso (CAN): seis dígitos en el anverso, no incluido en la MRZ

issuing_authoritystring | null

Autoridad emisora en el reverso (p. ej. Stadt Köln)

issuing_datestring | null

Fecha de expedición, AAAA-MM-DD. No está en la MRZ, así que nunca se verifica por MRZ

expiry_datestring | null

Fecha de caducidad (Gültig bis), AAAA-MM-DD

expiry_date_verifiedboolean

True si el dígito de control MRZ de la caducidad es válido y coincide con la tarjeta

surnamestring | null

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

surname_asciistring | null

Apellido en la transliteración ASCII de la MRZ (Ä→AE, Ö→OE, Ü→UE, ß→SS)

surname_verifiedboolean

True si el apellido, tras transliterar, coincide con la MRZ

given_namesstring | null

Todos los nombres de pila como están impresos, separados por un espacio

given_names_asciistring | null

Nombres de pila en la transliteración ASCII de la MRZ

given_names_verifiedboolean

True si los nombres de pila, tras transliterar, coinciden con la MRZ

birth_namestring | null

Apellido de nacimiento, solo si difiere del actual. Nunca se fusiona en surname

birth_name_asciistring | null

Apellido de nacimiento en la transliteración ASCII de la MRZ

doctoral_degreestring | null

Grado doctoral (p. ej. DR., DR. MED., PROF. DR.). Nunca forma parte del nombre

religious_artistic_namestring | null

Nombre religioso o artístico, si aparece en el reverso

date_of_birthstring | null

Fecha de nacimiento, AAAA-MM-DD

date_of_birth_verifiedboolean

True si el dígito de control MRZ del nacimiento es válido y coincide con la tarjeta

place_of_birthstring | null

Lugar de nacimiento como está impreso, con umlauts

genderenum

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

MFX
gender_verifiedboolean

Solo true si el sexo de la MRZ se pudo leer y coincide con el impreso

height_cmnumber | null

Estatura en centímetros enteros (p. ej. 178). Los metros de tarjetas antiguas se convierten

eye_colourenum

Color de ojos normalizado: BLAU, BRAUN, GRAU, GRUEN, BLAU-GRAU, GRAU-BRAUN, GRAU-GRUEN, GRUEN-BRAUN, SCHWARZ u OTHER

BLAUBRAUNGRAUGRUENBLAU-GRAUGRAU-BRAUNGRAU-GRUENGRUEN-BRAUNSCHWARZOTHER
eye_colour_rawstring | null

Color de ojos exactamente como está impreso, con umlauts (p. ej. GRÜN)

raw_addressstring | null

Dirección completa como en el reverso, con saltos de línea sustituidos por espacios

address_streetstring | null

Nombre de la calle sin número (p. ej. Heidestraße)

address_street_asciistring | null

Nombre de la calle en ASCII (p. ej. Heidestrasse)

address_house_numberstring | null

Número de portal como texto, con sufijos o rangos (p. ej. 17, 12a, 23-27)

address_zip_codestring | null

Código postal, siempre cinco dígitos

address_citystring | null

Localidad del domicilio empadronado

address_city_asciistring | null

Localidad en ASCII (p. ej. Koeln)

address_statestring | null

Estado federado (Bundesland). Suele ser null: el Personalausweis no lo imprime y nunca se infiere del código postal

address_countrystring | null

País de la dirección como código ISO 3166-1 alpha-3 (DEU), o null

has_german_residenceboolean | 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)

mrz_detectedboolean

Si se encontró una MRZ. El Personalausweis provisional no tiene

mrz_validboolean

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.

Terminal - Archivo Local
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"
Claude CodeCursorChatGPT

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.

Pago por uso

Basado en el uso

Pago por uso transparente. Sin compromisos ni mínimos mensuales.

0 – 1,000 documentos/mes
Nivel inicial
€0.045
/documento
1,000+ documentos/mes22% de descuento
Descuento automático
€0.035
/documento
  • 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
Empieza ahora

Enterprise

A medida

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
Contactar con el equipo

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.

Visitar Centro de Confianza
Alojado en la UE
Cifrado
Sin Almacenamiento
RGPD

¿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.