Instrução Normativa RFB nº 2.229/2024

O CNPJ vai ter letras. Seu sistema está pronto?

A partir de 31 de julho de 2026 a Receita Federal passa a emitir CNPJ no formato alfanumérico. Bancos de dados, regex, validações e emissores de nota fiscal feitos só para números vão rejeitar cadastros e travar integrações. Teste, valide em lote e adapte tudo aqui.

dias
:
horas
:
min
:
seg

para a primeira emissão no novo formato · produção dos sistemas em 27/07

Validador instantâneo

numérico ou alfanumérico · com ou sem máscara
O que muda

Uma alteração pequena na regra. Um estrago grande no sistema.

As 12 primeiras posições passam a aceitar letras (A–Z) além de números. Só os 2 dígitos verificadores continuam numéricos. Quem programou o CNPJ como "14 números" quebra.

Antes — só números 11.222.333/0001-81 /^\d{14}$/

100 milhões de combinações. Regex numérica. CHAR(14) numérico no banco.

Agora — letras e números 12.ABC.345/01DE-35 /^[0-9A-Z]{12}[0-9]{2}$/

~3 trilhões de combinações. Precisa aceitar A–Z nas 12 primeiras posições.

Onde costuma quebrar

  • Validação de formulário com regex \d
  • Coluna de banco numérica / BIGINT
  • Emissão de NF-e e integrações fiscais
  • Máscara de input que só aceita dígito
  • Conciliação e cruzamento de bases

Cronograma oficial

  • 25/07/2026 · base do CNPJ indisponível para procedimentos finais
  • 27/07/2026 · sistemas entram em produção
  • 31/07/2026 · primeira emissão no novo formato
  • CNPJs numéricos já existentes continuam válidos

Sua regex vai quebrar?

Cole a expressão que seu sistema usa hoje:

Auditoria em lote

Passe sua base inteira de uma vez

Tem uma planilha com milhares de CNPJs de clientes ou fornecedores? Solte aqui e receba de volta um relatório com o status de cada um — válido, inválido, alfanumérico ou legado. Tudo processado no seu navegador: nenhum dado é enviado a servidor algum.

Arraste um CSV/TXT ou clique para escolher

uma coluna de CNPJs, com ou sem máscara · ou cole abaixo

Para desenvolvedores

API REST para plugar no seu ERP

Um endpoint HTTP para validar CNPJ direto do seu backend, sem reescrever a lógica do módulo 11 em cada sistema. Roda no edge da Cloudflare — resposta em milissegundos.

POST /api/v1/validate

Chama a API real no edge da Cloudflare.

{ }
curl -X POST https://cnpj-alfanumerico-6li.pages.dev/api/v1/validate \
  -H "Content-Type: application/json" \
  -d '{"cnpj":"12.ABC.345/01DE-35"}'
const r = await fetch("https://cnpj-alfanumerico-6li.pages.dev/api/v1/validate", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ cnpj: "12.ABC.345/01DE-35" }),
});
const data = await r.json();
console.log(data.valid, data.type);
import requests

r = requests.post(
    "https://cnpj-alfanumerico-6li.pages.dev/api/v1/validate",
    json={"cnpj": "12.ABC.345/01DE-35"},
)
print(r.json()["valid"], r.json()["type"])
$ch = curl_init("https://cnpj-alfanumerico-6li.pages.dev/api/v1/validate");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
  CURLOPT_POSTFIELDS => json_encode(["cnpj" => "12.ABC.345/01DE-35"]),
]);
$data = json_decode(curl_exec($ch), true);
echo $data["valid"] ? "valido" : "invalido";
POST/api/v1/validate/batchaté 1.000 por vez
GET/api/v1/generate?count=10CNPJs de teste
GET/api/v1/healthstatus + autocheck

Especificação completa: openapi.yaml · CORS liberado, sem autenticação nesta versão.

Copie e cole

