npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

udv-ec

v1.0.1

Published

Módulo para verificar números de cédulas y RUCs válidas del Ecuador

Downloads

266

Readme

udv-ec (último dígito verificador Ecuador)

Introducción

edv-ec es una librería JavaScript para validar números de cédulas y RUCs emitidos en Ecuador.

Uso

Verificar Cédula

// TS y ES5+
import { verificarCedula } from 'udv-ec';

// CommonJS
const { verificarCedula } = require('udv-ec');

const cedula = '1710034065';

console.log(verificarCedula(cedula));

// Retorna true, si es una cédula válida
// Retorna false, si es una cédula inválida

Verificar RUC

// TS y ES5+
import { verificarRuc } from 'udv-ec';

// CommonJS
const { verificarRuc } = require('udv-ec');

const ruc = '1713175071001';

console.log(verificarRuc(ruc));

// Retorna true, si es un RUC válido
// Retorna false, si es un RUC inválido

Proceso de validación

Números de Cédulas

Dado el número de cédula: 1710034065

  1. Será exactamente una cadena de 10 dígitos numéricos.

  2. El último dígito de la cadena será el dígito verificador (5 para el número de cédula dado).

  3. Los dos primeros dígitos (17) corresponden a la provincia en la cual se emitió el documento. No serán menores a 0 ni mayores a 24.

  4. Coeficientes a utilizar son: 2, 1, 2, 1, 2, 1, 2, 1, 2, 1.

  5. Cada dígito de la cedula (con exepción al último dígito verificador) será multiplicado por un coeficiente de su misma posición. Como se muestra acontinuación.

| Posición | Dígito de la Cédula | Coeficiente | Resultado de la Multiplicación | | :------: | :-----------------: | :---------: | :----------------------------: | | 0 | 1 | 2 | 2 | | 1 | 7 | 1 | 7 | | 2 | 1 | 2 | 2 | | 3 | 0 | 1 | 0 | | 4 | 0 | 2 | 0 | | 5 | 3 | 1 | 3 | | 6 | 4 | 2 | 8 | | 7 | 0 | 1 | 0 | | 8 | 6 | 2 | 12 |

  1. Si el resultado de la múltiplicación es mayor o igual que 10, se le resta 9.

| Resultado de la Multiplicación | Cantidad a restar | Resultado | | :----------------------------: | :---------------: | :-------: | | 2 | | 2 | | 7 | | 7 | | 2 | | 2 | | 0 | | 0 | | 0 | | 0 | | 3 | | 3 | | 8 | | 8 | | 0 | | 0 | | 12 | -9 | 3 |

  1. Se suman los resultados: 2 + 7 + 2 + 0 + 0 + 3 + 8 + 0 + 3 = 25

  2. Al resultado de la suma (25) se le aplica el módulo 10. (25 % 10 = 5)

  3. Comparación.

    1. Si el resultado al aplicar el módulo 10 es igual a 0, se compara inmediatamente con el último dígito verificador. En el caso de ser iguales, se asume que es una cédula válida, caso contrario es una cédula inválida. (No se aplica para este caso, ya que el resultado anterior fue 5)

    2. Caso contrario, al número 10 se le resta el resultado de la aplicación del módulo (5). (Si aplica para este caso)

      1. 10 - 5 = 5
      2. Este resultado (5) es comparado con el último dígito verificador (5), en el caso de ser iguales, se asume que es una cédula válida, caso contrario es una cédula inválida.
        1. 5 == 5
        2. Es una cédula válida.

Números de RUCs (Registro Único de Contribuyentes)

  1. Será exactamente una cadena de 13 dígitos numéricos.

  2. Los dos primeros dígitos corresponden a la provincia en la cual se emitió el documento. No serán menores a 0 ni mayores a 24.

  3. Los últimos tres dígitos corresponderán al número de establecimentos adicionaes. (001, 002, 003, ...)

  4. El RUC tiene tres clasificaciones.

    1. RUC Natural.
    2. RUC Jurídicos y extranjeros sin cédula.
    3. RUC Públicos.

RUC Natural

