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:
Se você deseja ver como implementar uma validação de CNPJ utilizando o SQL Server, consulte o artigo a seguir:
Caso a sua necessidade seja validar o CNPJ utilizando PHP, consulte o artigo a seguir: