✓ Sin registro 🔒 Todo en tu navegador Lotes de 1 a 100 · CSV y JSON

Generador de NIT de prueba (Colombia)

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

Tres pasos, cero configuración

1

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.

2

Válido o con el dígito roto

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.

3

Copia o exporta

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.

Cómo se calcula el dígito de verificación

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.

NIT y cédula: cuándo es el mismo número

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íaNIT
Quién lo tieneToda persona colombiana mayor de edadQuien se inscribe en el RUT: empresas y personas con actividad económica
Dígito de verificaciónNo llevaSí, calculado con módulo 11
LongitudDe 8 a 10 dígitos9 dígitos y el DV, en las empresas
Quién lo emiteRegistraduría NacionalDIAN

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.

Los formatos que se ven de verdad

FormatoEjemploDónde
Con puntos y guion890.903.938-8Facturas, documentos oficiales
Con guion890903938-8Formularios, portales
Sin nada8909039388Bases de datos, integraciones
Sin el DV890903938Algunos 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.

Qué probar con NIT sintéticos

  • El caso del resto 0 o 1. El fallo clásico de implementación. Genera un lote grande y valida cada uno con tu propia función: si alguna vez te sale un DV de dos cifras, ahí está el error.
  • Cédula frente a NIT. Comprueba que tu formulario no exige DV a una cédula ni lo omite en un NIT.
  • Los cuatro formatos. El mismo NIT con puntos, con guion y sin nada debe entrar una sola vez en tu base de datos.
  • DV incorrecto. El modo inválido cambia solo ese dígito: el NIT parece perfecto.
  • Ceros a la izquierda. Hay NIT que empiezan por cero. Guárdalo como cadena, no como entero, o se pierde.

No están inscritos en la DIAN

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

Dudas habituales

¿El NIT generado corresponde a una empresa real?

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.

¿El algoritmo es el de la DIAN?

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.

¿La cédula de ciudadanía tiene dígito de verificación?

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.

¿Por qué mi función devuelve un DV de dos cifras?

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.

¿Sirve para facturación electrónica?

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.

¿Genera documentos de otros países?

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.