ForHosting KIT · Utilidades de desarrollo

Verificación CPR Dinamarca

Escriba 0707610018 y verá que es un CPR danés válido de una mujer nacida el 7 de julio de 1961, con el control módulo 11 correcto. También admite la forma con guion, como 070761-0018. Útil en altas bancarias y nóminas. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Número
0707610018
Obtiene
Entrada
0707610018
Fecha de nacimiento
1961-07-07
Día
7
Mes
7

El número CPR danés (personnummer del Det Centrale Personregister) es el identificador civil nacional usado en fiscalidad, sanidad, banca, empleo y la mayoría de los formularios públicos de Dinamarca. En su forma habitual tiene diez dígitos: seis para la fecha de nacimiento como día-mes-año (DDMMYY) y cuatro de serie que codifican pistas de siglo, una secuencia y un dígito de control final. Los números clásicos aplican una suma ponderada de módulo once sobre los diez dígitos, de modo que un solo error de tecleo suele rechazarse antes de almacenar o emparejar el identificador. Esta capacidad valida solo esa estructura. Comprueba que la fecha embebida sea un día de calendario real según las reglas oficiales de siglo del séptimo dígito, indica si la suma clásica de módulo once divide de forma exacta y devuelve la fecha de nacimiento en ISO más el género inferido del último dígito (impar varón, par mujer). Se aceptan formas con guion como DDMMYY-XXXX tras la normalización.

Cómo se estructura y se comprueba un número CPR danés

Según la práctica danesa de registro civil, un personnummer CPR tiene diez dígitos escritos de forma compacta como DDMMYYXXXX o con un guion tras la fecha como DDMMYY-XXXX. Las posiciones uno y dos son el día de nacimiento, tres y cuatro el mes, y cinco y seis el año de dos dígitos.

El séptimo dígito participa en la resolución del siglo para reconstruir el año de nacimiento de cuatro cifras sin un campo de siglo aparte: los dígitos del cero al tres se mapean a mil novecientos más el año de dos dígitos; los dígitos cuatro y nueve se mapean a dos mil cuando el año es treinta y seis o menos y, en caso contrario, permanecen en mil novecientos; los dígitos del cinco al ocho se mapean a dos mil cuando el año es cincuenta y siete o menos y, en caso contrario, a mil ochocientos para las cohortes más antiguas.

Una vez conocido el año completo, la capacidad verifica que el día exista en ese mes, incluido el veintinueve de febrero solo en años bisiestos gregorianos, con aritmética pura y sin el reloj del host. La regla clásica de control multiplica los diez dígitos por los pesos fijos cuatro, tres, dos, siete, seis, cinco, cuatro, tres, dos y uno, y exige que la suma ponderada sea divisible por once. El último dígito también indica el género: impar para varón y par para mujer.

Un ejemplo conocido es cero siete cero siete seis uno cero cero uno ocho, nacido el siete de julio de mil novecientos sesenta y uno, mujer, con suma clásica correcta.

Dónde encajan las comprobaciones CPR danesas en flujos reales

Bancos y fintech validan valores CPR de diez dígitos al abrir la cuenta para que una sola transposición no cree un cliente fantasma ni un registro KYC rechazado. Los trabajos ETL que cargan ficheros maestros de clientes o empleados daneses recorren cada columna CPR en un feed CSV o XML, llaman a esta capacidad y ponen en cuarentena las filas donde valid es false, capturando tanto ediciones humanas como errores de uno en generadores.

Los sistemas municipales y escolares suelen aceptar formas con guion y compactas; eliminar espacios y guiones antes de la comprobación de dígitos mantiene el contrato simple sin inventar un segundo algoritmo.

No trate un CPR con control correcto como prueba de que el titular vive en el registro de población, tiene tarjeta sanitaria danesa o está autorizado para un servicio; solo demuestra que la fecha es válida en el calendario según las reglas de siglo y que el dígito clásico de módulo once es coherente con los pesos oficiales cuando esa regla aún aplica.

Validar un CPR danés tecleado en formularios de alta

Cuando un alta, un KYC bancario o un formulario de RR. HH. recoge un personnummer, llame a la comprobación y bloquee el envío si valid es false, mostrando aún la fecha de nacimiento ISO extraída para corregirla.

Auditar columnas CPR en datos maestros daneses

Valide por lotes cada CPR de un CSV de CRM, EHR o nómina y ponga en cuarentena las filas cuya fecha sea imposible o cuyo control clásico de módulo once ya no coincida.

¿Qué valida la comprobación CPR de Dinamarca?

Comprueba que un personnummer danés de diez dígitos incorpore una fecha de nacimiento de calendario real (con siglo desde el séptimo dígito) y que el control ponderado clásico mod-11 sobre los diez dígitos sea correcto.

¿Qué formato debe enviarse?

Envíe diez dígitos DDMMYYXXXX, opcionalmente con guion o espacios (por ejemplo 070761-0018). Tras eliminar espacios y guiones el cuerpo debe ser exactamente diez dígitos 0–9.

¿Cuánto cuesta la comprobación CPR de Dinamarca?

La herramienta del navegador es gratuita y se ejecuta en local.

