1001Ferramentas
Validadores

Validador de CNPJ Alfanumérico

Valida CNPJ no novo formato alfanumérico (IN RFB 2.119/2022): 12 caracteres alfanuméricos + 2 dígitos verificadores via mod-11.

Como funciona o CNPJ alfanumérico?

A IN RFB 2.119/2022 e atualizações do SERPRO criaram o novo formato de CNPJ que inclui letras (A-Z) nos 12 primeiros caracteres. Os dois últimos dígitos continuam sendo numéricos e funcionam como dígitos verificadores.

O cálculo dos DVs mantém o algoritmo módulo 11 com pesos cíclicos (5,4,3,2,9,8,7,6,5,4,3,2 para o primeiro DV; 6,5,4,3,2,9,8,7,6,5,4,3,2 para o segundo). A diferença é que o valor numérico de cada caractere é calculado por charCode - 48, fazendo com que A=17, B=18, …, Z=42.

Validação 100% local. Aceita formato com ou sem máscara.

O CNPJ alfanumérico: o que muda em 1º de julho de 2026

A Receita Federal está esgotando a faixa numérica de 14 dígitos do CNPJ. Para estender a vida útil do identificador sem forçar uma renumeração geral, a Instrução Normativa RFB 2.229/2024 introduz o CNPJ alfanumérico: os 12 caracteres da base passam a aceitar letras A–Z além dos dígitos 0–9, enquanto os 2 dígitos verificadores permanecem numéricos. A vigência começa em 1º de julho de 2026 e afeta apenas as novas emissões; CNPJs antigos puramente numéricos seguem válidos e não exigem migração.

Para devs, a notícia é que toda camada do stack fiscal brasileiro que trata CNPJ como NUMERIC(14) vai quebrar: colunas de banco, regex, schemas XML, máscaras de input, JSON schemas e até formulários impressos. Validar um CNPJ alfanumérico corretamente é o ponto de entrada de qualquer migração — e é exatamente o que esta ferramenta faz no navegador.

Formato: 12 alfanuméricos + 2 dígitos verificadores numéricos

O layout oficial publicado pela Receita Federal é:

  • Posições 1–8: raiz alfanumérica do estabelecimento ([A-Z0-9]{8}).
  • Posições 9–12: ordem do estabelecimento alfanumérica ([A-Z0-9]{4}), com 0001 sendo a matriz por convenção do esquema antigo.
  • Posições 13–14: dois dígitos verificadores numéricos ([0-9]{2}), calculados módulo 11 sobre as 12 primeiras posições.

Um pré-filtro regex canônico:

^[A-Z0-9]{12}\d{2}$

A convenção é somente maiúsculas. Minúsculas devem ser normalizadas para maiúsculas antes da validação; mistura de caixa deve ser rejeitada no input. Esta ferramenta já converte automaticamente para maiúsculas.

O algoritmo do dígito verificador passo a passo

A matemática do DV é idêntica à do CNPJ legado — só muda a representação de entrada. Letras são convertidas em números pelo valor ASCII menos 48, o que dá A=17, B=18, C=19, ..., Z=42. Dígitos 0–9 mantêm o valor numérico. Depois da conversão, aplique módulo 11 com os pesos padrão do CNPJ:

pesos_DV1 = [5,4,3,2,9,8,7,6,5,4,3,2]
pesos_DV2 = [6,5,4,3,2,9,8,7,6,5,4,3,2]

para cada char em base12:
  valor = ord(char) - 48   # funciona para 0-9 e A-Z

DV1 = soma_mod11(valores, pesos_DV1)
DV2 = soma_mod11(valores + [DV1], pesos_DV2)

A regra do resto é a mesma do CNPJ numérico: se resto < 2 então DV = 0, caso contrário DV = 11 - resto. O resultado é sempre um dígito 0–9; os DVs nunca são letras.

Impacto da migração para devs brasileiros

