Cédula de identidad ecuatoriana y RUC: la guía definitiva

La cédula de identidad ecuatoriana y el número del registro único de contribuyentes -RUC- tienen un algoritmo especial muy sencillo que es conveniente dominar para su implementación efectiva en proyectos informáticos. Su verificación es muy útil para garantizar la calidad de los datos de una manera sencilla. Por ejemplo, cuando se digitan números de cédula de identidad muchas veces se comenten errores de tipeo, los cuales se los podría detectar inmediatamente automatizando su verificación.

Estructura del Número de Cédula de Identidad

El Estado Ecuatoriano, a través del Registro Civil, asigna el número de cédula de identidad para identificar de manera única a los ciudadanos. Este número consiste en 10 dígitos con la siguiente estructura:

  • Los dos primeros números corresponden al número de la provincia donde fue generada la cédula de identidad con el certificado de nacido vivo. En caso de extranjeros, el número es 30. Los únicos valores posibles a la fecha son los siguientes:
    01	Azuay
    02	Bolivar
    03	Cañar
    04	Carchi
    05	Cotopaxi
    06	Chimborazo
    07	El Oro
    08	Esmeraldas
    09	Guayas
    10	Imbabura
    11	Loja
    12	Los Ríos
    13	Manabí
    14	Morona Santiago
    15	Napo
    16	Pastaza
    17	Pichincha
    18	Tungurahua
    19	Zamora Chinchipe
    20	Galápagos
    21	Sucumbíos
    22	Orellana
    23	Santo Domingo de los Tsáchilas
    24	Santa Elena
    30	Número reservado para ecuatorianos registrados en el exterior.
  • Cabe señalar que el conjunto de valores posibles cambiará conforme varíe la estructura política de las provincias. En este momento es incorrecto contar con un número de doble cero (00) o mayor a 24, excepto 30 que como se dijo se lo utiliza en números asignados para ecuatorianos en consulados del Ecuador en el exterior.
  • El tercer número puede tener un valor entre el cero (0) y el cinco (5). Algunos de los valores restantes son usados en el RUC (se lo explica más adelante) y otros nunca se los usa. (favor tomar en cuenta la actualización del 14 de julio de 2017, al final del artículo, donde se revisan los casos de cédulas con tercer dígito 6)
  • Del cuarto al noveno dígito es un número secuencial que el Registro Civil lo obtiene de manera automática al momento de generar la cédula de identidad.
  • El décimo dígito es el dígito verificador, el cual se lo obtiene a través de un cálculo especial donde se utiliza el módulo 10.

Algoritmo de Verificación

El décimo dígito es el resultado de un cálculo realizado con los anteriores nueve, de la siguiente manera:

  1. Se agrupan los nueve primeros dígitos en dos conjuntos: los que están en posiciones impares y los que están en pares. Por ejemplo, para la cédula de identidad 1713175071, las posiciones impares serían 1, 1, 1, 5 y 7, mientras que las posiciones pares serían 7, 3, 7 y 0.
  2. A las posiciones impares se multiplican por dos (2). Si el resultado de esta multiplicación es mayor a nueve, se le resta nueve. Por ejemplo, si los números en posiciones impares son 1, 1, 1, 5 y 7, la multiplicación por dos de cada número sería 2, 2, 2, 10 y 14. Ya que algunos resultados son mayores a nueve, se procede a restar nueve a esos valores, quedando así: 2, 2, 2, 1 y 5.
  3. Se suman los dígitos en posiciones pares, más los resultados de las operaciones en las posiciones impares. Por ejemplo, si los dígitos pares son 7, 3, 7 y 0, la suma de dígitos en posiciones pares sería 17. Por otro lado, si el resultado de las operaciones en las posiciones impares es 2, 2, 2, 1 y 5, su suma sería 12. El total de la suma sería 17 + 12 = 29
  4. Se obtiene el módulo 10 de la suma total anterior, es decir, se toma el dígito más a la derecha del resultado de la suma. Por ejemplo, si suma 29, el módulo 10 sería 9.
  5. Si el resultado anterior es cero entonces el dígito verificador es cero, caso contrario al número 10 se le resta el resultado obtenido en el anterior paso. Por ejemplo, si el resultado del paso anterior es 9, la resta sería 10 – 9 = 1, siendo 1 el dígito verificador calculado.

