Pular para o conteúdo

Validar CNPJ

Cole um CNPJ ou uma lista inteira e veja quais estão com o dígito certo e, quando não estão, por quê.

Validar CNPJ

Confere no seu navegador. Nada do que você digita ou cola é enviado.

Com ou sem máscara. Letras minúsculas e espaços também valem.
Validar em lote: cole uma coluna da planilha
Ctrl+Enter também valida. Os inválidos aparecem primeiro, com o motivo.

O validador limpa a máscara, confere se o número tem 14 caracteres válidos e recalcula os dois dígitos verificadores por módulo 11. Se algo não bater, ele diz o que está errado, por exemplo "O 2º dígito deveria ser 5, e não 4". Ele aceita o formato numérico e o alfanumérico, mas confere só o cálculo: não diz se a empresa existe ou está ativa.

O que o validador confere

Cada número passa por estas etapas, nesta ordem. A primeira que falhar define a mensagem (com o campo vazio, a tela só pede o número):

  1. Limpeza: tira pontos, barra, traço e espaços, e passa as letras para maiúsculas.
  2. Caracteres: só entram letras de A a Z e números; símbolos e acentos são recusados.
  3. Tamanho: o CNPJ tem 14 caracteres, nem mais nem menos.
  4. Repetição: números com todos os caracteres iguais, como 00.000.000/0000-00, são recusados, mesmo os que passam na conta.
  5. Dígitos verificadores: as 2 últimas posições têm de ser números.
  6. Cálculo: os dois dígitos são recalculados e comparados com os que vieram no número.

O que o validador não confere

Um CNPJ válido no cálculo não quer dizer que a empresa exista. O dígito verificador só pega erro de digitação: ele garante que o número foi montado pela regra, não que alguém o recebeu da Receita.

Para saber se uma empresa existe, está ativa ou qual é a razão social, consulte o Comprovante de Inscrição e de Situação Cadastral no site da Receita Federal. Este validador não consulta nenhuma base e não envia o número a lugar nenhum: a conta é feita no seu navegador.

Entenda as mensagens de erro

Cada recusa vem com uma frase que diz o problema. As mais comuns e o que fazer:

Mensagens do validador de CNPJ
MensagemO que significaO que fazer
Tem 13 caracteres. O CNPJ tem 14. Falta ou sobra caractere. Confira se um zero à esquerda sumiu, comum em planilha.
O caractere "*" não é aceito. O CNPJ só tem letras de A a Z e números. Há símbolo, acento ou caractere especial no meio. Apague e digite de novo, sem colar de PDF.
Todos os caracteres são iguais. Um CNPJ assim não é aceito. Sequência como 11111111111111. Não é um CNPJ de verdade. Use outro número.
Os dois últimos caracteres são os dígitos verificadores e só podem ser números (veio "3A"). Uma das 2 últimas posições é letra. Os dígitos verificadores são sempre números. Confira a digitação.
O 2º dígito deveria ser 5, e não 4. A base está certa, mas um dígito não confere. Erro de digitação, ou número inventado sem a conta.
Os dois dígitos verificadores estão errados: deveriam ser 35, e não 53. Nenhum dos dois dígitos confere. Confira a base: pode haver caractere trocado ou invertido.
Algoritmo

Exemplo: um dígito errado

Digite 12.ABC.345/01DE-34. A base 12ABC34501DE gera o 1º dígito 3, que confere. O 2º dígito calculado é 5, mas veio 4. O validador recusa e mostra a conta completa, posição por posição, para você ver onde está a diferença.

Com 12.ABC.345/01DE-35, o exemplo oficial da Receita Federal, os dois dígitos conferem e o número é aceito.

Conta feita com o número 12.ABC.345/01DE-35. Gere ou valide outro acima e a conta muda junto.

1º dígito verificador

Cálculo do 1º dígito verificador: valor, peso e produto de cada caractere
1º dígito12ABC34501DE
Valor (ASCII − 48)12171819345012021
Peso543298765432
Produto585136171242830046042
soma 459÷ 11 →resto 8→ 11 − 8 =1º DV = 3

Resto 8 é maior que 1, então DV = 11 − 8 = 3.

2º dígito verificador

Cálculo do 2º dígito verificador: valor, peso e produto de cada caractere
2º dígito12ABC34501DE3
Valor (ASCII − 48)121718193450120213
Peso6543298765432
Produto6106854382732350580636
soma 424÷ 11 →resto 6→ 11 − 6 =2º DV = 5

Resto 6 é maior que 1, então DV = 11 − 6 = 5.

Validar uma lista de CNPJs

Copie uma coluna da planilha e cole no campo de lote, um CNPJ por linha, com ou sem máscara. O resultado mostra cada linha como válida ou inválida, com o motivo, e você pode baixar a lista conferida em CSV ou em CSV (Excel), que abre com acentos e colunas certas no Excel em português.

