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

Generador de cédula ecuatoriana de prueba

Cédulas de diez dígitos con el código de provincia real y el dígito verificador que calcula el módulo 10, y RUC de persona natural añadiendo el sufijo 001.

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

El generador abre en cédula de Ecuador

En el mismo desplegable tienes el RUC de persona natural, que es la cédula más el sufijo 001, y los documentos de Colombia y Uruguay.

2

Válido o con el dígito roto

El modo válido aplica el módulo 10 con posiciones impares dobladas. El inválido lo altera para tus pruebas negativas.

3

Copia o exporta

El CSV trae el documento, el país, el tipo y el dígito verificador por separado.

Los diez dígitos, uno por uno

La cédula ecuatoriana tiene una estructura muy legible, y eso la hace útil para probar lógica que dependa de ella:

  • Dígitos 1 y 2: el código de la provincia donde se emitió, del 01 al 24. El 30 se usa para ecuatorianos nacidos en el extranjero.
  • Dígito 3: el tipo de persona. Para una persona natural es menor que 6. Un 6 corresponde a entidades del sector público y un 9 a sociedades privadas.
  • Dígitos 4 a 9: el número secuencial.
  • Dígito 10: el verificador.

Esa tercera posición es un caso de prueba en sí misma: si tu aplicación distingue entre persona natural, empresa privada y entidad pública, ese dígito es de donde debe sacar la información.

Un módulo 10, no un módulo 11

Ecuador se separa de sus vecinos: mientras Chile, Brasil, Argentina y Colombia usan módulo 11, aquí el verificador sale de un módulo 10 con las posiciones impares duplicadas, muy parecido al algoritmo de Luhn de las tarjetas:

function dvCedulaEc(nueve) {
  let suma = 0;
  for (let i = 0; i < 9; i++) {
    let d = Number(nueve[i]);
    if (i % 2 === 0) {            // posiciones impares (1.ª, 3.ª, 5.ª…)
      d *= 2;
      if (d > 9) d -= 9;          // 12 → 3, igual que en Luhn
    }
    suma += d;
  }
  return String((10 - (suma % 10)) % 10);
}

dvCedulaEc("171003406")   // "5"  →  1710034065

El % 10 final no es redundante: cuando la suma es múltiplo de diez, el verificador es 0 y no 10. Sin ese módulo extra obtienes un dígito imposible. Puedes comprobar la función con 1710034065, una cédula de ejemplo muy citada: la suma da 25 y el verificador es 5.

Del cédula al RUC: solo hay que añadir 001

Para una persona natural, el RUC ecuatoriano es su cédula completa —los diez dígitos, verificador incluido— más el sufijo 001. Trece dígitos en total:

const cedula = "1710034065";
const ruc    = cedula + "001";   // "1710034065001"

Ese 001 identifica el establecimiento: el 001 es el principal, y los locales adicionales llevan 002, 003 y así. Es el mismo concepto que la sucursal del CNPJ brasileño.

Para sociedades el RUC no se deriva de una cédula: tiene su propia estructura, con un 9 en la tercera posición y un algoritmo de verificación distinto, con pesos 4-3-2-7-6-5-4-3-2. Esta herramienta genera el RUC de persona natural, que es el derivado de la cédula, y no el de sociedades: preferimos no publicar un algoritmo que no hemos podido verificar contra un caso público real.

Qué probar con cédulas sintéticas

  • El verificador 0. Ocurre cuando la suma es múltiplo de diez. Si tu validación asume que el dígito va de 1 a 9, falla.
  • Provincias fuera de rango. Una cédula que empiece por 25 o por 99 debería rechazarse: solo existen del 01 al 24, más el 30.
  • El tercer dígito. Prueba con 6 y con 9 si tu sistema distingue tipos de persona.
  • Cédula frente a RUC. Diez y trece dígitos en el mismo campo, si tu formulario acepta los dos.
  • Ceros a la izquierda. Todas las provincias del 01 al 09 producen cédulas que empiezan por cero. Si la guardas como número entero, se pierde el cero y el documento cambia. Es el fallo más caro de este documento.

Válidas en formato, no inscritas

Estas cédulas pasan la validación del módulo 10, que es lo que comprueban los formularios, pero no están registradas en el Registro Civil ecuatoriano ni el RUC en el SRI. No corresponden a ninguna persona y no sirven para ningún trámite: están para probar tu software.

Preguntas frecuentes

Dudas habituales

¿La cédula generada pertenece a alguien?

No. El número secuencial se elige al azar en tu navegador y no se consulta ninguna base de datos ni el Registro Civil. Puede coincidir por casualidad con una cédula emitida, igual que un número de teléfono inventado.

¿Por qué Ecuador usa módulo 10 y no 11?

Es simplemente la norma que eligió el país. El algoritmo se parece mucho al de Luhn: se duplican las posiciones impares y se resta 9 cuando el resultado pasa de 9. Chile, Brasil, Argentina y Colombia optaron por módulo 11, con pesos distintos cada uno.

¿Cómo obtengo el RUC a partir de la cédula?

Para una persona natural, añadiendo el sufijo 001 a la cédula completa: trece dígitos en total. El 001 identifica el establecimiento principal. Para sociedades el RUC no se deriva de una cédula y tiene otra estructura.

¿Qué significan los dos primeros dígitos?

La provincia de emisión, del 01 al 24. El 30 corresponde a ecuatorianos nacidos en el extranjero. Es un buen caso de prueba: una cédula que empiece por 25 o 99 debería rechazarse.

¿Por qué se pierde el cero inicial en mi base de datos?

Porque la estás guardando como número entero. Todas las provincias del 01 al 09 dan cédulas que empiezan por cero, y un entero lo descarta. La columna debe ser de texto: VARCHAR(10) o CHAR(10).

¿Genera documentos de otros países?

Sí. En el mismo desplegable están el NIT y la cédula de ciudadanía de Colombia y la cédula de identidad de Uruguay. Y en la página de Latinoamérica, Chile, Brasil, Argentina y México.