Como se puede verificar, el resultado en el ejemplo del quinto paso (1) es igual al último dígito de la cédula de identidad de ejemplo que consta en el primer paso (1713175071).

Este algoritmo se lo ha automatizado en el siguiente programa, donde es posible ingresar cualquier cédula de identidad para entender cada paso de su verificación:

Ingrese el número de cédula:

Sobre el Registro Único de Contribuyentes (RUC)

El número RUC es el identificador único usado por el Servicio de Rentas Internas para el cobro de impuestos. Tiene cinco diferencias con el número de cédula:

  1. Consta de 13 dígitos, en lugar de los 10 de la cédula de identidad. Los últimos dígitos son un secuencial que corresponde al número del establecimiento. El número de dígitos usados para este secuencial dependen del tipo de RUC, que se lo explicará más adelante.
  2. El tercer dígito puede ser del 0 al 5, o 6, o 9, dependiendo del tipo de RUC (se explicará más adelante cada caso).
  3. Si para la cédula de identidad el dígito verificador siempre es el décimo, para instituciones públicas es el noveno.
  4. El dígito verificador se lo calcula con módulo 11 para algunos tipos de RUC y con módulo 10 para otros, en lugar del uso exclusivo del módulo 10 en la cédula de identidad.
  5. Para el cálculo del dígito verificador, los coeficientes para la multiplicación pueden ser distintas al simple 2 para las posiciones impares que se usa siempre en la cédula de identidad, dependiendo del tipo de RUC.

El Servicio de Rentas Internas cuenta con un documento donde se explica la manera de validar los números de cédula de identidad y RUC. Adicional, el SRI ha publicado en su sitio una explicación de la estructura del RUC.

Tipos de RUC

Existen tres tipos de RUC según el tipo de contribuyente:

  1. Persona natural: es el mismo número de cédula de identidad de la persona, más el número de sucursal (que por lo general es 001). Ya que no se cambia al número de cédula de identidad, el tercer dígito de este tipo de RUC estará siempre entre cero (0) y cinco (5) (favor tomar en cuenta la actualización del 14 de julio de 2017, al final del artículo, donde se revisan los casos de cédulas de identidad con tercer dígito 6). De igual manera, el dígito verificador se lo calcula con módulo 10, además los coeficientes de multiplicación son 2, 1, 2, 1, 2, 1, 2, 1, 2, es decir es el 2 para las posiciones impares, al igual que en la cédula de identidad.
  2. Persona jurídica y extranjeros sin cédula de identidad: La estructura de los 10 primeros dígitos es similar al de la cédula de identidad, a excepción del tercer dígito que siempre tendrá el valor fijo de nueve (9). Los tres últimos dígitos son el número de establecimiento (el primer establecimiento es 001). A diferencia de la cédula de identidad, el décimo dígito verificador se lo calcula con módulo 11. Los coeficientes de multiplicación para el cálculo del dígito verificador son 4, 3, 2, 7, 6, 5, 4, 3, 2.
  3. Institución Pública: Los dos primeros dígitos son el código de la provincia, al igual que en la cédula de identidad. El tercer dígito siempre tendrá el valor fijo de seis (6) (favor tomar en cuenta la actualización del 14 de julio de 2017, al final del artículo, donde se revisan los casos de cédulas de identidad con tercer dígito 6). Del cuarto al octavo dígito es un secuencial. El dígito verificador se lo calcula con módulo 11 y está en la novena posición. Los coeficientes de multiplicación para el cálculo del dígito verificador son 3, 2, 7, 6, 5, 4, 3, 2. El número de establecimiento son los cuatro últimos dígitos (el primer establecimiento es 0001).

Verificación de RUC

Al igual que para el número de cédula de identidad, se automatizó la verificación del RUC para entender su validación.

Puede probar el validador ingresando alguno de los siguientes ejemplos:

  • Persona natural: 1713175071001
  • RUC de persona jurídica: 1090072923001
  • RUC de persona jurídica con residuo cero: 0992114800001
  • Institución pública: 1768028470001
  • Institución pública con residuo cero: 1260004800001

Ingrese el número de RUC:

Ejemplos de Implementaciones de Validadores

A continuación se mostrarán dos ejemplos de implementación del validador de cédula de identidad, en lenguajes distintos.

Validador para hoja de cálculo

El validador de la cédula de identidad para hoja de cálculo es el siguiente:

