Os dois últimos dígitos de um CNPJ não são escolhidos: eles são calculados a partir dos doze primeiros. É isso que permite a um sistema detectar na hora um número digitado errado, sem consultar nenhuma base. Com o CNPJ alfanumérico chegando em 2026, esse cálculo precisa lidar também com letras — e este guia mostra exatamente como.
Abaixo está o algoritmo completo, a tabela de conversão dos caracteres, um exemplo resolvido e uma função em JavaScript que valida tanto o formato numérico quanto o alfanumérico. Se você só quer conferir um número, use o Validador de CNPJ Alfanumérico, que mostra cada etapa do cálculo na tela.
O algoritmo: módulo 11, passo a passo
O dígito verificador (DV) do CNPJ usa o algoritmo do módulo 11. Ele é calculado em duas etapas — uma para cada dígito — seguindo sempre os mesmos passos:
- Converta cada caractere da base em um número (a regra de conversão está na próxima seção).
- Multiplique cada valor por um peso, que vai de 2 a 9 da direita para a esquerda e recomeça em 2 quando passa de 9.
- Some todos os produtos.
- Calcule o resto da divisão dessa soma por 11. Se o resto for menor que 2, o dígito é 0; caso contrário, o dígito é 11 menos o resto.
O primeiro DV usa as 12 posições da base. O segundo DV repete exatamente o mesmo processo, mas incluindo o primeiro dígito já calculado como 13º caractere.
A tabela de conversão dos caracteres
O que muda no CNPJ alfanumérico é apenas como cada caractere vira um número. A regra é simples e única: pegue o código ASCII do caractere e subtraia 48. Isso mantém os dígitos intactos e dá um valor consistente para cada letra.
| Caractere | Valor no cálculo |
|---|---|
| 0 a 9 | 0 a 9 (sem mudança) |
| A, B, C, D … | 17, 18, 19, 20 … |
| … W, X, Y, Z | … 39, 40, 41, 42 |
Fonte: Especificação do CNPJ alfanumérico (Serpro / Receita Federal).
Exemplo resolvido: 12.ABC.345/01DE-35
Vamos calcular os dígitos da base 12ABC34501DE, o exemplo oficial. Cada caractere vira um valor (1, 2, 17, 18, 19, 3, 4, 5, 0, 1, 20, 21), que é multiplicado pelo peso da sua posição e somado.
- 1º dígito: a soma dos produtos dá 459. O resto de 459 por 11 é 8. Como 8 é maior que 2, o dígito é 11 − 8 = 3.
- 2º dígito: repetindo a conta com o 3 incluído (12ABC34501DE3), a soma dá 424. O resto de 424 por 11 é 6, então o dígito é 11 − 6 = 5.
Juntando os dois, o CNPJ completo é 12.ABC.345/01DE-35. Você pode conferir esse mesmo passo a passo, com a tabela de pesos e produtos, abrindo “Ver o cálculo do dígito verificador” no validador.
Código pronto em JavaScript
A função abaixo valida um CNPJ numérico ou alfanumérico. Ela limpa a pontuação, separa a base dos dígitos verificadores, recalcula o DV pelo módulo 11 e compara com o informado:
function digito(base) {
let soma = 0;
let peso = 2;
for (let i = base.length - 1; i >= 0; i--) {
soma += (base.charCodeAt(i) - 48) * peso;
peso = peso === 9 ? 2 : peso + 1;
}
const resto = soma % 11;
return resto < 2 ? 0 : 11 - resto;
}
function cnpjValido(valor) {
const cnpj = valor.toUpperCase().replace(/[^0-9A-Z]/g, '');
if (cnpj.length !== 14) return false;
const base = cnpj.slice(0, 12);
const dv1 = digito(base);
const dv2 = digito(base + dv1);
return cnpj.slice(12) === String(dv1) + String(dv2);
}
cnpjValido('12.ABC.345/01DE-35'); // trueRepare que a função funciona para os dois formatos sem ramificações: como os dígitos 0 a 9 também passam pela conversão ASCII − 48 (e continuam valendo 0 a 9), o CNPJ numérico é apenas um caso particular do mesmo algoritmo.
Erros comuns ao implementar
- Usar parseInt nas letras. Letras não são dígitos — a conversão certa é pelo código ASCII menos 48, não por parse numérico.
- Esquecer de incluir o 1º DV no cálculo do 2º. O segundo dígito sempre usa 13 caracteres: a base mais o primeiro dígito.
- Aceitar dígitos verificadores com letra. As 12 primeiras posições podem ter letras, mas os 2 últimos caracteres são sempre numéricos.
- Guardar o CNPJ como número. Zeros à esquerda e letras se perdem — sempre trate como texto de 14 caracteres.
Validar e gerar sem reimplementar
Se você não quer manter o algoritmo na mão, dá para usar as ferramentas prontas: o Validador de CNPJ Alfanumérico confere qualquer número e mostra o cálculo, e o Gerador de CNPJ Alfanumérico cria CNPJs válidos de teste, em lote, para popular seus ambientes de homologação. Para o panorama completo da mudança, veja o guia sobre o novo formato do CNPJ em 2026.
Referências e leitura complementar
Veja seu primeiro concorrente em minutos
Trial de 14 dias, sem cartão. Em poucos minutos, a primeira detecção aparece no painel.
Criar conta grátis