A migração afeta uma lista longa de componentes:

  • Schema do banco: colunas NUMERIC(14) ou BIGINT viram VARCHAR(14) ou CHAR(14). Em PostgreSQL, considere CITEXT para lookup case-insensitive.
  • Índices: índices numéricos sobre CNPJ precisam ser refeitos como índices de texto. Índices parciais sobre dados legados continuam válidos.
  • Atualização de regex: todo padrão ^\d{14}$ precisa virar ^[A-Z0-9]{12}\d{2}$. Regex numérico hardcoded é o antipadrão mais comum.
  • Máscaras DOM: libs como jquery.mask, imask e react-input-mask aceitam só dígitos por padrão; troque para um padrão custom que aceite A-Z0-9.
  • JSON Schema: "type":"string","pattern":"^[A-Z0-9]{12}\\d{2}$" em vez de "type":"integer".
  • Layout XML NF-e: a SEFAZ publicou a Nota Técnica 2024.002 atualizando o XSD para aceitar CNPJ alfanumérico nas tags emit e dest.
  • Libs: cpf-cnpj-validator (npm) tem suporte alfanumérico a partir da v3.0; versões antigas falham silenciosamente.

Compatibilidade retroativa e janela de transição

CNPJs existentes (puramente numéricos) não mudam. A partir de 1º de julho de 2026, todo sistema deve aceitar ambos os formatos simultaneamente. Os validadores precisam então rotear o input por uma função única que trate os dois casos — tipicamente convertendo sempre caracteres em números via ord(char) - 48, que dá o inteiro correto para dígitos e o mapeamento esperado para letras.

A Receita publicará um sandbox SEFAZ (ambiente de homologação) com suporte ao CNPJ alfanumérico antes da virada de produção, para que ERPs ensaiem emissão de XML, assinatura e consulta de protocolo com o novo layout antes do prazo legal.

Pegadinhas e antipadrões frequentes

Armadilhas recorrentes em migrações iniciais:

  • Hardcodear ^\d{14}$ em sistema novo, em 2025 — garantia de quebra em julho de 2026.
  • Armazenar CNPJ como BIGINT em schema novo; mesmo que o valor atual caiba, o tipo não aceita letras.
  • Confiar nos DVs para pegar um typo onde a letra O foi digitada no lugar do dígito 0 — módulo 11 detecta transposições, mas não todas as substituições, especialmente no domínio restrito de caracteres confundíveis.
  • Esquecer de fazer uppercase no input do usuário — "abc" e "ABC" não são o mesmo CNPJ.
  • Esquecer que os DVs continuam numéricos — aceitar DV alfanumérico é bug.

FAQ

Quando o CNPJ alfanumérico passa a valer oficialmente?

1º de julho de 2026, conforme a Instrução Normativa RFB 2.229/2024. A partir dessa data, novas emissões de CNPJ podem receber valor alfanumérico; CNPJs existentes permanecem válidos sem alteração.

É uma mudança breaking para meus validadores numéricos?

Sim. Qualquer regex ou schema que exija 14 dígitos numéricos vai rejeitar CNPJs alfanuméricos válidos. Atualize validadores, colunas de banco, máscaras e schemas XML antes da virada.

CNPJs antigos precisam migrar?

Não. Os CNPJs existentes seguem numéricos para sempre. Só novas emissões a partir de julho de 2026 podem ser alfanuméricas. O sistema precisa aceitar os dois formatos a partir do mesmo validador.

Os DVs também podem ser letras?

Não. As 2 últimas posições são sempre numéricas (0–9). Só as 12 primeiras posições podem ser alfanuméricas. Um CNPJ alfanumérico válido casa com ^[A-Z0-9]{12}\d{2}$.

As letras são case-sensitive?

A convenção é maiúsculas A–Z. Validadores devem fazer uppercase do input antes de processar. Esta ferramenta já faz isso automaticamente no campo de entrada.

Ferramentas Relacionadas

Valide o novo CNPJ alfanumérico

O CNPJ está mudando: a partir do novo padrão (IN RFB 2.119/2022), os doze primeiros caracteres passam a ser alfanuméricos, não só números, mantendo os dois dígitos verificadores ao final. Esta ferramenta valida esse formato novo, conferindo a estrutura e o cálculo do dígito.

Como o cálculo do dígito verificador foi adaptado para lidar com letras, validar um CNPJ alfanumérico na mão é inviável. A ferramenta faz essa conta automaticamente, essencial para quem está atualizando sistemas para aceitar o novo formato antes que ele entre em vigor plenamente.

A validação roda inteiramente no navegador, sem enviar nada para fora. Uma ferramenta de apoio para desenvolvedores e empresas se prepararem para a transição do CNPJ.