=SI(Y(ESNUMERO(A3); LARGO(A3)=10; EXTRAEB(A3;1;2)>0; O(EXTRAEB(A3;1;2)+0<25; EXTRAEB(A3;1;2)+0=30)); SI(RESIDUO(1000 - EXTRAEB(A3;1;1)*2 + SI(EXTRAEB(A3;1;1)*2>9;9;0) - EXTRAEB(A3;3;1)*2 + SI(EXTRAEB(A3;3;1)*2>9;9;0) - EXTRAEB(A3;5;1)*2 + SI(EXTRAEB(A3;5;1)*2>9;9;0) - EXTRAEB(A3;7;1)*2 + SI(EXTRAEB(A3;7;1)*2>9;9;0) - EXTRAEB(A3;9;1)*2 + SI(EXTRAEB(A3;9;1)*2>9;9;0) - EXTRAEB(A3;2;1) - EXTRAEB(A3;4;1) - EXTRAEB(A3;6;1) - EXTRAEB(A3;8;1); 10) + 0 = EXTRAEB(A3;10;1) + 0; VERDADERO; FALSO); FALSO)

El mismo algoritmo pero en inglés, por si la hoja de cálculo esté en ese idioma:

=IF(AND(ISNUMBER(A3); LEN(A3)=10; MIDB(A3; 1; 2)>0;OR(MIDB(A3; 1; 2)+0<25;MIDB(A3; 1; 2)+0=30));IF(MOD(1000-MIDB(A3; 1; 1)*2+IF(MIDB(A3; 1; 1)*2>9; 9; 0)-MIDB(A3; 3; 1)*2+IF(MIDB(A3; 3; 1)*2>9; 9; 0)-MIDB(A3; 5; 1)*2+IF(MIDB(A3; 5; 1)*2>9; 9; 0)-MIDB(A3; 7; 1)*2+IF(MIDB(A3; 7; 1)*2>9; 9; 0)-MIDB(A3; 9; 1)*2+IF(MIDB(A3; 9; 1)*2>9; 9; 0)-MIDB(A3; 2; 1)-MIDB(A3; 4; 1)-MIDB(A3; 6; 1)-MIDB(A3; 8; 1); 10)+0=MIDB(A3; 10; 1)+0; TRUE(); FALSE()); FALSE())

La forma de uso es:

  • Copiar el código en un blog de notas y cambiar las referencias a la celda A3, a la primera posición de la columna donde se tengan los números de cédula de identidad.
  • Luego pegar el texto resultante en una celda contigua a la primera posición, y arrastrar la fórmula a lo largo de la columna hasta el final del listado de cédulas de identidad.

Validador en JavaScript

Para JavaScript, se implementó un validador de cédula de identidad muy sencillo y eficiente, cuyo algoritmo es usado en los ejemplos de este artículo:

function verificarCedula(cedula) {
  if (typeof(cedula) == 'string' && cedula.length == 10 && /^\d+$/.test(cedula)) {
    var digitos = cedula.split('').map(Number);
    var codigo_provincia = digitos[0] * 10 + digitos[1];

    //if (codigo_provincia >= 1 && (codigo_provincia <= 24 || codigo_provincia == 30) && digitos[2] < 6) {

    if (codigo_provincia >= 1 && (codigo_provincia <= 24 || codigo_provincia == 30)) {
      var digito_verificador = digitos.pop();

      var digito_calculado = digitos.reduce(
        function (valorPrevio, valorActual, indice) {
          return valorPrevio - (valorActual * (2 - indice % 2)) % 9 - (valorActual == 9) * 9;
        }, 1000) % 10;
      return digito_calculado === digito_verificador;
}
  }
  return false;
}

Conclusiones y recomendaciones

Es posible realizar una verificación eficiente de la cédula de identidad mediante la comprensión del algoritmo y de los casos especiales. Si requiere algún tipo de personalización o de implementación en otros lenguajes, no dude en contactarnos.

Actualización al 14 de julio de 2017