A função de validação pronta, na sua linguagem

Não quer depender de API externa? Leve a função para dentro do seu sistema. Cada implementação é o mesmo algoritmo oficial, sem dependências, com um autoteste embutido que você roda para conferir. É exatamente o arquivo que você baixa — domínio público.

carregando…
Para o seu site

Validação nos seus formulários com uma linha

Tem loja, sistema ou landing com campo de CNPJ? Cole o script e todo input data-cnpj passa a validar o formato novo automaticamente — máscara, checagem em tempo real e bloqueio de envio inválido. Sem build, sem dependência.

<script src="https://cnpj-alfanumerico-6li.pages.dev/embed.js" defer></script>

<input data-cnpj placeholder="CNPJ">

O script adiciona máscara, um selo de válido/inválido ao lado do campo e a classe cnpj-invalid quando o valor não confere. Funciona com numérico e alfanumérico.

Este campo está usando o próprio embed.js.

Guia técnico

Como o dígito verificador é calculado

Mesma lógica do módulo 11 de sempre, com uma tabela de valores estendida: cada caractere vale seu código ASCII menos 48. Assim 0–9 valem 0 a 9 e A–Z valem 17 a 42.

1. Valor de cada caractere

valor = ASCII(caractere) − 48

00
99
A17
B18
D20
Z42

2. Pesos (direita → esquerda, 2 a 9)

DV1: 5 4 3 2 9 8 7 6 5 4 3 2

DV2: 6 5 4 3 2 9 8 7 6 5 4 3 2

Soma dos produtos, resto da divisão por 11. Resto 0 ou 1 → dígito 0; senão 11 − resto.

3. Fonte oficial

Instrução Normativa RFB nº 2.229/2024.

Manual público do SERPRO — "Cálculo dos dígitos verificadores de CNPJ alfanumérico".

Exemplo de referência: 12.ABC.345/01DE-35 (DVs 3 e 5).

Perguntas frequentes

Dúvidas sobre a virada

O que é o CNPJ alfanumérico?

É o novo formato de CNPJ da Receita Federal (IN RFB nº 2.229/2024). As 12 primeiras posições passam a aceitar letras de A a Z além de números; só os 2 dígitos verificadores continuam numéricos. Exemplo: 12.ABC.345/01DE-35.

Quando entra em vigor?

A primeira emissão no formato alfanumérico é em 31/07/2026; os sistemas entram em produção em 27/07/2026. Os CNPJs numéricos já existentes continuam válidos e não precisam ser reemitidos.

Meus CNPJs numéricos atuais vão mudar?

Não. A mudança vale apenas para novas inscrições. O que muda é que seu sistema precisa aceitar os novos CNPJs com letras, sem quebrar cadastros e integrações.

Minha regex ^\d{14}$ vai parar de funcionar?

Sim — ela rejeita CNPJ alfanumérico válido. Troque por ^[0-9A-Z]{12}[0-9]{2}$ (sem máscara), que aceita letras nas 12 primeiras posições e mantém os dígitos verificadores numéricos. Teste a sua na seção "O que muda".

Os dados que eu colo aqui vão para algum servidor?

Não. A validação e o processamento de CSV rodam inteiramente no seu navegador. A API é opcional e existe só para quem quer integrar no backend.

Antes de 31/07

A ferramenta pega o óbvio. O diagnóstico pega o que está escondido.

O validador acima resolve regex e formulário. Mas o risco caro costuma estar no banco de dados, na integração fiscal, na planilha de conciliação e no emissor de NF-e. Eu reviso seus sistemas, aponto exatamente o que vai quebrar e entrego um checklist de correção antes do prazo. Consultoria avulsa, sem mensalidade.

  • ✓ Revisão de banco, formulário, regex e integrações
  • ✓ Lista priorizada do que quebra
  • ✓ Checklist de correção com exemplos de código
  • ✓ Pagamento via Pix, sem contrato longo