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

Como localizar queries lentas no SQL Server
23/09/2019SQL

Como localizar queries lentas no SQL Server

Aprenda como localizar as queries que deixam o seu banco de dados lento

Saiba mais...
Como listar o tamanho das tabelas no SQL Server e no MySQL
25/09/2016SQL

Como listar o tamanho das tabelas no SQL Server e no MySQL

Veja como achar facilmente as tabelas que gastam mais espaço em seu banco de dados SQL Server ou MySQL!

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