Gracias a nuestros lectores se detectaron varios casos de cédulas de identidad válidas cuyo tercer dígito es 6. Por ejemplo, nuestro lector Vinicio nos da el caso concreto del número de cédula 0960075455. Se realizó la consulta a dos funcionarios del Registro Civil, quienes concuerdan que la restricción del tercer dígito no consta en ningún instructivo, reglamento o ley de su Institución. Indicaron que esta restricción del tercer dígito no debería ser tomado en cuenta en los algoritmos de verificación, y que el único mecanismo de validación formalmente aceptado es el dígito verificador. También supieron manifestar que si el SRI ha implantado esta restricción para los números RUC (donde el tercer dígito 6 teóricamente es exclusivo para instituciones públicas), no lo ha hecho de manera coordinada con el Registro Civil y es de su exclusiva responsabilidad (problema típico de la ausencia de gestión de interesados en un proyecto). Además, el Reglamento a la Ley del Registro Único de Contribuyentes, en su artículo 3 sobre la estructura del número de registro, no menciona al tercer dígito.

Las implicaciones que se saca de todo esto son al menos dos:

  1. En el Ecuador no existe una especificación formal de la estructura de la cédula de identidad por parte del Registro Civil donde se detallen estos conceptos, por lo que se recomienda no usar el tercer dígito de la cédula de identidad en algoritmos de verificación.
  2. Ya que se han identificado casos reales de números de cédula de identidad con el tercer dígito 6, pueden existir casos de números de RUC de esas personas naturales con el tercer dígito 6 que no corresponden a instituciones públicas, por lo que no se puede confiar en el tercer dígito del RUC para discernir el tipo de contribuyente. Esto abre un gran problema para la verificación, puesto que como se detalló en el artículo, el dígito verificador para personas naturales es el décimo, mientras que para instituciones públicas es el noveno. En esos casos no hay manera definitiva de realizar la validación del RUC. Se requerirá de un dato externo al RUC para saber el tipo de contribuyente, y de esta manera poder aplicar uno u otro algoritmo de verificación.

A todo esto, si se añade el hecho del aparecimiento repentino del código 30 en los dos primeros dígitos para indicar cedulación en el extranjero, la recomendación para implementar validaciones que no dejen de funcionar en el tiempo sería utilizar solamente el dígito verificador. En lo posible.

Cédula de identidad ecuatoriana y RUC: la guía definitiva
5/5, de 3 votos

13 comentarios sobre “Cédula de identidad ecuatoriana y RUC: la guía definitiva

  1. Para validar el RUC es un tanto complicado; porque se requiere de rantos div para solamente decir si es válido o no; otra pregunta no puede enviar un alert para esto.

    1. Esta implementación de la validación puede ser modificada libremente, para hacerla tan simple como se la necesite.

    1. Gracias por la observación, se ha actualizado el artículo para contemplar ese caso. Saludos.

  2. 0960075455 es cedula correcta verificado en la pagina del Registro Civil, el tercer digito No es menor a 6, el algoritmo me falla, por favor su ayuda!

    1. Gracias por reportar la novedad, pues tienes razón, va en contra de toda la información disponible en Internet que hemos podido consultar. A través de su sitio Web hemos contactado con el Registro Civil para que puedan dar una versión oficial sobre el tema, y en cuanto tengamos su respuesta actualizaremos este artículo al respecto. Saludos

  3. Estimado, existe un caso donde un extranjero obtuvo una cédula ecuatoriana, entonces allí no funciona el algoritmo porque el tercer dígito es un 6 y obviamente es una cédula válida para el registro civil.

    1. Estimado, gracias por reportar ese caso. Estamos realizando averiguaciones en el Registro Civil para aclarar este tema, ya que lo que mencionas no consta en ninguna documentación que se haya podido acceder, es más va en contra de lo consultado. En cuanto podamos esclarecer este tema con el Registro Civil actualizaremos el artículo acorde. Saludos.

  4. Esto me respondieron del registro civil. “Lo números de cédula son correctos, se recomienda que en la validación de los mismos se lo realice en base al algoritmo del dígito verificador debido a que si dicho algoritmo en la tercera posición realiza alguna comparación le va a indicar que la cédula es inválida, razón por la cual se recomienda que esta validación se la realice en base al dígito verificador”

    1. Gracias por el aporte. Por el momento no quedaría otra opción ya que la especificación del número del RUC que consta en el sitio web del SRI no es compatible con cédulas con tercer dígito 6, incluso la posición del dígito verificador cambia ya que no es el décimo dígito sino el noveno, como se ve en el artículo. Se está consultando en el Registro Civil por una definición oficial de la estructura del número de cédula, en cuanto se tengan esos datos se ajustará el artículo acorde. Saludos.

Deja un comentario