SQL

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

05/09/2021SQL

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

Consultar uma API de CEP usando SQL Server
16/02/2020SQL

Consultar uma API de CEP usando SQL Server

Veja como consumir uma API de CEP com o SQL Server

Saiba mais...
Convertendo linhas em colunas no SQL Server usando PIVOT
07/02/2017SQL

Convertendo linhas em colunas no SQL Server usando PIVOT

Aprenda a transformar linhas em colunas no SQL Server

Saiba mais...

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

MySQL - Referência Rápida

 

SQL Server - Referência Rápida

 

SQL vs Mongo