Como funciona a lógica da validação do CNPJ

 

Neste artigo você vai aprender como funciona o cálculo de verificação do CNPJ.

O cadastro de pessoas júridicas (CNPJ) é o registro de uma empresa na Receita Federal do Brasil.

O número de CNPJ é composto por 14 dígitos. Os 12 primeiros são os números base, e os 2 últimos são os chamados dígitos verificadores, que são utilizados para validar se os 12 números base estão corretos. É importante lembrar que mesmo que o número seja válido, isso não quer dizer que ele  esteja cadastrado na Receita Federal. 

Os quatro números que estão no final do número base, antes dos dígitos verificadores, servem para identificar se aquele CNPJ é de uma matriz ou filial. Se for matriz, estes números vão ser "0001".

Não existem CNPJs onde todos os números sejam iguais entre si.

Vamos fazer passo a passo a verificação de um número de CNPJ gerado de forma aleatório atráves da utilização de um site gerador de CNPJ. Existem vários sites que fazem isso, você pode escolher qual quiser. O número gerado foi 58577114000189

O primeiro dígito verificador é o "8" (posição 13) e o segundo é o "9" (posição 14).

A primeira validação é multiplicar cada número base em separado, pelos números a seguir, nesta ordem: 5,4,3,2,9,8,7,6,5,4,3 e 2. Perceba que nesta sequência o número 1 ficou de fora, e os números 5,4,3 e 2 aparecem duas vezes.

 

5 x 5 = 25

8 x 4 = 32

5 x 3 = 15

7 x 2 = 14

7 x 9 = 63

1 x 8 = 8

1 x 7 = 7

4 x 6 = 24

0 x 5 = 0

0 x 4 = 0

0 x 3 = 0

1 x 2 = 2

 

Agora vamos somar os resultados obtidos por cada coluna.

 

25 + 32 + 15 + 14 + 63 + 8 + 7 + 24 + 0 + 0 + 0 + 2 = 190

 

Depois, se divide o resultado por 11:

 

190 /11 = 17,27

 

Vamos pegar o resto desta divisão

 

Resto = 190 - (11 * 17) = 3

 

REGRA 1: Se o resto for 0 ou 1, então o primeiro dígito verificador é igual a 0.

REGRA 2: Se o resto for 2, 3, 4, 5, 6, 7, 8, 9 ou 10, então o primeiro dígito verificador é a diferença entre o número 11 e o resto da divisão por 11

Em nosso exemplo, se aplica a Regra 2

Primeiro dígito verificador: 11 - 3 = 8

Agora vem a validação final, que é a do segundo dígito verificador. Será necessário multiplicar cada número base em separado, junto com o primeiro dígito verificador, pelos números a seguir, nesta ordem:  6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3 e 2.

 

5 x 6 = 30

8 x 5 = 40

5 x 4 = 20

7 x 3 = 21

7 x 2 = 14

1 x 9 = 9

1 x 8 = 8

4 x 7 = 28

0 x 6 = 0

0 x 5 = 0

0 x 4 = 0

1 x 3 = 3

8 x 2 = 16

 

30 + 40 + 20 + 21 + 14 + 9 + 8 + 28 + 0 + 0 + 0 + 3 + 16 = 189

 

Depois, se divide o resultado por 11:

 

189/ 11 = 17,18

 

Vamos pegar o resto desta divisão

 

Resto = 189 - (11 * 17) = 2

 

REGRA 1: Se o resto for 0 ou 1, então o segundo dígito verificador será igual a 0.

REGRA 2: Se  o resto for 2, 3, 4, 5, 6, 7, 8, 9 ou 10, então o segundo dígito verificador é a diferença entre o número 11 e o resto da divisão por 11

Em nosso exemplo, se aplica a Regra 2

Segundo dígito verificador: 11 - 2 = 9

Desta forma, chegamos aos dois dígitos verificadores, que são "89"

Se você deseja ver como implementar uma validação de CNPJ utilizando o MySQL, consulte o artigo a seguir:

Validar CNPJ com MySQL

 

Quer conferir mais dicas sobre banco de dados? Clique aqui e veja mais dicas!
BINS - Blog SQL

 

Conteúdo sobre banco de dados sem complicação!

MySQL - Referência Rápida

 

SQL Server - Referência Rápida

 

SQL vs Mongo

 

 

 

Veja outros conteúdos que podem ser de seu interesse