Algoritmo para El Calculo Del Digito Ver

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 18

ALGORITMO PARA EL CALCULO DEL DIGITO VERIFICADOR DE LA

RUC Y RECIBO
La entrada son dos campos: RUC (A20), DV (A2)
el campo DV se divide en DV1 (A1) y DV2 (A1)
primero se calcula el DV1 y después el DV2

Para calcular el dígito verificador del RUC se inicializa el DV en blanco.


Para calcular el dígito del Recibo se inicializa el DV en ‘xx’ que utiliza base 10.

El RUC deseditado se mueve justificado a la derecha a una variable de nombre RUC-T de 20


Posiciones, que forma parte a su vez de la tabla RUCTB que tiene 21 posiciones.

Ruc Jurídico
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de entrada
0 0 0 0 0 1 0 1 0 2 0 0 6 4 1 0 3 4 6 2 Justificado a la
izquierda

RUC

Se mueve a la variable RUC de 21 posiciones que forma parte de RUCTB.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Justificado a la
Posiciones 0 0 0 0 0 1 0 1 0 2 0 0 6 4 1 0 3 4 6 2 derecha

Se reemplazará con 0. RUC T


DV AUX
RUCTB

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Espacios en
0 0 0 0 0 1 0 1 0 2 0 0 6 4 1 0 3 4 6 2 blancos
reemplazar con 0.

Se reemplaza con 0.

Ruc Jurídico
2. 0 0 0 0 0 1 1 0 2 0 0 8 5 1 1 7 2 1 1 Ruc formato
antiguo

3. 0 0 0 0 6 1 3 0 2 0 0 1 4 1 2 3 4 1 1 Ruc formato
normal

Persona Natural (Formato de tomo a 3 posiciones)


Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Justificado a la
4. N 0 8 2 7 4 0 0 1 2 5 izquierda

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Justificado a
N 0 8 2 7 4 0 0 1 2 5 la derecha

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 reemplazar
0 0 0 0 0 0 0 N 0 8 0 0 2 7 4 0 0 1 2 5 blancos x 0

1
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
5. N 0 8 N T 0 0 1 0 0 0 2 4 Naturalizado

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc Número


6. 0 0 8 N T 0 0 1 0 0 4 1 9 Tributario

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
7. N 0 0 P E 0 0 1 0 0 0 1 9 Panameño
Extranjero

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
8. N 0 0 E 0 0 1 0 0 0 1 1 Extranjero

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
9. N 0 8 P I 0 0 1 0 0 0 8 0 Panameño
Indígena

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
10. N 0 8 A V 0 0 1 0 0 1 9 6 Antes de
la
Vigencia

Persona Natural (Formato de tomo a 4 posiciones)


Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Justificado a la
11. N 0 8 2 7 4 3 0 1 2 5 4 izquierda

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Justificado a
N 0 8 2 7 4 3 0 1 2 5 4 la derecha

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 reemplazar
0 0 0 0 0 0 N 0 8 0 0 2 7 4 3 0 1 2 5 4 blancos x 0

Aquí se evalúa si el RUCTB es Natural o Jurídico con la siguiente condición:

El RUCTB es una tabla de 21 caracteres y se pregunta si la posición 7 u 8 ó la 11 es una “N”;


La posición 7 u 8 nos indica que es un RUC persona Natural; la posición 11 que es un Número Tributario,
Dado a Instituciones del Gobierno.

Si esta condición de “N” es cierta vamos a la Rutina de Personas Naturales


y Números Tributarios.

2
Rutina de Personas Naturales y Números Tributarios.
En la persona natural (N) siempre se reemplaza la posición 7 u 8 de RUCTB con el número 5.
Para esto se pregunta si esta posición = “N”.
Ruc ejemplo 4.
0 0 0 0 0 0 0 N 0 8 0 0 2 7 4 0 0 1 2 5 Se reemplaza “N” por
el número 5.

0 0 0 0 0 0 0 5 0 8 0 0 2 7 4 0 0 1 2 5

Ruc ejemplo 4a.


0 0 0 0 0 0 N 0 8 0 0 2 7 4 3 0 1 2 5 3 Se reemplaza “N” por
el número 5.

0 0 0 0 0 0 5 0 8 0 0 2 7 4 3 0 1 2 5 3

En los Números Tributarios o Naturalizados (NT) se reemplaza la posición 11 de RUCTB (letra “N”) por el
número 4 y la posición 12 de RUCTB (letra “T”) por el número 3.

Ruc ejemplo 5.
0 0 0 0 0 0 0 N 0 8 N T 0 0 1 0 0 0 2 4 Se reemplaza “NT”
por los números 4 y 3.

0 0 0 0 0 0 0 5 0 8 4 3 0 0 1 0 0 0 2 4

Si la condición anterior no se cumple puede ser un RUC de una persona Extranjera el cual se identifica con
una “E” en la posición 11 de RUCTB (letra “E”). De cumplirse la reemplazamos por el número 5.
Ruc ejemplo 8.
0 0 0 0 0 0 0 N 0 0 E 0 0 0 1 0 0 0 1 1 Se reemplaza “E” por el
número 5.