Dado el número de RUC: 1713175071001

  1. El tercer dígito del RUC estará dentro del rango de 0 a 5 (###[0-5]#########). (Para le el ejemplo, el tercer dígito es 1)

  2. Se extrae los 10 primeros dígitos que serán validados como si fuera un número de cédula. (1713175071)

RUC Jurídicos y extranjeros sin cédula.

Dado el número de RUC: 1790085783001

  1. El tercer dígito del RUC será siempre 9. (##9##########)

  2. El dígito verificador sera el de la décima posición. (3 para el ejemplo)

  3. Los coeficientes a utilizar son: 4, 3, 2, 7, 6, 5, 4, 3, 2.

  4. Cada dígito del RUC (con exepción al dígito verificador y los tres últimos) serán multiplicados por un coeficiente de su misma posición. Como se muestra acontinuación.

| Posición | Dígito de la Cédula | Coeficiente | Resultado de la Multiplicación | | :------: | :-----------------: | :---------: | :----------------------------: | | 0 | 1 | 4 | 4 | | 1 | 7 | 3 | 21 | | 2 | 9 | 2 | 18 | | 3 | 0 | 7 | 0 | | 4 | 0 | 6 | 0 | | 5 | 8 | 5 | 40 | | 6 | 5 | 4 | 20 | | 7 | 7 | 3 | 21 | | 8 | 8 | 2 | 16 |

  1. Se suman los resultados: 4 + 21 + 18 + 0 + 0 + 40 + 20 + 21 + 16 = 140

  2. Al resultado de la suma (140) se le aplica el módulo 11. (140 % 11 = 8)

  3. Comparación.

    1. Si el resultado al aplicar el módulo 11 es igual a 0, se compara inmediatamente con el último dígito verificador. En el caso de ser iguales, se asume que el RUC es válido, caso contrario es el RUC es inválido. (No se aplica para este caso, ya que el resultado anterior fue 8)

    2. Caso contrario, al número 11 se le resta el resultado de la aplicación del módulo (8). (Si aplica para este caso)

      1. 11 - 8 = 3
      2. Este resultado (3) es comparado con el dígito verificador (3), en el caso de ser iguales, se asume que el RUC es válido, caso contrario es el RUC es inválido.
        1. 3 == 3
        2. Es un RUC válido.

RUC Públicos

Dado el número de RUC: 1260004800001

  1. El tercer dígito del RUC será siempre 6. (##6##########)

  2. El dígito verificador sera el de la novena posición. (0 para el ejemplo)

  3. Los coeficientes a utilizar son: 3, 2, 7, 6, 5, 4, 3, 2.

  4. Cada dígito del RUC (con exepción al dígito verificador y los cuatro últimos) serán multiplicados por un coeficiente de su misma posición. Como se muestra acontinuación.

| Posición | Dígito de la Cédula | Coeficiente | Resultado de la Multiplicación | | :------: | :-----------------: | :---------: | :----------------------------: | | 0 | 1 | 3 | 3 | | 1 | 2 | 2 | 4 | | 2 | 6 | 7 | 42 | | 3 | 0 | 6 | 0 | | 4 | 0 | 5 | 0 | | 5 | 0 | 4 | 0 | | 6 | 4 | 3 | 12 | | 7 | 8 | 2 | 16 |

  1. Se suman los resultados: 3 + 4 + 42 + 0 + 0 + 0 + 12 + 16 = 77

  2. Al resultado de la suma (77) se le aplica el módulo 11. (77 % 11 = 0)

  3. Comparación.

    1. Si el resultado al aplicar el módulo 11 es igual a 0, este es comparado con el último dígito verificador, en el caso de ser iguales, se asume que el RUC es válido, caso contrario es el RUC es inválido.
      1. 0 == 0
      2. Es un RUC válido.
    2. Caso contrario, al número 11 se le resta el resultado de la aplicación del módulo. (No se aplica para este caso, ya que el resultado anterior fue 0)
      1. Este resultado es comparado con el dígito verificador, en el caso de ser iguales, se asume que el RUC es válido, caso contrario es el RUC es inválido.

Licencia

Licencia MIT