Elige el documento
El generador viene abierto en NIT de Colombia. En el mismo desplegable tienes la cédula de ciudadanía colombiana, y las cédulas de Ecuador y Uruguay.
Números de Identificación Tributaria con el dígito de verificación que calcula el módulo 11 con pesos primos, el mismo algoritmo que usa la DIAN. También cédulas de ciudadanía.
100 % privado. No hay servidor: los datos se generan en tu navegador y no se envían ni se guardan en ninguna parte.
Cómo funciona
El generador viene abierto en NIT de Colombia. En el mismo desplegable tienes la cédula de ciudadanía colombiana, y las cédulas de Ecuador y Uruguay.
El modo válido aplica el módulo 11 con los pesos primos de la DIAN. El inválido lo altera: es la prueba que revela si tu formulario calcula de verdad.
El CSV trae el NIT con y sin separadores, el país, el tipo de documento y el dígito de verificación por separado.
El NIT colombiano lleva un dígito de verificación —el DV— que se escribe detrás de un guion. Se calcula con un módulo 11, pero con una particularidad que lo distingue del resto de Latinoamérica: los pesos no son una serie corta que se repite, sino una lista de números primos que se aplican de derecha a izquierda.
const PESOS = [3, 7, 13, 17, 19, 23, 29, 37, 41, 43, 47, 53, 59, 67, 71];
function dvNit(nit) {
let suma = 0;
for (let i = nit.length - 1, j = 0; i >= 0; i--, j++)
suma += Number(nit[i]) * PESOS[j];
const r = suma % 11;
return String(r > 1 ? 11 - r : r); // si el resto es 0 o 1, el DV es el resto
}
dvNit("890903938") // "8" → 890.903.938-8
Fíjate en la última línea, que es donde falla la mayoría de las implementaciones: cuando el
resto es 0 o 1, el dígito de verificación es ese mismo resto, no
11 − resto. Si aplicas la resta siempre, obtienes 11 o 10 —que no son dígitos— y
acabas truncando o dando el DV por inválido.
Puedes comprobar la función con un NIT público: 890.903.938-8, el de
Bancolombia. La suma ponderada da 1081, el resto entre 11 es 3, y 11 − 3 = 8,
exactamente el dígito que lleva impreso.
Aquí hay una particularidad colombiana que conviene entender antes de diseñar los datos de prueba: para una persona natural que se inscribe en el RUT, el NIT es su número de cédula más el dígito de verificación calculado sobre él. No se le asigna un número nuevo.
| Cédula de ciudadanía | NIT | |
|---|---|---|
| Quién lo tiene | Toda persona colombiana mayor de edad | Quien se inscribe en el RUT: empresas y personas con actividad económica |
| Dígito de verificación | No lleva | Sí, calculado con módulo 11 |
| Longitud | De 8 a 10 dígitos | 9 dígitos y el DV, en las empresas |
| Quién lo emite | Registraduría Nacional | DIAN |
La consecuencia práctica es importante y es un caso de prueba real: la cédula no tiene dígito de verificación. Si tu formulario intenta validar una cédula con el algoritmo del NIT, la rechazará siempre. Son dos campos con reglas distintas, y por eso este generador produce los dos por separado.
| Formato | Ejemplo | Dónde |
|---|---|---|
| Con puntos y guion | 890.903.938-8 | Facturas, documentos oficiales |
| Con guion | 890903938-8 | Formularios, portales |
| Sin nada | 8909039388 | Bases de datos, integraciones |
| Sin el DV | 890903938 | Algunos sistemas lo guardan aparte |
El último caso merece atención: hay sistemas que guardan el NIT y el DV en columnas separadas. Si el tuyo lo hace, tienes que probar que la unión de las dos columnas sigue siendo válida, y que nadie puede guardar un NIT con un DV que no le corresponde. Por eso el CSV de esta herramienta devuelve el dígito de verificación en su propia columna.
Un NIT generado aquí pasa la validación del dígito de verificación, y eso es lo que comprueban los formularios. Lo que no está es inscrito en el RUT de la DIAN: no corresponde a ninguna empresa ni persona registrada, y una consulta al servicio oficial lo rechazará. Para simular esa respuesta tienes el generador de respuestas HTTP.
Preguntas frecuentes
No. El dígito de verificación es correcto y cualquier validador lo acepta, pero el número no está inscrito en el RUT de la DIAN ni corresponde a ninguna empresa registrada.
Sí, es el módulo 11 con la serie de pesos primos, verificado contra un NIT público real: 890903938 devuelve exactamente el dígito 8 que lleva Bancolombia.
No. Solo el NIT lo lleva. Es un error frecuente intentar validar una cédula colombiana con el algoritmo del NIT: siempre fallará. Este generador produce los dos documentos por separado, precisamente para poder probar ese caso.
Porque aplicas 11 menos el resto en todos los casos. Cuando el resto es 0 o 1, el dígito de verificación es ese mismo resto. Es el fallo más común al implementar este algoritmo.
Para probar el formato y las validaciones del fichero, sí. Para emitir facturas de verdad hay que usar el entorno de habilitación de la DIAN con los NIT que ese entorno reconozca.
Sí. En el mismo desplegable están la cédula de Ecuador —con su módulo 10— y la cédula de identidad de Uruguay. En la página de Latinoamérica tienes además Chile, Brasil, Argentina y México.
Sigue probando