Generadores de documentos de Latinoamérica

Ocho países con su algoritmo oficial: módulo 11 en Chile, Brasil, Argentina y Colombia, y módulo 10 en Ecuador y Uruguay. Todos verificados contra números públicos reales.

✓ 6 generadores 🔒 Todo en tu navegador Lotes de 1 a 100 · CSV y JSON

Chile, Brasil y Argentina

Los tres con dígito verificador de módulo 11.

Colombia, Ecuador y Uruguay

NIT y cédulas de tres países más, con sus dígitos verificadores.

Venezuela y el resto de la región

RIF con la letra de tipo, y documentos de cinco países que no llevan dígito de control.

100 % privado. No hay servidor: los datos se generan en tu navegador y no se envían ni se guardan en ninguna parte.

Cada país, su propio dígito verificador

No hay un algoritmo latinoamericano común: cada país eligió el suyo, y por eso una validación que funciona en Chile falla en Brasil. Estos son los que implementamos, con el caso real contra el que quedó comprobado cada uno:

PaísDocumentoAlgoritmoVerificado con
ChileRUT / RUNMódulo 11, pesos 2 a 7 cíclicos11.111.111-1
BrasilCPFMódulo 11, dos dígitos111.444.777-35
BrasilCNPJMódulo 11, pesos 5-4-3-2-9…11.222.333/0001-81
ArgentinaCUIT / CUILMódulo 11, pesos 5-4-3-2-7-6-5-4-3-220-12345678-6
ColombiaNITMódulo 11 con pesos primos890903938-8
EcuadorCédulaMódulo 10, posiciones impares x21710034065
UruguayCédulaMódulo 10, pesos 2-9-8-7-6-3-41.234.567-2

Los detalles que rompen validaciones

  • El dígito K del RUT chileno. Cuando el resto da 10, el verificador es la letra K. Hay una opción para forzarlo: es el caso que tumba cualquier validación que solo acepte cifras.
  • La región fiscal del CPF. El noveno dígito indica dónde se emitió; puedes elegirla si tu aplicación la interpreta.
  • El prefijo del CUIT. 20 para hombre, 27 para mujer, 30 y 33 para empresas. Los ocho dígitos centrales son el DNI del titular, así que CUIL y DNI deben ser coherentes en tus datos.
  • La homoclave del RFC mexicano. El SAT no publica su algoritmo. Aquí es aleatoria: el formato es correcto, pero no es calculable. Lo decimos abiertamente.

Los tres algoritmos, en código

Casi toda Latinoamérica usa una variante de módulo 11, pero con pesos distintos y reglas distintas para los casos borde. Estas son las tres familias que cubren los ocho países:

Chile: pesos cíclicos de 2 a 7

function dvRut(num) {
  let suma = 0, mul = 2;
  for (let i = num.length - 1; i >= 0; i--) {
    suma += Number(num[i]) * mul;
    mul = mul === 7 ? 2 : mul + 1;
  }
  const r = 11 - (suma % 11);
  return r === 11 ? "0" : r === 10 ? "K" : String(r);
}

El caso que rompe todo está en la última línea: cuando el resto da 10, el verificador es la letra K. Aproximadamente uno de cada once RUT termina en K, así que si tu campo solo acepta dígitos vas a rechazar al 9 % de los chilenos. La herramienta tiene una opción para forzar RUT terminados en K precisamente para esta prueba.

Brasil: dos dígitos, pesos descendentes

function dvCpf(base) {                  // base = 9 o 10 dígitos
  const pesos = base.length + 1;
  let suma = 0;
  for (let i = 0; i < base.length; i++) suma += Number(base[i]) * (pesos - i);
  const r = suma % 11;
  return String(r < 2 ? 0 : 11 - r);
}
const cpf = base9 => {
  const d1 = dvCpf(base9);
  return base9 + d1 + dvCpf(base9 + d1);
};

El CPF lleva dos dígitos verificadores, y el segundo se calcula incluyendo el primero. Un error habitual es calcularlos por separado sobre la misma base: el resultado pasa la mitad de las validaciones y falla la otra mitad.

Colombia: pesos primos

const PESOS = [3, 7, 13, 17, 19, 23, 29, 37, 41, 43, 47, 53, 59, 67, 71];
function dvNit(num) {
  let suma = 0;
  for (let i = num.length - 1, j = 0; i >= 0; i--, j++)
    suma += Number(num[i]) * PESOS[j];
  const r = suma % 11;
  return String(r > 1 ? 11 - r : r);
}

Lo que codifica cada documento

Varios de estos números no son aleatorios: llevan información dentro, y eso los hace útiles para probar lógica que depende de ella.

