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?
Com a IN RFB 2.119/2022 e as atualizações do SERPRO surgiu o novo formato de CNPJ, que passa a admitir letras (A-Z) nos 12 primeiros caracteres. Os dois últimos seguem numéricos e cumprem o papel de dígitos verificadores.
Para os DVs, mantém-se o algoritmo módulo 11 com pesos cíclicos (5,4,3,2,9,8,7,6,5,4,3,2 no primeiro DV; 6,5,4,3,2,9,8,7,6,5,4,3,2 no segundo). O que muda é o valor numérico de cada caractere, obtido por charCode - 48, de modo que A=17, B=18, …, Z=42.
Roda inteiramente no navegador e aceita a entrada 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}), com0001sendo 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)ouBIGINTviramVARCHAR(14)ouCHAR(14). Em PostgreSQL, considereCITEXTpara 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,imaskereact-input-maskaceitam só dígitos por padrão; troque para um padrão custom que aceiteA-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
emitedest. - 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
BIGINTem schema novo; mesmo que o valor atual caiba, o tipo não aceita letras. - Confiar nos DVs para pegar um typo onde a letra
Ofoi digitada no lugar do dígito0— 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.
Valide o novo CNPJ alfanumérico
O CNPJ está mudando. Pelo novo padrão (IN RFB 2.119/2022), os doze primeiros caracteres passam a ser alfanuméricos, e não só numéricos, mantendo os dois dígitos verificadores no final. A 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 na prática. Quem está atualizando sistemas para aceitar o novo formato, antes que ele entre em vigor por completo, encontra aqui essa conta feita automaticamente.
Tudo roda dentro do navegador, sem enviar nada para fora. É uma ferramenta de apoio para desenvolvedores e empresas se prepararem para a transição do CNPJ.
Leia mais sobre isso
Ferramentas Relacionadas
Validador de CGC (CNPJ antigo)
Valida o formato e dígito verificador do CGC (Cadastro Geral de Contribuintes) — antigo formato do CNPJ. Mesmas regras matemáticas.
Validador de CNPJ em Lote
Valida uma lista de CNPJs (um por linha) e mostra resumo: válidos, inválidos e total. Sem envio para servidores.
Detector e Validador de CPF/CNPJ
Detecta automaticamente se uma string é CPF (11 dígitos) ou CNPJ (14 dígitos) e valida o dígito verificador correspondente.