¿Puede un CPR auténtico fallar el control módulo 11?

Sí. Los números emitidos tras la flexibilización de la regla en octubre de 2007 pueden ser reales aunque la suma módulo 11 falle. La herramienta informa de ese control por separado para que usted aplique una política estricta o acepte solo la fecha.

¿Cómo se obtiene el año completo de nacimiento?

Con el séptimo dígito y el año de dos cifras. Del 0 al 3 indican los años 1900; el 4 y el 9, los 2000 hasta el año 36 y, si no, los 1900; del 5 al 8, los 2000 hasta el 57 y, si no, los 1800.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/enc/cpr-denmark

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/enc/cpr-denmark \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"number":"0707610018"}'
{
  "number": "0707610018"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.cpr_denmark",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Longitud incorrecta, cuerpos no numéricos y fechas imposibles fallan con invalid_input en lugar de un recorte silencioso. La misma aritmética pura se ejecuta gratis en el navegador y al precio publicado de la API, sin consulta al registro de población y sin afirmar que un control correcto implique que la persona viva, esté empadronada o tenga derecho a un servicio.

Cómo se estructura y se comprueba un número CPR danés

Los números emitidos tras la relajación de octubre de dos mil siete pueden ser oficiales aunque falle la suma de módulo once; esta herramienta sigue informando mod11_valid para que quien llame aplique una política estricta o solo de fecha.

Contrato de entrada, forma de la respuesta y errores

Tras la normalización el motor exige exactamente diez dígitos. Analiza día, mes y año de dos dígitos, resuelve el año completo desde el séptimo dígito y rechaza fechas de calendario imposibles con un mensaje claro que nombra el día o el mes incorrecto. Longitud incorrecta tras el recorte, cadenas vacías, number ausente y cuerpos sin dígitos fallan antes de cualquier suma de control y no se facturan. HH. o un ingreso sanitario a un CPR tecleado por un usuario o un feed de socio y necesite en una sola llamada la comprobación de fecha y el control clásico. Envíe un cuerpo JSON con un campo number obligatorio que contenga el cuerpo del CPR. Se eliminan espacios y guiones para que las formas danesas habituales como cero siete cero siete seis uno guion cero cero uno ocho se acepten tras la normalización; otra puntuación y letras se rechazan como entrada no numérica con invalid_input, de modo que un valor limpiado en silencio nunca llegue al almacenamiento. Con una fecha real la respuesta incluye siempre input como la cadena normalizada de diez dígitos, valid true solo cuando también pasa el control clásico de módulo once, birth_date como cadena ISO año-mes-día, day, month y year como enteros, date como el fragmento de seis dígitos DDMMYY, serial como la cola de cuatro dígitos, gender como male o female, mod11_valid como espejo booleano de la suma de control, check_digit como el último carácter, length diez y algorithm denmark-cpr-mod11. Una cadena bien formada con fecha real pero dígito de control incorrecto devuelve valid false y mod11_valid false sin lanzar error, para que los formularios muestren la fecha extraída y aun así bloqueen el alta. Se aceptan alias como cpr, digits, text, value, code e id para el mismo campo de carga útil, de modo que las integraciones que ya usan nombres daneses no necesiten renombrarlo. Como la ruta es parse puro sin reloj, fuente aleatoria ni red, el mismo cuerpo JSON produce siempre el mismo resultado JSON en la herramienta gratuita del navegador y en la API a $0.002 por solicitud correcta. Prefiera este endpoint cuando condicione un formulario, un fichero KYC, una importación de RR.

Dónde encajan las comprobaciones CPR danesas en flujos reales

Los portales sanitarios y los sistemas de farmacia recalculan birth_date y mod11_valid cuando una clínica lee un número por teléfono o lo pega desde una tarjeta escaneada, capturando errores de tecleo antes de archivar una entrada de historial o una receta. Las pruebas de integración afirman birth_date y gender en muestras fijas para que las bibliotecas de formularios, las impresoras de etiquetas y esta API no diverjan. En todo flujo la promesa es la misma: solo dígitos tras el recorte opcional de separadores, longitud fija diez, JSON estructurado que puede probarse con goldens, comportamiento idéntico en navegador gratuito y API de prepago, e invalid_input honesto cuando la cadena no es una secuencia pura de diez dígitos con una fecha de calendario real.

Fijar fixtures para pruebas de sanidad y nómina

Use muestras válidas conocidas como 0707610018 en pacientes y empleados de sandbox, afirmando birth_date, gender y mod11_valid para que los datos de prueba se mantengan estables entre versiones.

¿Qué ocurre si falla el control mod-11 pero la fecha es real?

La tarea termina con éxito con valid false y mod11_valid false, y sigue devolviendo birth_date y gender. Los CPR posteriores a 2007 pueden ser oficiales sin suma clásica correcta; use mod11_valid si necesita una política más laxa.

¿Cuándo se obtiene invalid_input?

Number ausente, cadena vacía, caracteres no numéricos tras el recorte, longitud distinta de diez o una fecha de calendario imposible (mes o día incorrectos) fallan con invalid_input y no se facturan.

Ver la documentación completa del KIT →