0 0 0 0 0 0 0 5 0 8 5 0 0 0 1 0 0 0 1 1

Si la condición anterior es falsa preguntamos si es un RUC de un panameño Extranjero; posición 11 y 12


igual a “PE”. De ser así reemplazamos la posición 11 (letra “P”) por el número 7 y la posición 12 (letra “E”
por el número 5.
Ruc ejemplo 7.
0 0 0 0 0 0 0 N 0 0 P E 0 0 1 0 0 0 1 9 Se reemplaza “PE” por
los números 7 y 5.

0 0 0 0 0 0 0 5 0 0 7 5 0 0 1 0 0 0 1 9

Si la condición anterior es falsa entonces preguntamos si se trata de un RUC para Panameño Indígena
representado con las letras “PI” en las posiciones 11 y 12. De ser así reemplazamos la posición 11 (letra “P”)
por el número 7 y la posición 12 (letra “I”) por el número 9.
Ruc ejemplo 9.
0 0 0 0 0 0 0 N 0 8 P I 0 0 1 0 0 0 8 0 Se reemplaza “PI” por
los números 7 y 9.

0 0 0 0 0 0 0 5 0 8 7 9 0 0 1 0 0 0 8 0

3
De ser incierta entonces puede ser un RUC denominado Antes de la Vigencia que se identifica con una “AV” en la posición
11 y 12. De ser así reemplazamos la posición 11 de RUCTB (letra “A”) por el número 1 y la posición 12 de RUCTB (letra
“V” ) por el número 5.
Ruc ejemplo 7.
0 0 0 0 0 0 0 N 0 8 A V 0 0 1 0 0 1 9 6 Se reemplaza “AV” por
los números 1 y 5.

0 0 0 0 0 0 0 5 0 8 1 5 0 0 1 0 0 1 9 6

Si las condiciones anteriores no se cumplen quiere decir que es un ruc natural de contexto normal.

A continuación la lista de valores:

Posición 6 y 7 de RUCTB

00 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ARR-VAL

Número correspondiente al digito.

0 1 2 3 4 5 6 7 8 9 1 2 3 4 7 8 9 2 3 4 5 6 7 8 9 ARR-DIG

Posición 6 y 7 de RUCTB

34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

Número correspondiente al digito.

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7

Si no hay correspondencia entre las posiciones 6 y 7 de RUCTB con la tabla ARR-VAL;


No se hace ningún cambio sobre el RUC y nos vamos directamente a la RUTINA CALCULA DV.
Fin de la Rutina de Referencia Cruzada

COMO CALCULAR YA EL DIGITO VERIFICADOR


Para el cálculo del DIGITO VERIFICADOR (DV) utilizaremos las siguientes variables de Trabajo:

Tabla RUCTB(N1) con ocurrencias.

Variable I tamaño del campo del RUC(20).


Variable J es el valor o peso que se utiliza para la operación del cálculo del Digito Verificador (DV); se le asigna inicialmente el valor de 2.
Variable NSUMA acumula los valores para el cálculo del DV.
Variable DVF contiene el resultado temporal de los valores del DV.
Variable RUCDV es la posición 21 de RUCTB utilizada para el cálculo del segundo valor del DV.
Variable DV compuesta por:
a. Variable DV1 contiene el valor del primer número del DV.
b. Variable DV2 contiene el valor del segundo número del DV.
Variable K índice de la tabla RUCTB.

Nos colocamos en la última posición del RUCTB y nos movemos de derecha a izquierda; para ello se genera un ciclo que va de mayor a menor o
sea va en decremento K-I-1 hasta que K sea igual a 1.

Este ciclo se efectúa 2 veces.


La primera vez “I” vale 20, para la segunda se le asigna un valor de “21”, para calcular los dígitos verificadores DV1 y DV2.
Pregunta si la RUCTB de la posición “K” < 0 origina un error y sale del ciclo.

Para el cálculo del primer valor del digito.

I = 20

4
J=2
NSUMA = 0

Ver Rutina CALCULA DV


Luego que calcula el primer digito del digito verificador; lo mueve a la posición 21
De la tabla RUCTB y además a la primera posición del DV denominada DV1.

Nos vamos directamente a la rutina que calcula el Digito Verificador (Rutina CALCULA DV).

Fin de la Rutina de Personas Naturales y Números Tributarios.

Rutinas Personas Jurídicas


Si la posición 8 del RUC es diferente de “N” indica que se trata de un RUC Persona Jurídica.

Por limitantes anteriores en nuestro formato de RUC (13 posiciones); utilizamos una combinación de letras y caracteres para grabar los datos del
TOMO. Este formato nos obliga a mantener en nuestro cálculo de DV el mismo dígito para los Ruc’s ya inscritos antes de efectuarse la
conversación al formato hoy existente (20 posiciones).
Por lo cual debemos manejar una condición especial de referencia cruzada en los Ruc’s antiguos que se identifican de la siguiente forma:

Si la posición 4 del RUCTB es igual al número 0 y la posición 5 es igual al número 0 y la posición 6 es menor que el número 5; indica que es un
RUC antiguo y para indicar esto encendemos un FLAG
(SW=1) y vamos a una Rutina de Referencia Cruzada, (vea el siguiente ejemplo).

Ruc ejemplo 1.
0 0 0 0 0 1 0 1 0 2 0 0 6 4 1 0 3 4 6 2

Si la posición 6 es menor que 5.


Si la posición 5 es igual a 0. Si esto se cumple encendemos el flan SW = 1.
Si la posición 4 es igual a cero

Fin de la Rutina

Rutina de Referencia Cruzada


Verificamos si las posiciones 6 y 7 del RUCTB corresponden al valor de la tabla ARR – VAL
Utilizada para efectuar la referencia cruzada con el valor final que se reemplaza en RUCTB
para luego calcular el Digito Verificador (DV).

Ruc ejemplo 1.
0 0 0 0 0 1 0 1 0 2 0 0 6 4 1 0 3 4 6 2

Si las posiciones 6 y 7 son iguales a cualquier valor de la tabla ARR-VAL se reemplazan


las posiciones 6 y 7 con el valor correspondiente de la tabla ARR-DG.

Si la condición se cumple se reemplazan por el valor de cálculo:

0 0 0 0 0 0 1 1 0 2 0 0 6 4 1 0 3 4 6 2

Se reemplaza con el número 1 ya que el 10 de ARR-VAL corresponde al número 1 de la tabla


ARR-DIG.

S e reemplaza con el número 0.

Luego se procede a hacer el cálculo del segundo digito; y para esto se asignan los siguientes valores:

I = 21

5
J = 02
NSUMA = 0

Ver RUTINA CALCULA DV

Luego de calcular el segundo digito del digito verificador (DV) lo mueve a DV2, que representa el segundo digito de DV de salida.

Rutina CALCULA DV

Genera un ciclo para K disminuyéndose hasta que sea igual a 1.

Luego verifica si “J” tiene valor de 12 y el SW (indica ruc formato antiguo) = 1


Si esta condición se cumple disminuye “J” en 1 y asigna a SW el valor de 2
para que no entre por segunda vez en esta condición.

Luego de multiplicar el peso (J) por el dígito del RUC correspondiente a la posición K, el
Resultado se acumula en NSUMA
NSUMA = NSUMA + j * RUCTB(K)

Luego a J se le suma 1.
J=J+1

Cuando termina de efectuar el ciclo de K de I a 1, o sea que


ya NSUMA tiene el producto de todos los valores se pregunta:

Si NSUMA es mayor que 0 entonces dividimos NSUMA entre el DIVISOR (11)


y el remanente se guarda.
Luego se pregunta por la siguiente condición.
Si el remanente es igual a “0” ó si el remanente es igual a “1” y el DIVISOR es igual
A “11” el digito calculado será igual a “0”
De no ser así el digito verificador calculado será igual al DIVISOR menos el
Remanente

Fin de la Rutina CALCULA DV

Ejemplo # 1 para cálculo de Digito Verificador Jurídico Formato Viejo


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de
Entrada
Posiciones 0 0 0 0 0 1 0 1 0 2 0 0 6 4 1 0 3 4 6 2
DV
Entrada
DV1 DV2
RUCTB

RUCT DV-AUX
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
Justificado a
0 0 0 0 0 1 0 1 0 2 0 0 6 4 1 0 3 4 6 2 la derecha en
RUC-T
Los Espacios en blanco se reemplazan con ceros (0).

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 1 0 1 0 2 0 0 6 4 1 0 3 4 6 2

6
Como vemos la posición 4 y 5 son 0 y la posición 6 es menor que 5 por lo que se enciende el flag SW=1

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Los espacios en


blanco
0 0 0 0 0 0 1 1 0 2 0 0 6 4 1 0 3 4 6 2 se reemplazan
con 0.

Como la posición 6 y 7 del cuadro anterior corresponden al


Segundo valor de la tabla ARR-VAL se reemplaza por el valor
SW 1 Correspondiente de la tabla ARR-DG que en este caso es 1.

Iª Vez IIª Vez Primer DV (DV1)

RUCTB RUCTB

K=I–1 (K) J J*RUCTB NSUMA K=I–1 (K) J J*RUCTB NSUMA


20 2 2 4 4 21 3 2 6 6
19 6 3 18 22 20 2 3 6 12
18 4 4 16 38 19 6 4 24 36
17 3 5 15 53 18 4 5 20 56
16 0 6 0 53 17 3 6 18 74
15 1 7 7 60 16 0 7 0 74
14 4 8 32 92 15 1 8 8 82
13 6 9 54 146 14 4 9 36 118
12 0 10 0 146 13 6 10 60 178
11 0 11 0 146 12 0 11 0 178
10 2 11 22 168 11 0 11 0 178
9 0 12 0 168 10 2 12 24 202
8 1 13 13 181 9 0 13 0 202
7 1 14 14 195 8 1 14 14 216
6 0 15 0 195 7 1 15 15 231
5 0 16 0 195 6 0 16 0 231
4 0 17 0 195 5 0 17 0 231
3 0 18 0 195 4 0 18 0 231
2 0 19 0 195 3 0 19 0 231
1 0 20 0 195 2 0 20 0 231
Cociente Remanente 1 0 21 0 231
3 0 DV Entrada
195/11 = 17 8 Cociente Remanente
3 DV Entrada 231/11 = 21 0 DV1 DV2
DV1 DV2

Digito = 11 - Remanente Digito = 11 - Remanente

Si el remanente es 0, 1 el DV calculado es = 0

Ejemplo # 2 para cálculo de Digito Verificador Jurídico Formato Viejo


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de
Entrada
Posiciones 0 0 0 0 0 0 1 1 0 2 0 0 8 5 1 1 7 2 1 1
DV
Entrada
DV1 DV2
RUCTB

RUCT DV-AUX
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
Justificado a
0 0 0 0 0 1 1 0 2 0 0 8 5 1 1 7 2 1 1 la derecha en
RUC-T
Los Espacios en blanco se reemplazan con ceros (0).

7
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 0 1 1 0 2 0 0 8 5 1 1 7 2 1 1

Como vemos la posición 4 y 5 son 0 y la posición 6 es menor que 1 por lo que se enciende el flag SW=1

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Los espacios


en blanco
0 0 0 0 0 0 1 1 0 2 0 0 8 5 1 1 7 2 1 1 se
reemplazan
con 0.

Como la posición 6 y 7 del cuadro anterior corresponden al


Segundo valor de la tabla ARR-VAL se reemplaza por el valor
SW 1 Correspondiente de la tabla ARR-DG que en este caso es 1.

Iª Vez IIª Vez Primer DV (DV1)

RUCTB RUCTB

K=I–1 (K) J J*RUCTB NSUMA K=I–1 (K) J J*RUCTB NSUMA


20 1 2 2 2 21 9 2 18 18
19 1 3 3 5 20 1 3 3 21
18 2 4 8 13 19 1 4 4 25
17 7 5 35 48 18 2 5 10 35
16 1 6 6 54 17 7 6 42 77
15 1 7 7 61 16 1 7 7 84
14 5 8 40 101 15 1 8 8 92
13 8 9 72 173 14 5 9 45 137
12 0 10 0 173 13 8 10 80 217
11 0 11 0 173 12 0 11 0 217
10 2 11 22 195 11 0 11 0 217
9 0 12 0 195 10 2 12 24 241
8 1 13 13 208 9 0 13 0 241
7 1 14 14 222 8 1 14 14 255
6 0 15 0 222 7 1 15 15 270
5 0 16 0 222 6 0 16 0 270
4 0 17 0 222 5 0 17 0 270
3 0 18 0 222 4 0 18 0 270
2 0 19 0 222 3 0 19 0 270
1 0 20 0 222 2 0 20 0 270
Cociente Remanente 1 0 21 0 270
9 5 DV Entrada
222/11 = 20 2 Cociente Remanente
9 DV Entrada 270/11 = 24 6 DV1 DV2
DV1 DV2

Digito = 11 - Remanente Digito = 11 - Remanente

Si el remanente es 0, 1 el DV calculado es = 0
Ejemplo # 3 para cálculo de Digito Verificador Jurídico Formato Nuevo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de
Entrada
Posiciones 0 0 0 0 0 0 6 1 3 0 2 0 0 1 4 1 2 3 4 1
DV
Entrada
DV1 DV2
RUCTB

RUCT DV-AUX
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
Justificado a
0 0 0 0 6 1 3 0 2 0 0 1 4 1 2 3 4 1 1 la derecha en RUC-T
Los Espacios en blanco se reemplazan con ceros (0).

8
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 6 1 3 0 2 0 0 1 4 1 2 3 4 1 1

Como vemos la posición 6 es mayor que el número 5 por lo cual


No enciende el flag SW y lo deja en 0.

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Los espacios


en blanco
0 0 0 0 0 6 1 3 0 2 0 0 1 4 1 2 3 4 1 1 se
reemplazan
con 0.

Como la condición anterior no se cumple no reemplaza a ningún


valor quedando el ruc en forma intacta.
SW
Primer DV (DV1)
Iª Vez IIª Vez

RUCTB RUCTB

K=I–1 (K) J J*RUCTB NSUMA K=I–1 (K) J J*RUCTB NSUMA


20 1 2 2 2 21 2 2 4 4
19 1 3 3 5 20 1 3 3 7
18 4 4 16 21 19 1 4 4 11
17 3 5 15 36 18 4 5 20 31
16 2 6 12 48 17 3 6 18 49
15 1 7 7 55 16 2 7 14 63
14 4 8 32 87 15 1 8 8 71
13 1 9 9 96 14 4 9 36 107
12 0 10 0 96 13 1 10 10 117
11 0 11 0 96 12 0 11 0 117
10 2 12 24 120 11 0 12 0 117
9 0 13 0 120 10 2 13 26 143
8 3 14 42 162 9 0 14 0 143
7 1 15 15 177 8 3 15 45 188
6 6 16 96 273 7 1 16 16 204
5 0 17 0 273 6 6 17 102 306
4 0 18 0 273 5 0 18 0 306
3 0 19 0 273 4 0 19 0 306
2 0 20 0 273 3 0 20 0 306
1 0 21 0 273 2 0 21 0 306
Cociente Remanente 1 0 22 0 306
2 2 DV Entrada
273/11 = 24 9 Cociente Remanente
2 DV Entrada 306/11 = 27 9 DV1 DV2
DV1 DV2

Digito = 11 - Remanente Digito = 11 - Remanente

Si el remanente es 0, 1 el DV calculado es = 0
Ejemplo # 4 para cálculo de Digito Verificador Natural Formato Normal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de
Entrada
Posiciones N 0 8 2 7 4 0 0 1 2 5
DV
Entrada
DV1 DV2
RUCTB

RUCT DV-AUX
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
Justificado a

9
N 0 8 2 7 4 0 0 1 2 5 la derecha en
RUC-T
Los espacios en blanco se reemplazan con ceros (0).

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 N 0 8 0 0 2 7 4 0 0 1 2 5

Como vemos la posición 8 es “N” y la reemplazamos con el número 5.

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Los espacios


en blanco
0 0 0 0 0 0 0 5 0 8 0 0 2 7 4 0 0 1 2 5 se
reemplazan
con 0.

Iª Vez IIª Vez

RUCTB RUCTB

K=I–1 (K) J J*RUCTB NSUMA K=I–1 (K) J J*RUCTB NSUMA


20 5 2 10 10 21 9 2 18 18
19 2 3 6 16 20 5 3 15 33
18 1 4 4 20 19 2 4 8 41
17 0 5 0 20 18 1 5 5 46
16 0 6 0 20 17 0 6 0 46
15 4 7 28 48 16 0 7 0 46
14 7 8 56 104 15 4 8 32 78
13 2 9 18 122 14 7 9 63 141
12 0 10 0 122 13 2 10 20 161
11 0 11 0 122 12 0 11 0 161
10 8 12 96 218 11 0 12 0 161
9 0 13 0 218 10 8 13 104 265
8 5 14 70 288 9 0 14 0 265
7 0 15 0 288 8 5 15 75 340
6 0 16 0 288 7 0 16 0 340
5 0 17 0 288 6 0 17 0 340
4 0 18 0 288 5 0 18 0 340
3 0 19 0 288 4 0 19 0 340
2 0 20 0 288 3 0 20 0 340
1 0 21 0 288 2 0 21 0 340
Cociente Remanente 1 0 22 0 340
9 1 DV Entrada
288/11 = 26 2 Cociente Remanente
9 DV Entrada 340/11 = 30 10 DV1 DV2
DV1 DV2

Digito = 11 - Remanente Digito = 11 - Remanente

Si el remanente es 0, 1 el DV calculado es = 0

Ejemplo # 4a para cálculo de Digito Verificador Natural Formato 4 posiciones


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de
Entrada
Posiciones N 0 8 2 7 4 3 0 1 2 5 3
DV
Entrada
DV1 DV2
RUCTB

RUCT DV-AUX

10
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
Justificado a
N 0 8 2 7 4 3 0 1 2 5 3 la derecha en
RUC-T
Los espacios en blanco se reemplazan con ceros (0).

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 0 N 0 8 0 0 2 7 4 3 0 1 2 5 3

Como vemos la posición 7 es “N” y la reemplazamos con el número 5.

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Los espacios


en blanco
0 0 0 0 0 0 5 0 8 0 0 2 7 4 3 0 1 2 5 3 se
reemplazan
con 0.

Iª Vez IIª Vez

RUCTB RUCTB

K=I–1 (K) J J*RUCTB NSUMA K=I–1 (K) J J*RUCTB NSUMA


20 3 2 6 6 21 3 2 6 6
19 5 3 15 21 20 3 3 9 15
18 2 4 8 29 19 5 4 20 35
17 1 5 5 34 18 2 5 10 45
16 0 6 0 34 17 1 6 6 51
15 3 7 21 55 16 0 7 0 51
14 4 8 32 87 15 3 8 24 75
13 7 9 63 150 14 4 9 36 111
12 2 10 20 170 13 7 10 70 181
11 0 11 0 170 12 2 11 22 203
10 0 12 96 170 11 0 12 0 203
9 8 13 104 274 10 0 13 0 203
8 0 14 0 274 9 8 14 112 315
7 5 15 75 349 8 0 15 0 315
6 0 16 0 349 7 5 16 80 395
5 0 17 0 349 6 0 17 0 395
4 0 18 0 349 5 0 18 0 395
3 0 19 0 349 4 0 19 0 395
2 0 20 0 349 3 0 20 0 395
1 0 21 0 349 2 0 21 0 395
ciente Remanente 1 0 22 0 395
3 1 DV Entrada
349/11 = 31 2 Cociente Remanente
3 DV Entrada 395/11 = 35 10 DV1 DV2
DV1 DV2

Digito = 11 - Remanente Digito = 11 - Remanente

Si el remanente es 0, 1 el DV calculado es = 0

Ejemplo # 5 para calculo de Digito Verificador ruc Natural Naturalizado


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de
Entrada
Posiciones N 0 8 N T 0 0 1 0 0 0 2 4
DV
Entrada
DV1 DV2

11
RUCTB

RUCT DV-AUX
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
Justificado a
N 0 8 N T 0 0 1 0 0 0 2 4 la derecha en
RUC-T
Los espacios en blanco se reemplazan con ceros (0).

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 0 0 N 0 8 N T 0 0 1 0 0 0 2 4
Este ruc es un Naturalizado, la posición 8 es una “N” y la
reemplazamos por el número 5, como la posición 11 y 12 “NT”
reemplazamos la posición 11 con el número 4 y la posición 12 con el número 3.

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Los espacios en


blanco
0 0 0 0 0 0 0 5 0 8 4 3 0 0 1 0 0 0 2 4 se reemplazan
con 0.

Primer DV (DV1)

Iª Vez IIª Vez

RUCTB RUCTB

K=I–1 (K) J J*RUCTB NSUMA K=I–1 (K) J J*RUCTB NSUMA


20 4 2 8 8 21 3 2 6 6
19 2 3 6 14 20 4 3 12 18
18 0 4 0 14 19 2 4 8 26
17 0 5 0 14 18 0 5 0 26
16 0 6 0 14 17 0 6 0 26
15 1 7 7 21 16 0 7 0 26
14 0 8 0 21 15 1 8 8 34
13 0 9 0 21 14 0 9 0 34
12 3 10 30 51 13 0 10 0 34
11 4 11 44 95 12 3 11 33 67
10 8 12 96 191 11 4 12 48 115
9 0 13 0 191 10 8 13 104 219
8 5 14 70 261 9 0 14 0 219
7 0 15 0 261 8 5 15 75 294
6 0 16 0 261 7 0 16 0 294
5 0 17 0 261 6 0 17 0 294
4 0 18 0 261 5 0 18 0 294
3 19 0 261 4 0 19 0 294
2 0 20 0 261 3 0 20 0 294
1 0 21 0 261 2 0 21 0 294
Cociente Remanente 1 0 22 0 294
3 3 DV Entrada
261/11 = 23 8 Cociente Remanente
3 DV Entrada 294/11 = 26 8 DV1 DV2
DV1 DV2

Digito = 11 - Remanente Digito = 11 - Remanente

Si el remanente es 0, 1 el DV calculado es = 0

Ejemplo # 6 para cálculo de Digito Verificador Número Tributario Jurídico


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de
Entrada
Posiciones 0 0 8 N T 0 0 1 0 0 4 1 9

12
DV Entrada
DV1 DV2
RUCTB

RUCT DV-AUX
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
Justificado a
0 0 0 0 8 N T 0 0 1 0 0 4 1 9 la derecha en
RUC-T
Los espacios en blanco se reemplazan con ceros (0).

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 0 0 0 0 8 N T 0 0 1 0 0 4 1 9
Este ruc es jurídico, la posición 11 es una “N” y

reemplazamos la posición 11 con el número 4 y la posición 12 con el numero 3.

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Los espacios


en blanco
0 0 0 0 0 0 0 0 0 8 4 3 0 0 1 0 0 4 1 9 se
reemplazan
con 0.

Primer DV (DV1)
Iª Vez IIª Vez

RUCTB RUCTB

K=I–1 (K) J J*RUCTB NSUMA K=I–1 (K) J J*RUCTB NSUMA


20 9 2 18 18 21 2 2 6 12
19 1 3 3 21 20 9 3 27 39
18 4 4 16 37 19 1 4 4 43
17 0 5 0 37 18 4 5 20 63
16 0 6 0 37 17 0 6 0 63
15 1 7 7 44 16 0 7 0 63
14 0 8 0 44 15 1 8 8 71
13 0 9 0 44 14 0 9 0 71
12 3 10 30 74 13 0 10 0 71
11 4 11 44 118 12 3 11 33 104
10 8 12 96 214 11 4 12 48 152
9 0 13 0 214 10 8 13 104 256
8 0 14 0 214 9 0 14 0 256
7 0 15 0 214 8 0 15 0 256
6 0 16 0 214 7 0 16 0 256
5 0 17 0 214 6 0 17 0 256
4 0 18 0 214 5 0 18 0 256
3 0 19 0 214 4 0 19 0 256
2 0 20 0 214 3 0 20 0 256
1 0 21 0 214 2 0 21 0 256
Cociente Remanente 1 0 22 0 256
6 8 DV Entrada
214/11 = 25 5 Cociente Remanente
6 DV Entrada 256/11 = 29 3 DV1 DV2
DV1 DV2

Digito = 11 - Remanente Digito = 11 - Remanente

Si el remanente es 0, 1 el DV calculado es = 0

Ejemplo # 7 para cálculo de Digito Verificador Natural Panameño Extranjero


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de

13
Entrada
Posiciones N 0 0 P E 0 0 1 0 0 0 1 9
DV Entrada
DV1 DV2
RUCTB

RUCT DV-AUX
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
Justificado a
N 0 0 P E 0 0 1 0 0 0 1 9 la derecha en RUC-T
Los espacios en blanco se reemplazan con ceros (0).

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 0 0 N 0 0 P E 0 0 1 0 0 0 1 9
Este ruc es Panameño Extranjero, la posición 8 es “N” y la
reemplazamos por el número 5, como la posición 11 y 12 “PE”
reemplazamos la posición 11 con el número 7 y la posición 12 con el numero 5.

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Los espacios en


blanco
0 0 0 0 0 0 0 5 0 0 7 5 0 0 1 0 0 0 1 9 se reemplazan
con 0.

Primer DV (DV1)

Iª Vez IIª Vez

RUCTB RUCTB

K=I–1 (K) J J*RUCTB NSUMA K=I–1 (K) J J*RUCTB NSUMA


20 9 2 18 18 21 6 2 12 12
19 1 3 3 21 20 9 3 27 39
18 0 4 0 21 19 1 4 4 43
17 0 5 0 21 18 0 5 0 43
16 0 6 0 21 17 0 6 0 43
15 1 7 7 28 16 0 7 0 43
14 0 8 0 28 15 1 8 8 51
13 0 9 0 28 1 0 9 0 51
12 5 10 50 78 13 0 10 0 51
11 7 11 77 155 12 5 11 55 106
10 0 12 0 155 11 7 12 84 190
9 0 13 0 155 10 0 13 0 190
8 5 14 70 225 9 0 14 0 190
7 0 15 0 225 8 5 15 75 265
6 0 16 0 225 7 0 16 0 265
5 0 17 0 225 6 0 17 0 265
4 0 18 0 225 5 0 18 0 265
3 0 19 0 225 4 0 19 0 265
2 20 0 225 3 0 20 0 265
1 0 21 0 225 2 0 21 0 265
Cociente Remanente 1 0 22 0 265
6 0 DV Entrada
225/11 = 20 5 Cociente Remanente
6 DV Entrada 265/11 = 24 1 DV1 DV2
DV1 DV2

Digito = 11 - Remanente Digito = 11 - Remanente

Si el remanente es 0, 1 el DV calculado es = 0

14
Ejemplo # 8 para cálculo de Digito Verificador Natural Extranjero
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de
Entrada
Posiciones N 0 0 E 0 0 1 0 0 0 1 1
DV Entrada
DV1 DV2
RUCTB

RUCT DV-AUX
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
Justificado a
N 0 0 E 0 0 1 0 0 0 1 1 la derecha en
RUC-T
Los espacios en blanco se reemplazan con ceros (0).

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 0 0 N 0 0 E 0 0 0 1 0 0 0 1 1
Este ruc es Extranjero, la posición 8 es “N” y la
reemplazamos por el número 5, como la posición 11 es una “E”
la reemplazamos con el número 5.

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Los espacios


en blanco
0 0 0 0 0 0 0 5 0 0 5 0 0 0 1 0 0 0 1 1 se
reemplazan
con 0.

Primer DV (DV1)

Iª Vez IIª Vez

RUCTB RUCTB

K=I–1 (K) J J*RUCTB NSUMA K=I–1 (K) J J*RUCTB NSUMA


20 1 2 2 2 21 6 2 12 12
19 1 3 3 5 20 1 3 3 15
18 0 4 0 5 19 1 4 4 19
17 0 5 0 5 18 0 5 0 19
16 0 6 0 5 17 0 6 0 19
15 1 7 7 12 16 0 7 0 19
14 0 8 0 12 15 1 8 8 27
13 0 9 0 12 14 0 9 0 27
12 0 10 0 12 13 0 10 0 27
11 5 11 55 67 12 0 11 0 27
10 0 12 0 67 11 5 12 60 87
9 0 13 0 67 10 0 13 0 87
8 5 14 70 137 9 0 14 0 87
7 0 15 0 137 8 5 15 75 162
6 0 16 0 137 7 0 16 0 162
5 0 17 0 137 6 0 17 0 162
4 0 18 0 137 5 0 18 0 162
3 0 19 0 137 4 0 19 0 162
2 0 20 0 137 3 0 20 0 162
1 0 21 0 137 2 0 21 0 162
Cociente Remanente 1 0 22 0 162
6 3 DV Entrada
137/11 = 12 5 Cociente Remanente
6 DV Entrada 162/11 = 14 8 DV1 DV2
DV1 DV2

Digito = 11 - Remanente Digito = 11 - Remanente

15
Si el remanente es 0, ó 1 el DV calculado es = 0

Ejemplo # 9 para cálculo de Digito Verificador Natural Panameño Indígena


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de
Entrada
Posiciones N 0 8 P I 0 0 1 0 0 0 8 0
DV Entrada
DV1 DV2
RUCTB

RUCT DV-AUX
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
Justificado a
N 0 8 P I 0 0 1 0 0 0 8 0 la derecha en
RUC-T
Los espacios en blanco se reemplazan con ceros (0).

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 0 0 N 0 8 P I 0 0 1 0 0 0 8 0
Este ruc es Extranjero, la posición 8 es “N” y la
reemplazamos por el número 5, como la posición 11 y 12 son “PI”
reemplazamos la posición 11 con el número 7 y la posición 12 con el número 9.

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 20 Los espacios


en blanco
0 0 0 0 0 0 0 5 0 8 7 9 0 0 1 0 0 0 8 0 se
reemplazan
con 0.

Primer DV (DV1)
Iª Vez IIª Vez

RUCTB RUCTB

K=I–1 (K) J J*RUCTB NSUMA K=I–1 (K) J J*RUCTB NSUMA


20 0 2 0 0 21 0 2 0 0
19 8 3 24 24 20 0 3 0 0
18 0 4 0 24 19 8 4 32 32
17 0 5 0 24 18 0 5 0 32
16 0 6 0 24 17 0 6 0 32
15 1 7 7 31 16 0 7 0 32
14 0 8 0 31 15 1 8 8 40
13 0 9 0 31 14 0 9 0 40
12 9 10 90 121 13 0 10 0 40
11 7 11 77 198 12 9 11 99 139
10 8 12 96 294 11 7 12 84 223
9 0 13 0 294 10 8 13 104 327
8 5 14 70 364 9 0 14 0 327
7 0 15 0 364 8 5 15 75 402
6 0 16 0 364 7 0 16 0 402
5 0 17 0 364 6 0 17 0 402
4 0 18 0 364 5 0 18 0 402
3 0 19 0 364 4 0 19 0 402
2 0 20 0 364 3 0 20 0 402
1 0 21 0 364 2 0 21 0 402
Cociente Remanente 1 0 22 0 402
0 5 DV Entrada
268/11 = 33 1 Cociente Remanente
0 DV Entrada 312/11 = 36 6 DV1 DV2
DV1 DV2

Digito = 11 - Remanente Digito = 11 - Remanente

16
Si el remanente es 0, ó 1 el DV calculado es = 0
Ejemplo # 10 para calculo de Digito Verificador Natural Antes de la Vigencia
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Ruc de
Entrada
Posiciones N 0 8 A V 0 0 1 0 0 1 9 6
DV Entrada
DV1 DV2
RUCTB

RUCT DV-AUX
Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Ruc
Justificado a
N 0 8 A V 0 0 1 0 0 1 9 6 la derecha
en RUC-T
Los espacios en blanco se reemplazan con ceros (0).

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 0 0 0 0 0 0 N 0 8 A V 0 0 1 0 0 1 9 6
Este ruc Antes de la Vigencia , la posición 8 es una “N” y la
reemplazamos por el número 5, como la posición 11 y 12 son “AV”
reemplazamos la posición 11con el número 1 y la posición 12 con el número 5.

Posiciones 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Los
espacios en
blanco
0 0 0 0 0 0 0 5 0 8 1 5 0 0 1 0 0 1 9 6 se
reemplazan
con 0.

Primer DV (DV1)
Iª Vez IIª Vez

RUCTB RUCTB

K=I–1 (K) J J*RUCTB NSUMA K=I–1 (K) J J*RUCTB NSUMA


20 6 2 12 12 21 9 2 18 18
19 9 3 27 39 20 6 3 18 36
18 1 4 4 43 19 9 4 36 72
17 0 5 0 43 18 1 5 5 77
16 0 6 0 43 17 0 6 0 77
15 1 7 7 50 16 0 7 0 77
14 0 8 0 50 5 1 8 8 85
13 0 9 0 50 14 0 9 0 85
12 5 10 50 100 13 0 10 0 85
11 1 11 11 111 12 5 11 55 140
10 8 12 96 207 11 1 12 12 152
9 0 13 0 207 10 8 13 104 256
8 5 14 70 277 9 0 14 0 256
7 0 15 0 277 8 5 15 75 331
6 0 16 0 277 7 0 16 0 331
5 0 17 0 277 6 0 17 0 331
4 0 18 0 277 5 0 18 0 331
3 0 19 0 277 4 0 19 0 331
2 0 20 0 277 3 0 20 0 331
1 0 21 0 277 2 0 21 0 331
Cociente Remanente 1 0 22 0 331
9 0 DV Entrada
277/11 = 33 2 Cociente Remanente
9 DV Entrada 331/11 = 30 1 DV1 DV2
DV1 DV2

Digito = 11 - Remanente Digito = 11 - Remanente

17
Si el remanente es 0, ó 1 el DV calculado es = 0

18

También podría gustarte