Como validar um CNPJ: os dois dígitos verificadores
Um validador de CNPJ não consulta nenhum cadastro: ele refaz uma conta com os doze primeiros caracteres e compara o resultado com os dois últimos, chamados de dígitos verificadores (DV). O cálculo, descrito pela Receita Federal e pelo Serpro, usa o módulo 11. Se os dois DV calculados forem iguais aos digitados, o número é válido do ponto de vista matemático.
Para o primeiro DV, multiplica-se cada um dos 12 primeiros caracteres por um peso e soma-se tudo. Os pesos, de 2 a 9 da direita para a esquerda e recomeçando depois do oitavo caractere, ficam assim na ordem da esquerda para a direita: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2. Divide-se a soma por 11. Se o resto for 0 ou 1, o DV é 0; senão, o DV é 11 menos o resto. O segundo DV repete a conta com 13 caracteres (os 12 primeiros mais o primeiro DV) e pesos 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2.
Veja o CNPJ numérico 12.345.678/0001-95, o mesmo exemplo usado nas perguntas e respostas da Receita, calculado passo a passo. Para o primeiro DV, a base é 12.345.678/0001:
| Posição | Caractere | Valor | Peso | Produto |
|---|---|---|---|---|
| 1 | 1 | 1 | 5 | 5 |
| 2 | 2 | 2 | 4 | 8 |
| 3 | 3 | 3 | 3 | 9 |
| 4 | 4 | 4 | 2 | 8 |
| 5 | 5 | 5 | 9 | 45 |
| 6 | 6 | 6 | 8 | 48 |
| 7 | 7 | 7 | 7 | 49 |
| 8 | 8 | 8 | 6 | 48 |
| 9 | 0 | 0 | 5 | 0 |
| 10 | 0 | 0 | 4 | 0 |
| 11 | 0 | 0 | 3 | 0 |
| 12 | 1 | 1 | 2 | 2 |
| Soma | 222 |
A soma é 222, que dividida por 11 deixa resto 2; como o resto não é 0 nem 1, o primeiro DV é 11 − 2 = 9. Para o segundo DV, a base passa a ter 13 caracteres, com o 9 no fim:
| Posição | Caractere | Valor | Peso | Produto |
|---|---|---|---|---|
| 1 | 1 | 1 | 6 | 6 |
| 2 | 2 | 2 | 5 | 10 |
| 3 | 3 | 3 | 4 | 12 |
| 4 | 4 | 4 | 3 | 12 |
| 5 | 5 | 5 | 2 | 10 |
| 6 | 6 | 6 | 9 | 54 |
| 7 | 7 | 7 | 8 | 56 |
| 8 | 8 | 8 | 7 | 56 |
| 9 | 0 | 0 | 6 | 0 |
| 10 | 0 | 0 | 5 | 0 |
| 11 | 0 | 0 | 4 | 0 |
| 12 | 1 | 1 | 3 | 3 |
| 13 | 9 | 9 | 2 | 18 |
| Soma | 237 |
Agora a soma é 237, o resto da divisão por 11 é 6 e o segundo DV é 11 − 6 = 5. Juntando as partes, o número completo é 12.345.678/0001-95, e é isso que o formulário acima confirma. Todos esses números foram calculados por nós.
Há ainda uma ressalva: números com os 14 caracteres iguais, como 00.000.000/0000-00, passam pelo cálculo (os DV calculados são 00), mas este validador os marca como inválidos. É uma convenção usada por validadores, e não uma regra publicada pela Receita Federal ou pelo Serpro nos documentos consultados. Para o CPF vale a mesma lógica, que você confere no validador de CPF.
CNPJ alfanumérico: o que muda
O CNPJ alfanumérico mantém as 14 posições e a máscara XX.XXX.XXX/XXXX-DV do formato antigo. Segundo a Receita Federal, as oito primeiras posições formam a raiz, as quatro seguintes indicam a ordem do estabelecimento (as duas partes podem ter números e letras de A a Z) e as duas últimas, os dígitos verificadores, continuam sendo numéricas. A ordem do estabelecimento pode ser numérica ou alfanumérica mesmo que a raiz seja numérica, e o contrário também vale. As letras são sorteadas na emissão, sem relação com o estado ou com a natureza jurídica da empresa.
O que muda no cálculo é só o valor atribuído a cada caractere: ele é o código ASCII do caractere menos 48. Para os algarismos, isso dá o próprio número (0 a 9); para as letras maiúsculas, dá 17 para A, 18 para B e assim por diante, até 42 para Z. Pesos, módulo 11 e a regra do resto são os mesmos do CNPJ numérico, e por isso os CNPJs já existentes continuam válidos e com os mesmos dígitos verificadores.
Um exemplo calculado com letras é o 12.ABC.345/01DE-35, que aparece no manual de cálculo da Receita. A base é 12ABC34501DE, e o primeiro DV sai assim:
| Posição | Caractere | Valor | Peso | Produto |
|---|---|---|---|---|
| 1 | 1 | 1 | 5 | 5 |
| 2 | 2 | 2 | 4 | 8 |
| 3 | A | 17 | 3 | 51 |
| 4 | B | 18 | 2 | 36 |
| 5 | C | 19 | 9 | 171 |
| 6 | 3 | 3 | 8 | 24 |
| 7 | 4 | 4 | 7 | 28 |
| 8 | 5 | 5 | 6 | 30 |
| 9 | 0 | 0 | 5 | 0 |
| 10 | 1 | 1 | 4 | 4 |
| 11 | D | 20 | 3 | 60 |
| 12 | E | 21 | 2 | 42 |
| Soma | 459 |
A soma do primeiro DV é 459, com resto 8 na divisão por 11, e o primeiro DV é 11 − 8 = 3. A soma do segundo DV, com os 13 caracteres, é 424, o resto é 6 e o segundo DV é 11 − 6 = 5. O número completo, 12.ABC.345/01DE-35, é válido.
Quanto ao calendário, a Receita Federal gerou o primeiro CNPJ alfanumérico do país em 31/07/2026: uma filial do Banco do Brasil registrada como 00.000.000/E08G-12. A emissão é gradual durante 2026, com poucas empresas no início, e novos CNPJs ainda podem ser emitidos só com números, porque o limite de possibilidades numéricas ainda não se esgotou. Quem integra sistemas precisa aceitar os dois formatos. Para gerar números de teste, veja o gerador de CNPJ alfanumérico.
Valores dos caracteres de A a Z
A tabela abaixo mostra o valor que cada caractere recebe no cálculo dos dígitos verificadores. Os algarismos de 0 a 9 valem de 0 a 9 e as letras maiúsculas valem de 17 (A) a 42 (Z), porque o valor é o código ASCII do caractere menos 48. A tabela foi gerada pela mesma função usada nos testes desta página.
| Caractere | Código ASCII | Valor | Caractere | Código ASCII | Valor |
|---|---|---|---|---|---|
| 0 | 48 | 0 | I | 73 | 25 |
| 1 | 49 | 1 | J | 74 | 26 |
| 2 | 50 | 2 | K | 75 | 27 |
| 3 | 51 | 3 | L | 76 | 28 |
| 4 | 52 | 4 | M | 77 | 29 |
| 5 | 53 | 5 | N | 78 | 30 |
| 6 | 54 | 6 | O | 79 | 31 |
| 7 | 55 | 7 | P | 80 | 32 |
| 8 | 56 | 8 | Q | 81 | 33 |
| 9 | 57 | 9 | R | 82 | 34 |
| A | 65 | 17 | S | 83 | 35 |
| B | 66 | 18 | T | 84 | 36 |
| C | 67 | 19 | U | 85 | 37 |
| D | 68 | 20 | V | 86 | 38 |
| E | 69 | 21 | W | 87 | 39 |
| F | 70 | 22 | X | 88 | 40 |
| G | 71 | 23 | Y | 89 | 41 |
| H | 72 | 24 | Z | 90 | 42 |
Na prática, para achar o valor de uma letra basta contar a partir do A: o A vale 17, o B vale 18, o C vale 19, o D vale 20 e o E vale 21, exatamente os valores usados no exemplo 12.ABC.345/01DE-35. Em uma posição de peso 5, por exemplo, a letra A contribui com 17 × 5 = 85 para a soma do primeiro DV.
Esta página aceita as 26 letras de A a Z, em maiúsculas ou minúsculas (as minúsculas são convertidas para maiúsculas antes do cálculo, uma decisão nossa, porque o texto oficial fala em letras maiúsculas). A Receita Federal orienta que os sistemas considerem todas as letras do alfabeto; o controle de combinações indesejadas é feito internamente por ela, na emissão, e não pelo validador. Por isso o campo não rejeita nenhuma letra por si só.
Exemplos oficiais e resultado da validação
A tabela reúne os seis exemplos de CNPJ publicados em documentos oficiais que fecham a conta. Os dígitos verificadores da coluna "DV calculado" foram calculados por nós com a mesma regra desta página, e todos conferem com os dígitos publicados, de modo que o resultado é válido nesta ferramenta para os seis.
| CNPJ | Tipo | DV calculado | Resultado | Origem do exemplo |
|---|---|---|---|---|
| 12.ABC.345/01DE-35 | Alfanumérico | 35 | Válido | Manual de cálculo do DV (Receita Federal) e perguntas e respostas, pergunta 14 |
| 00.000.000/E08G-12 | Alfanumérico | 12 | Válido | Primeiro CNPJ alfanumérico emitido, notícia da Receita de 31/07/2026 |
| AA.345.678/000A-29 | Alfanumérico | 29 | Válido | Perguntas e respostas da Receita, pergunta 23, exemplo 2 |
| 12.345.678/000A-08 | Alfanumérico | 08 | Válido | Perguntas e respostas da Receita, pergunta 23, exemplo 3 |
| AB.C12.345/0001-10 | Alfanumérico | 10 | Válido | Regras de validação da DeRE, Anexo II |
| 12.345.678/0001-95 | Numérico | 95 | Válido | Perguntas e respostas da Receita, pergunta 17 (numérico) |
Eles são um bom conjunto de teste para qualquer implementação. Há CNPJ numérico (12.345.678/0001-95), CNPJ com letras só na raiz (12.ABC.345/01DE-35 e AA.345.678/000A-29), com letra só na ordem do estabelecimento (12.345.678/000A-08) e o primeiro alfanumérico emitido pela Receita, 00.000.000/E08G-12. Cole qualquer um deles no formulário no topo da página e confira o resultado, o tipo e o passo a passo.
Vale testar também o que deve dar errado: troque o último dígito de 12.345.678/0001-95 para 6 e o resultado passa a ser inválido, porque os DV calculados continuam sendo 95. Isso mostra que o validador compara os dois dígitos finais com o cálculo, e não apenas o formato. Para validar também o documento de pessoa física em um cadastro, use o validador de CPF e, para gerar números de teste de ambos os tipos, o gerador de CPF e CNPJ para testes.
Cuidado ao testar: um exemplo publicado não passa na validação
No documento de perguntas e respostas da Receita Federal sobre o CNPJ alfanumérico, a pergunta 23 traz o primeiro exemplo com a grafia AA345678/0003-29, que na máscara usual fica AA.345.678/0003-29. Esse exemplo não passa na validação: ao recalcular, o primeiro DV é 8 e o segundo é 6, ou seja, os dígitos verificadores corretos para essa base seriam 86, e não 29. Consultamos o documento em 07/11/2026.
O cálculo do primeiro DV dessa base dá soma 366, com resto 3 na divisão por 11, e DV 11 − 3 = 8. O segundo, com o 8 no fim da base, dá soma 412, e o DV 6. Quando você digita AA.345.678/0003-29 no formulário acima, o resultado é "CNPJ inválido", com a linha "Dígitos informados: 29; calculados: 86". O exemplo seguinte da mesma pergunta, AA.345.678/000A-29, tem outra base e passa normalmente.
| Posição | Caractere | Valor | Peso | Produto |
|---|---|---|---|---|
| 1 | A | 17 | 5 | 85 |
| 2 | A | 17 | 4 | 68 |
| 3 | 3 | 3 | 3 | 9 |
| 4 | 4 | 4 | 2 | 8 |
| 5 | 5 | 5 | 9 | 45 |
| 6 | 6 | 6 | 8 | 48 |
| 7 | 7 | 7 | 7 | 49 |
| 8 | 8 | 8 | 6 | 48 |
| 9 | 0 | 0 | 5 | 0 |
| 10 | 0 | 0 | 4 | 0 |
| 11 | 0 | 0 | 3 | 0 |
| 12 | 3 | 3 | 2 | 6 |
| Soma | 366 |
O mais provável é um erro de digitação no documento, e não um problema do validador. A lição para quem escreve testes é prática: não copie exemplos de um PDF sem conferi-los. Use os seis exemplos da seção anterior, que fecham a conta, e inclua o AA.345.678/0003-29 apenas como caso de teste de um número inválido.
Código para validar CNPJ em JavaScript e Python
Os dois trechos abaixo implementam a mesma regra desta página: aceitam ponto, barra, traço e espaços, exigem 14 caracteres alfanuméricos, tratam as letras como maiúsculas, exigem que os dois últimos sejam números, recusam os 14 caracteres iguais por convenção e conferem os dois DV pelo módulo 11. Eles foram testados com os seis exemplos oficiais, com AA.345.678/0003-29 e 00.000.000/0000-00 (inválidos) e com outros casos de borda, como minúsculas, entrada sem máscara e letras acentuadas.
JavaScript
function cnpjValido(texto) {
const c = texto.replace(/[./\- ]/g, "");
if (!/^[0-9A-Za-z]{14}$/.test(c)) return false;
const u = c.toUpperCase();
if (/^(.)\1{13}$/.test(u) || !/^[0-9]{2}$/.test(u.slice(12))) return false;
const v = [...u].map((ch) => ch.charCodeAt(0) - 48);
const dv = (valores) => {
const n = valores.length;
const soma = valores.reduce((acc, x, i) => acc + x * (2 + ((n - 1 - i) % 8)), 0);
const resto = soma % 11;
return resto < 2 ? 0 : 11 - resto;
};
return dv(v.slice(0, 12)) === v[12] && dv(v.slice(0, 13)) === v[13];
}
Python
import re
def cnpj_valido(texto):
c = "".join(ch for ch in texto if ch not in "./- ")
if not re.fullmatch(r"[0-9A-Za-z]{14}", c):
return False
c = c.upper()
if len(set(c)) == 1 or not c[12:].isdigit():
return False
v = [ord(ch) - 48 for ch in c]
def dv(valores):
n = len(valores)
soma = sum(x * (2 + (n - 1 - i) % 8) for i, x in enumerate(valores))
resto = soma % 11
return 0 if resto < 2 else 11 - resto
return dv(v[:12]) == v[12] and dv(v[:13]) == v[13]
Nos dois trechos, a função recebe o texto digitado e devolve verdadeiro ou falso. O valor de cada caractere é o código ASCII menos 48, e o peso de cada posição é 2 mais o resto da divisão da distância até o fim por 8, o que gera a sequência de 2 a 9 da direita para a esquerda e reinicia depois do oitavo caractere. É por isso que a mesma função de DV serve às duas conferências: com 12 valores ela dá o primeiro dígito e com 13 valores, o segundo. Copie o bloco que preferir e ajuste só o que o seu projeto exigir, como a mensagem de erro.
Para gerar CNPJs de teste com DV corretos, existe o gerador de CNPJ alfanumérico, que roda no navegador.
Privacidade: o CNPJ digitado não sai do navegador
O cálculo desta página acontece inteiramente no seu navegador, com JavaScript que já veio junto com a página. O CNPJ que você digita no campo não é enviado a nenhum servidor, não é gravado e não é compartilhado com ninguém. Não há requisição de rede disparada pelo botão “Validar CNPJ”, e para conferir basta abrir as ferramentas de desenvolvedor do navegador e observar a aba de rede enquanto valida um número.
Validar também não é consultar a Receita Federal. Esta ferramenta confere só a matemática dos dígitos verificadores: ela não diz se o CNPJ existe, qual é a razão social, se a empresa está ativa ou se a situação cadastral está regular. Qualquer base de doze caracteres tem DV calculáveis, então um número montado por um programa pode passar na validação e, por coincidência, pertencer a uma empresa real. Para confirmar a existência e a situação de um CNPJ, use os serviços da própria Receita Federal.
A Receita mantém um simulador de CNPJ alfanumérico para dados fictícios, que também roda no navegador e está listado nas fontes ao fim da página. Ao fechar a aba, esta ferramenta não guarda nada do que foi digitado.
Perguntas frequentes
Como validar um CNPJ?
Remova ponto, barra e traço, confira se há 14 caracteres e recalcule os dois últimos pelo módulo 11 a partir dos 12 primeiros. Se os dígitos calculados forem iguais aos digitados, o CNPJ é válido. Em 12.345.678/0001-95, por exemplo, os DV calculados são 95, iguais aos digitados. Este validador faz essa conta, mostra o passo a passo e rejeita, por convenção, os 14 caracteres iguais.
Como calcular o dígito verificador do CNPJ?
Multiplique os 12 primeiros caracteres pelos pesos 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 e some. Se o resto da divisão por 11 for 0 ou 1, o DV é 0; senão, é 11 menos o resto. Para o segundo, use 13 caracteres e os pesos 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2. No exemplo 12.345.678/0001-95, as somas são 222 e 237, dando os DV 9 e 5.
O que é o CNPJ alfanumérico e quando começa?
É o novo formato do CNPJ, com 14 posições em que letras de A a Z podem aparecer nas 12 primeiras, enquanto os dois dígitos verificadores continuam numéricos. A Receita Federal gerou o primeiro em 31/07/2026, o 00.000.000/E08G-12. A emissão é gradual durante 2026, e novos CNPJs ainda podem ser emitidos só com números.
Como o dígito verificador do CNPJ alfanumérico é calculado?
O algoritmo é o mesmo do CNPJ numérico, com módulo 11 e pesos de 2 a 9, mudando só o valor de cada caractere, que é o código ASCII menos 48. Os algarismos valem de 0 a 9 e as letras de A a Z valem de 17 a 42. No 12.ABC.345/01DE-35, as somas são 459 e 424, e os DV são 3 e 5.
Quais letras podem aparecer no CNPJ alfanumérico?
As 26 letras de A a Z, além dos algarismos de 0 a 9, nas 12 primeiras posições. A Receita Federal orienta que os sistemas aceitem todas as letras do alfabeto e controla internamente, na emissão, as combinações que não devem ser geradas. As duas últimas posições são sempre números. Este validador converte minúsculas para maiúsculas antes de calcular.
Este validador consulta a Receita Federal?
Não. A ferramenta apenas confere a matemática dos dígitos verificadores, no seu navegador. Ela não diz se o CNPJ existe, de qual empresa é nem se a situação cadastral está regular. Um número gerado ao acaso pode passar na validação e, por coincidência, ser de uma empresa real. Para consultar o cadastro, use os serviços da Receita Federal.
O CNPJ numérico atual continua valendo?
Sim. A Receita Federal informou que os CNPJs existentes permanecem válidos, com os mesmos dígitos verificadores, porque o cálculo do formato alfanumérico é compatível com o antigo. O 12.345.678/0001-95 continua passando na validação, e novos CNPJs ainda podem ser emitidos só com números. Quem integra sistemas precisa aceitar os dois formatos.
Fontes e referências
- Manual de cálculo do DV do CNPJ (Receita Federal)
- CNPJ alfanumérico (Receita Federal)
- CNPJ alfanumérico: perguntas e respostas (Receita Federal)
- Receita gera o primeiro CNPJ alfanumérico (31/07/2026)
- Simulador de CNPJ alfanumérico (Receita Federal)
Conteúdo informativo, sem caráter de consultoria jurídica, contábil ou financeira. Confirme sempre nas fontes oficiais.