Dígito de control Aadhaar Verhoeff
Obtenga el dígito de control Verhoeff de los once primeros dígitos de un Aadhaar o compruebe uno completo de doce: 2345 6789 012 recibe un 4 y queda 2345 6789 0124. Las erratas se detectan antes de guardar. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Número Aadhaar
- 23456789012
- Modo de cálculo
- Compute
- Entrada
- 23456789012
- Dígito de control
- 4
- Con dígito de control
- 234567890124
- Formateado
- 2345 6789 0124
Aadhaar es el número de identidad único de doce dígitos de la India. El último dígito es un dígito de control Verhoeff calculado sobre los once primeros, de modo que los errores de un solo dígito y muchos intercambios adyacentes se detectan antes de guardar un formulario o importar un archivo por lotes. Esta capacidad calcula ese dígito a partir de un cuerpo de once dígitos, o valida un Aadhaar completo de doce dígitos que ya incluye el de control, e informa la entrada incorrecta en lugar de eliminar letras en silencio o inventar un número. La ruta es aritmética pura—sin llamada de red a UIDAI, sin consulta a un registro y sin afirmar que exista una persona—, de modo que tareas escolares, precomprobaciones KYC y filtros ETL pueden compartir un mismo contrato determinista.
Qué es el dígito de control Aadhaar Verhoeff y por qué lo usa UIDAI
Un número Aadhaar es una cadena de doce dígitos en la que el dígito final no se elige libremente: lo produce el algoritmo de Verhoeff aplicado a los once primeros. Verhoeff opera en el grupo diedral de orden diez con tablas fijas de multiplicación, permutación e inversa. Los dígitos se procesan de derecha a izquierda; cada uno se permuta según su posición (módulo ocho) y se combina con una suma de control acumulada.
Al generar el dígito de control se añade la inversa de la suma intermedia, de modo que un número completo de doce dígitos siempre produce suma cero al reevaluarlo. Esa propiedad detecta todo error de un solo dígito y toda transposición adyacente—patrones que dominan la entrada en formularios y el OCR. UIDAI también exige que un Aadhaar válido nunca empiece por cero ni por uno, regla que esta herramienta aplica en compute y en validate para rechazar a tiempo prefijos sintéticos o mal tecleados.
Frente a Luhn (usado en muchas tarjetas de pago) y Damm (otro control de cuasigrupo), Verhoeff es el esquema concreto elegido para Aadhaar; reutilizar un validador Luhn en un campo Aadhaar da falsa confianza. Esta capacidad implementa solo la aritmética de control publicada. No contacta a UIDAI, no prueba residencia, no obtiene datos demográficos ni afirma que un número esté asignado a una persona viva.
Una suma de control correcta significa que la cadena de dígitos es coherente con Verhoeff y con la regla del primer dígito—no que la verificación de identidad haya tenido éxito.
Dónde encajan los dígitos de control Aadhaar en KYC, formularios y pipelines
Los formularios de alta y KYC en la India suelen recoger Aadhaar para vinculación o traspaso a e-KYC. Las importaciones por lotes de clientes o empleados pueden ejecutar el modo validate en cada fila y aislar los números cuyo dígito de control ya no coincida, lo cual es más barato que descubrir la corrupción durante una operación masiva fallida.
Los sitios de contenido que posicionan por calculadora de dígito de control Aadhaar o validador Verhoeff Aadhaar se benefician de una herramienta en vivo cuya ruta gratuita del navegador coincide byte a byte con la automatización de pago. No trate un control Verhoeff correcto como prueba de identidad, de inscripción, de coincidencia biométrica ni de autorización para actuar en nombre de alguien: solo demuestra que la cadena de dígitos es coherente con el algoritmo Verhoeff de Aadhaar y con la restricción del primer dígito de UIDAI.
Qué puede hacer con ella
Auditar columnas Aadhaar en archivos de socios y KYC
Valide por lotes cada Aadhaar de una importación CSV y aísle las filas cuyo dígito de control ya no coincida con el valor esperado recomputado.
Preguntas frecuentes
¿Qué es el dígito de control Aadhaar Verhoeff?
Es el duodécimo dígito de un número Aadhaar, calculado con el algoritmo diedral de Verhoeff sobre los once primeros, de modo que los errores de un solo dígito y las transposiciones adyacentes rompen la suma de control.
¿Por qué el primer dígito debe ser 2–9?
Los números Aadhaar de UIDAI nunca empiezan por 0 ni por 1. Esta herramienta rechaza cuerpos y números completos que violen esa regla para que no acepte UID estructuralmente imposibles.
¿Cuánto cuesta la herramienta de dígito de control Aadhaar Verhoeff?
La herramienta del navegador es gratuita. Una suma de control válida no es prueba de identidad ni de inscripción en UIDAI.
¿Un dígito de control válido demuestra que el Aadhaar pertenece a alguien?
No. La comprobación es solo aritmética: no consulta a la UIDAI, no busca en ningún registro ni confirma la residencia. Que pase solo significa que los doce dígitos son coherentes con Verhoeff y con la regla del primer dígito, no que la identidad esté verificada.
¿Qué errores de tecleo detecta el dígito de control del Aadhaar?
Todos los errores de un solo dígito y todos los intercambios de dos dígitos vecinos, que son los fallos más frecuentes al rellenar formularios o escanear documentos. Un validador Luhn, como el de muchas tarjetas de pago, usa otro método y da una falsa seguridad.
Herramientas relacionadas
Para desarrolladores — acceso por API
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.
Endpoint de API
¿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.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/enc/aadhaar-india \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"aadhaar":"23456789012"}'const res = await fetch("https://api.kit.forhosting.com/enc/aadhaar-india", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"aadhaar": "23456789012"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/aadhaar-india",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"aadhaar": "23456789012"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/aadhaar-india", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"aadhaar":"23456789012"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"aadhaar":"23456789012"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/aadhaar-india", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"aadhaar": "23456789012"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.aadhaar_india",
"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.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Se aceptan espacios y guiones en la forma habitual XXXX XXXX XXXX; caracteres no numéricos y longitudes erróneas fallan con invalid_input. Úselo gratis en el navegador o llame a la API de KIT al precio publicado; ambas rutas ejecutan las mismas tablas Verhoeff.
Cómo calcular un dígito de control o validar un Aadhaar de doce dígitos
Envíe un campo aadhaar con dígitos del cero al nueve, opcionalmente agrupados con espacios o guiones como en 2345 6789 0124. El modo compute es el predeterminado: proporcione exactamente once dígitos sin el dígito de control (por ejemplo 23456789012 o 2345 6789 012). El modo validate espera un número completo de doce dígitos con el dígito de control final. Prefiera compute cuando ensamble un número a partir de un cuerpo de once dígitos conocido; prefiera validate cuando un usuario, un CSV de socio o una etiqueta escaneada aporte un UID completo y necesite un filtro booleano antes de un flujo de identidad más profundo. El motor devuelve check_digit como cadena de un carácter, with_check como la cadena completa de doce dígitos y formatted como XXXX XXXX XXXX para mostrar. La respuesta indica valid true cuando la suma Verhoeff del número entero es cero (o, de forma equivalente, cuando el dígito recomputado coincide con el último), e incluye siempre check_digit, expected_check_digit, payload sin el último dígito y formatted. Cadenas vacías, aadhaar ausente, valores de mode inválidos, longitudes incorrectas, primer dígito cero o uno, y caracteres no numéricos fallan con invalid_input antes de completar cualquier consulta a las tablas y no se facturan. Como la ruta es parse puro, sin reloj, fuente aleatoria ni red, la misma entrada produce siempre el mismo JSON en la herramienta gratuita del navegador y en la API. A $0.002 por solicitud exitosa puede filtrar formularios de alta, importaciones de socios y generadores internos sin negociar un tramo a medida.
Dónde encajan los dígitos de control Aadhaar en KYC, formularios y pipelines
Validar el dígito Verhoeff en el borde del navegador o de la API bloquea errores obvios de tecleo antes de escribir un registro y antes de llamar a cualquier servicio posterior. Las pruebas de integración de pipelines OCR pueden afirmar que una cadena limpia de doce dígitos o bien valida, o bien se rechaza con un mensaje claro invalid_input cuando queda ruido. En todo flujo el contrato es el mismo: dígitos con espacios o guiones opcionales, compute o validate, JSON estructurado que puede probarse con goldens, comportamiento idéntico gratis en el navegador o con saldo KIT prepago, y fallo honesto cuando la entrada está mal formada.
Casos de integración
Filtrar campos Aadhaar en formularios web y móviles
Cuando un usuario envíe un Aadhaar completo de doce dígitos, llame al modo validate y bloquee el guardado si valid es false, mostrando expected_check_digit para corregir un solo error de tecleo antes de almacenar el registro.
Calcular dígitos de control para UID sintéticos o completados
A partir de un cuerpo de once dígitos que empiece por 2–9, llame al modo compute y almacene with_check o formatted para que cada fixture de prueba y cada cadena completada lleve el dígito Verhoeff final correcto.
Preguntas técnicas
¿Cómo calculo un dígito de control Aadhaar con esta API?
Haga POST con aadhaar de once dígitos (espacios o guiones opcionales) y mode compute (u omita mode). La respuesta incluye check_digit, with_check y formatted como XXXX XXXX XXXX.
¿Cómo valido un Aadhaar completo de doce dígitos?
Haga POST con aadhaar de doce dígitos y mode validate. La respuesta pone valid true cuando la suma Verhoeff es cero e incluye expected_check_digit para comparar.