Como Calcular CNPJ Passo a Passo
O CNPJ utiliza um algoritmo baseado em módulo 11 para gerar seus dígitos verificadores. Essa técnica é utilizada por sistemas empresariais, ERPs, integrações fiscais e aplicações corporativas.
Compreender esse cálculo é essencial para desenvolvedores que precisam validar cadastros e gerar dados de homologação.
Estrutura do CNPJ
12.345.678/0001-95
Os doze primeiros números representam a base do CNPJ. Os dois últimos são os dígitos verificadores.
Primeiro dígito verificador
Considere:
123456780001
Utilize os pesos:
5 4 3 2 9 8 7 6 5 4 3 2
Multiplique cada dígito pelo peso correspondente e some os resultados.
Aplique o cálculo módulo 11 para obter o primeiro dígito.
Segundo dígito verificador
Acrescente o primeiro DV calculado e utilize os pesos:
6 5 4 3 2 9 8 7 6 5 4 3 2
Repita o procedimento para gerar o segundo DV.
Código JavaScript
function calcularDigitoCNPJ(cnpjParcial){
const pesos =
cnpjParcial.length === 12
? [5,4,3,2,9,8,7,6,5,4,3,2]
: [6,5,4,3,2,9,8,7,6,5,4,3,2];
let soma = 0;
for(let i=0;i<pesos.length;i++){
soma += Number(cnpjParcial[i]) * pesos[i];
}
const resto = soma % 11;
return resto < 2 ? 0 : 11 - resto;
}
function validarCNPJ(cnpj){
cnpj = cnpj.replace(/\D/g,'');
const dv1 = calcularDigitoCNPJ(cnpj.substring(0,12));
const dv2 = calcularDigitoCNPJ(cnpj.substring(0,13));
return cnpj.endsWith(`${dv1}${dv2}`);
}
Perguntas Frequentes
Um CNPJ válido existe na Receita Federal?
Não necessariamente. O algoritmo apenas verifica a consistência matemática dos dígitos.
Posso usar CNPJ gerado para emissão fiscal?
Não. Os números gerados destinam-se exclusivamente a testes e homologação.
Por que o CNPJ utiliza módulo 11?
O método oferece alta eficiência na detecção de erros de digitação e transposição de números.