DocumentoQué codificaDónde
CPF de BrasilLa región fiscal donde se emitió (0 = Rio Grande do Sul, 8 = São Paulo…)9.º dígito
CNPJ de BrasilEl número de sucursal: 0001 es la matrizDígitos 9 a 12
CUIT y CUIL de ArgentinaEl tipo de persona: 20 hombre, 27 mujer, 30 y 33 empresaLos dos primeros
CUIL de ArgentinaEl DNI del titular, tal cualDígitos 3 a 10
Cédula de EcuadorLa provincia de emisión (01 a 24)Los dos primeros
RFC de MéxicoLa fecha de nacimiento y las iniciales del nombreCaracteres 1 a 10

Esto tiene una consecuencia práctica: si tu aplicación guarda por separado el CUIL y el DNI de un argentino, tienen que ser coherentes entre sí. Genera un CUIL, extrae los ocho dígitos centrales y úsalos como DNI: así tus datos de prueba aguantan una revisión humana. La herramienta ya te devuelve ese campo desglosado en el CSV.

Una excepción que declaramos

La homoclave del RFC mexicano —los tres últimos caracteres— la asigna el SAT con un algoritmo que no publica. Las cuatro letras iniciales y la fecha sí siguen la regla oficial, pero la homoclave que genera esta herramienta es aleatoria: el formato es correcto y pasa una validación de estructura, pero no es calculable ni verificable. Preferimos decirlo a que lo descubras en producción.

La letra del RIF venezolano entra en el cálculo

El Registro de Información Fiscal de Venezuela empieza por una letra que clasifica al contribuyente: V venezolano, E extranjero, J jurídico —una empresa—, P pasaporte y G gubernamental.

Y aquí está lo que distingue una implementación correcta: esa letra no es una etiqueta, es parte del cálculo. Tiene un valor propio, del 1 al 5, que se multiplica por cuatro y se suma antes de aplicar los pesos a los ocho dígitos. La consecuencia práctica es contundente: cambiar solo la letra invalida el número entero.

const VALOR = { V: 1, E: 2, J: 3, P: 4, G: 5 };
const PESOS = [3, 2, 7, 6, 5, 4, 3, 2];

function controlRif(letra, d8) {
  let suma = VALOR[letra] * 4;
  for (let i = 0; i < 8; i++) suma += Number(d8[i]) * PESOS[i];
  const r = 11 - suma % 11;
  return r >= 10 ? 0 : r;        // ← 10 y 11 se convierten en 0
}

controlRif("J", "00012255")   // 5  →  J-00012255-5

Verificado con dos RIF publicados, J-00012255-5 y J-30816256-6. Dos aciertos independientes con un control de base once son una posibilidad entre ciento veintiuna por azar, así que el algoritmo es el correcto.

La prueba negativa que más rinde aquí es evidente: coge un RIF válido de empresa y cámbiale la J por una V. Si tu sistema lo sigue dando por bueno, no está metiendo la letra en el cálculo.

Cinco países donde no hay nada que validar

Costa Rica, Panamá, Bolivia, Paraguay y Honduras tienen algo en común que conviene saber antes de escribir una validación: sus documentos de identidad no llevan dígito de control. No hay fórmula que comprobar.

Lo que sí se puede validar es la estructura, y ahí cada país tiene la suya:

PaísDocumentoEstructura
Costa RicaCédula físicaProvincia (1–7) + tomo + asiento
Costa RicaCédula jurídicaEmpieza siempre por 3 + clase + número
PanamáCédulaProvincia (1–9) + tomo + asiento
BoliviaCédulaNúmero, con la sigla del departamento opcional
ParaguayCédulaNúmero correlativo, sin partes
HondurasTarjeta de identidadDepartamento + municipio + año de nacimiento + serie

El caso de Honduras es el más aprovechable para pruebas: los cuatro dígitos centrales son el año de nacimiento, así que si tu aplicación calcula la edad a partir del documento, ahí tienes un dato que ejercitar. Y en Costa Rica, que la cédula jurídica empiece siempre por 3 permite distinguir empresa de persona sin preguntar.

Qué falta aquí, y por qué

No están Guatemala, El Salvador, Nicaragua ni República Dominicana. No es un olvido: esos cuatro sí llevan dígito de control, y no hemos conseguido reproducirlo contra un número publicado. Podríamos generar algo con el formato correcto, pero sería entregar cifras que parecen válidas y no lo son, que es justo lo contrario de lo que sirve para probar. Preferimos que falten a que engañen.

Preguntas frecuentes

Sobre estos generadores

¿Los documentos están registrados en su país?

No. Tienen la estructura y el dígito verificador correctos, pero no corresponden a ninguna persona ni empresa inscrita en ningún registro.

¿Por qué el RFC mexicano es distinto al resto?

Porque la homoclave —los tres últimos caracteres— la asigna el SAT con un algoritmo que no publica. Las cuatro letras iniciales sí siguen la regla oficial a partir de los apellidos y el nombre.

¿Puedo generar 100 y exportarlos?

Sí, cada generador permite lotes de 1, 10, 50 o 100 y los exporta en CSV o JSON con todos los campos desglosados.