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.