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

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

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

Validar CNPJ com SQL Server

Caso a sua necessidade seja validar o CNPJ utilizando PHP, consulte o artigo a seguir:

Validando CPF e CNPJ com PHP

 

Outros conteudos que podem ser de seu interesse

Calculando a idade usando SQL Server
23/09/2019SQL

Calculando a idade usando SQL Server

Aprenda a calcular a idade usando o SQL Server

Saiba mais...
Verificando a estrutura da tabela pelo terminal no MYSQL
27/10/2019SQL

Verificando a estrutura da tabela pelo terminal no MYSQL

Veja a estrutura e os indices da tabela pelo terminal

Saiba mais...

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