sábado, 2 de março de 2013

Os dígitos verificadores do CPF/CNPJ

O CPF (Cadastro de Pessoa Física) e o CNPJ (Cadastro Nacional da Pessoa Jurídica) são cadastros para identificar uma pessoa perante a Receita Federal do Brasil. O CPF possui um número com 9 dígitos, denominado raiz, e o CNPJ possui um número com 12 dígitos, raiz mais sufixo. Estes números, são complementados por dígitos verificadores (DV), totalizando 11 dígitos no CPF e 14 dígitos no CNPJ. Estes dígitos verificadores servem para conferir a integridade e autenticidade do número, evitando erros de digitação, números falsos etc. O número do CPF tem o formato xxx.xxx.xxx-vv e o número do CNPJ tem o formato xx.xxx.xxx/xxxx-vv, os dígitos verificadores são os dois últimos, nos dois cadastros.

Cada dígito verificador é calculado separadamente e o primeiro entra no cálculo do segundo. O algoritmo do cálculo é denominado Módulo 11, cada dígito verificador é gerado pelo resto da divisão por 11, e o que é dividido é o somatório dos dígitos do número e seus respectivos pesos.

Os dígitos dos números do CPF e CNPJ recebem pesos antes de serem somados. Para o CPF o peso é crescente em uma unidade de 2 em diante, até a quantidade de dígitos. Para o CNPJ o peso também é crescente em uma unidade de 2 em diante mas até 9, retornando a 2 e repetindo a sequência até a quantidade de dígitos. Esta quantidade de dígitos é ampliada no cálculo do segundo DV pois o primeiro DV entra como parte do número raiz do CPF e CNPJ.

CPF:
Pesos do 1º DV: 2, 3, 4, 5, 6, 7, 8, 9, 10      (para os 9 dígitos do número)
Pesos do 2º DV: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11  (para os 9 dígitos do número mais o 1º DV)

CNPJ:
Pesos do 1º DV: 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5     (para os 12 dígitos do número)
Pesos do 2º DV: 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6  (para os 12 dígitos do número mais o 1º DV)

Os dígitos dos números recebem os pesos na ordem do menos significativo ao mais significativo, isto é, da direita para a esquerda. Então a sequência dos pesos fica invertida. Cada dígito é multiplicado ao seu respectivo peso. Os produtos são somados e então divididos por 11.

Cada dígito verificador é gerado a partir do resto desta divisão por 11. Se o resto for 0 ou 1 o dígito verificador será 0, se o resto for maior que 1 o dígito verificador será a subtração de 11 pelo resto. Esta regra é a mesma tanto no CPF como no CNPJ, o que mudam são somente os pesos.

Os exemplos a seguir mostram os cálculos dos dígitos verificadores de um número CPF e de um número CNPJ. Perceba que o primeiro peso da sequência vai para o dígito mais à direita. No cálculo do 1º DV este dígito mais à direita (menos significativo) é a unidade do número raiz no caso do CPF e a unidade do sufixo no caso do CNPJ. Já no cálculo do 2º DV o primeiro peso vai para o 1º DV, que entrou no número à direita:


CPF nº 147.258.369

(1x10)+(4x9)+(7x8)+(2x7)+(5x6)+(8x5)+(3x4)+(6x3)+(9x2)
   10 +  36 +  56 +  14 +  30 +  40 +  12 +  18 +  18  =  234

O resto da divisão de 234 por 11 é 3, portanto o 1º DV é 11-3, que é igual a 8. O CPF fica, por enquanto:

CPF nº 147.258.369-8

(1x11)+(4x10)+(7x9)+(2x8)+(5x7)+(8x6)+(3x5)+(6x4)+(9x3)+(8x2)
  11  +  40  +  63 +  16 +  35 +  48 +  15 +  24 +  27 +  16  =  295

O resto da divisão de 295 por 11 é 9, portanto o 2º DV é 11-9, que é igual a 2. O CPF completo é 147.258.369-82.


CNPJ nº 14.725.836/0001

(1x5)+(4x4)+(7x3)+(2x2)+(5x9)+(8x8)+(3x7)+(6x6)+(0x5)+(0x4)+(0x3)+(1x2)
  5  +  16 +  21 +  4  +  45 +  64 +  21 +  36 +  0  +  0  +  0  +  2  =  214

O resto da divisão de 214 por 11 é 5, portanto o 1º DV é 11-5, que é igual a 6. O CNPJ fica, por enquanto:

CNPJ nº 14.725.836/0001-6

(1x6)+(4x5)+(7x4)+(2x3)+(5x2)+(8x9)+(3x8)+(6x7)+(0x6)+(0x5)+(0x4)+(1x3)+(6x2)
  6  +  20 +  28 +  6  +  10 +  72 +  24 +  42 +  0  +  0  +  0  +  3  +  12 =  223

O resto da divisão de 223 por 11 é 3, portanto o 2º DV é 11-3, que é igual a 8. O CNPJ completo é 14.725.836/0001-68.


Estes cálculos são frequentemente utilizados em sistemas computacionais para testar a veracidade dos números. Impede erros de digitação e detecta números falsos caso alguém queira inventar um número mentalmente. Obviamente, é possível inventar fazendo todos os cálculos para os dígitos verificadores, no entanto, as pessoas normais precisam de pelo menos um lápis e um papel para isso.

Observações: Nos números de CNPJ emitidos antes de 1993 (nesta época ainda era chamado CGC), o 8º dígito (o menos significativo) é um DV módulo 10 dos sete dígitos anteriores. A partir de 1993 o CNPJ não foi mais gerado assim. Os números de CPF e CNPJ usados nos exemplos deste artigo foram inventados por mim, pela posição das teclas em meu teclado. Se estes números estão sendo utilizados por alguém, esta pessoa é sortuda, possui uma sequência de teclas.

Nenhum comentário:

Postar um comentário