Isso ajuda o contador a revisar o cadastro de clientes e fornecedores antes de importar no sistema fiscal, e ajuda o QA a conferir se uma massa de teste está inteira. Como tudo roda no navegador, a lista não sai do seu computador.

Erros comuns em planilhas e cadastros

Boa parte dos CNPJs "inválidos" de uma planilha foi estragada no caminho. Os culpados de sempre:

  • Excel tratando o CNPJ como número: apaga os zeros à esquerda e, em números grandes, mostra notação científica. Formate a coluna como texto antes de colar.
  • Letra O no lugar do zero, ou I no lugar do 1, digitados à mão. No CNPJ alfanumérico, as duas letras existem, então o erro só aparece no dígito.
  • Espaço invisível ou quebra de linha copiados de PDF e e-mail.
  • Traço longo ou barra invertida no lugar do traço e da barra da máscara.
  • CNPJ alfanumérico recusado por um sistema antigo que só aceita dígitos. Nesse caso o número está certo e o sistema é que precisa de ajuste.
Código

Como validar no seu código

A validação correta tem quatro partes: normalizar a entrada, conferir o formato com uma regex, recusar sequências repetidas e recalcular os dígitos. O código abaixo faz isso em JavaScript, Python e numa função do PostgreSQL, e já aceita o formato alfanumérico.

Devolva o motivo da recusa, e não só verdadeiro ou falso. Uma mensagem como "Tem 13 caracteres" poupa uma ligação para o suporte. Para a regra das letras e o cálculo com o exemplo oficial, veja a página do CNPJ alfanumérico.

function dvCnpj(base) {
  const calc = (v) => {
    let soma = 0;
    for (let i = v.length - 1, peso = 2; i >= 0; i--, peso = peso === 9 ? 2 : peso + 1) {
      soma += v[i] * peso;
    }
    const resto = soma % 11;
    return resto < 2 ? 0 : 11 - resto;
  };
  const v = [...base].map((c) => c.charCodeAt(0) - 48);
  const dv1 = calc(v);
  return String(dv1) + String(calc([...v, dv1]));
}

// Devolve o motivo da recusa, não só true/false.
// Mesma ordem do validador do site: vazio, caractere, tamanho, repetido, letra no DV, DV.
function validarCnpj(entrada) {
  const cnpj = entrada.replace(/[.\/\-\s]/g, '').toUpperCase();
  if (cnpj.length === 0) return { valido: false, motivo: 'vazio' };
  if (!/^[0-9A-Z]+$/.test(cnpj)) return { valido: false, motivo: 'caractere' };
  if (cnpj.length !== 14) return { valido: false, motivo: 'tamanho' };
  if (/^(.)\1+$/.test(cnpj)) return { valido: false, motivo: 'repetido' };
  if (!/^[0-9]{2}$/.test(cnpj.slice(12))) return { valido: false, motivo: 'letra-no-dv' };
  const esperado = dvCnpj(cnpj.slice(0, 12));
  if (esperado !== cnpj.slice(12)) return { valido: false, motivo: 'dv', esperado };
  return { valido: true };
}

validarCnpj('12.ABC.345/01DE-34'); // { valido: false, motivo: 'dv', esperado: '35' }
Dúvidas

Perguntas frequentes

Como saber se um CNPJ é válido?

Recalcule os dois dígitos verificadores pelo módulo 11 e compare com os do número. Se baterem e o número tiver 14 caracteres, ele é válido no cálculo. Para saber se a empresa existe, consulte a situação cadastral no site da Receita Federal.

O validador aceita CNPJ alfanumérico?

Sim. Ele aceita letras de A a Z nas 12 primeiras posições, com letras maiúsculas ou minúsculas, e faz a conta com o código ASCII menos 48.

CNPJ válido quer dizer que a empresa existe?

Não. O dígito verificador só mostra que o número foi montado pela regra. Um número inventado pode passar na conta sem pertencer a ninguém.

Por que 00.000.000/0000-00 é recusado se a conta fecha?

Porque algumas sequências com todos os caracteres iguais passam no módulo 11 por coincidência, mas não são inscrições reais. Todo validador sério recusa esses números.

Posso validar vários CNPJs de uma vez?

Sim. Cole uma coluna da planilha, um por linha, e veja quais estão inválidos e o motivo de cada um. Dá para baixar o resultado em CSV ou CSV (Excel).

O CNPJ que eu digito é enviado para algum servidor?

Não. A validação roda no seu navegador e o número não é enviado nem guardado.

Blog

Leia também

Ferramentas

Veja também

Atualizado em 14/11/2026.