CNPJ alfanumérico
O formato novo do CNPJ, com letras e números, explicado para quem precisa adaptar e testar um sistema.
Número gerado
GB.NM5.7OS/0001-40
CSV (Excel) abre com dois cliques no Excel em português (ponto e vírgula, acentos certos). CSV usa vírgula, para programas e scripts. SQL sai sempre sem máscara, para caber em CHAR(14) (CNPJ) ou CHAR(11) (CPF).
Validar CNPJ alfanumérico
Confere no seu navegador. Nada do que você digita ou cola é enviado.
Validar em lote: cole uma coluna da planilha
CSV (Excel) abre com dois cliques no Excel em português (ponto e vírgula, acentos certos). CSV usa vírgula, para programas e scripts.
O CNPJ alfanumérico mantém as 14 posições e a máscara de sempre, mas as 12 primeiras podem ter letras de A a Z além de números. Os 2 últimos caracteres continuam sendo dígitos verificadores numéricos, calculados por módulo 11 com cada caractere convertido pelo código ASCII menos 48. A Receita Federal começou a atribuir o novo formato a novas inscrições em julho de 2026, e os CNPJs numéricos continuam válidos.
O que é o CNPJ alfanumérico
É o novo formato do número de inscrição no Cadastro Nacional da Pessoa Jurídica. A Receita Federal passou a usar letras porque as combinações só com números estão acabando.
A regra está na Instrução Normativa RFB 2.119/2022, com as alterações da IN RFB 2.229/2024. Segundo a Receita, os sistemas entraram em produção para atribuir o novo formato a partir de julho de 2026.
O que muda e o que não muda
Para quem já tem CNPJ, nada muda. Para quem mantém sistema, muda bastante:
- Os CNPJs numéricos existentes continuam válidos, com os mesmos dígitos verificadores. Ninguém precisa pedir número novo.
- O formato alfanumérico vale para novas inscrições, inclusive filiais novas de empresas antigas.
- Os dois formatos convivem. Uma inscrição nova ainda pode, por sorteio, receber um número só com dígitos.
- A máscara é a mesma:
XX.XXX.XXX/XXXX-DV, sempre com 14 caracteres, inclusive com zeros à esquerda. - As letras são sempre maiúsculas e não carregam informação: não indicam UF, natureza jurídica nem atividade.
- Os dígitos verificadores continuam sendo números de 0 a 9.
Como o número é formado
As 8 primeiras posições são a raiz, que identifica a empresa. As 4 seguintes são o número de ordem do estabelecimento (matriz ou filial). As 2 últimas são os dígitos verificadores. Raiz e ordem podem ter letras, cada uma de forma independente: dá para ter raiz com letras e ordem só com números, ou o contrário.
O sufixo 0001 continua indicando a matriz no momento da inscrição, mas a Receita avisa que isso deixa de ser definitivo: uma filial pode virar o estabelecimento principal sem mudar de número. Se o seu sistema deduz "é matriz" pelo 0001, revise essa regra.
A Receita também informou que vai bloquear internamente algumas combinações de letras, para evitar palavras ofensivas ou confusão com números. A orientação oficial é que o seu sistema aceite as 26 letras, sem tentar reproduzir essa lista.
Como calcular o dígito verificador
O cálculo é o módulo 11 que o CNPJ sempre usou. A única diferença é converter cada caractere em número antes: pegue o código ASCII e subtraia 48. Assim, os dígitos ficam com o próprio valor (0 vale 0, 9 vale 9) e as letras vão de A = 17 até Z = 42. Por isso a mesma rotina valida os dois formatos.
Veja o exemplo oficial da Receita, a base 12.ABC.345/01DE. Para o 1º dígito, multiplique cada valor pelo peso da sua posição, de 5 a 2 e depois de 9 a 2, e some os produtos:
| Caractere | 1 | 2 | A | B | C | 3 | 4 | 5 | 0 | 1 | D | E |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ASCII − 48 | 1 | 2 | 17 | 18 | 19 | 3 | 4 | 5 | 0 | 1 | 20 | 21 |
| Peso | 5 | 4 | 3 | 2 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
| Produto | 5 | 8 | 51 | 36 | 171 | 24 | 28 | 30 | 0 | 4 | 60 | 42 |
A soma dá 459. O resto da divisão de 459 por 11 é 8. Como o resto não é 0 nem 1, o dígito é 11 − 8 = 3. Se o resto fosse 0 ou 1, o dígito seria 0.
Para o 2º dígito, acrescente o 3 no fim da base e repita a conta com os pesos de 6 a 2 e depois de 9 a 2. A soma dá 424, o resto é 6 e o dígito é 11 − 6 = 5. O CNPJ completo fica 12.ABC.345/01DE-35.
O passo a passo do painel faz essa conta com o seu número.
Digite um número completo para ver a conta.
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
| 1º dígito | 1 | 2 | A | B | C | 3 | 4 | 5 | 0 | 1 | D | E |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Valor (ASCII − 48) | 1 | 2 | 17 | 18 | 19 | 3 | 4 | 5 | 0 | 1 | 20 | 21 |
| Peso | 5 | 4 | 3 | 2 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
| Produto | 5 | 8 | 51 | 36 | 171 | 24 | 28 | 30 | 0 | 4 | 60 | 42 |
Resto 8 é maior que 1, então DV = 11 − 8 = 3.
2º dígito verificador
| 2º dígito | 1 | 2 | A | B | C | 3 | 4 | 5 | 0 | 1 | D | E | 3 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Valor (ASCII − 48) | 1 | 2 | 17 | 18 | 19 | 3 | 4 | 5 | 0 | 1 | 20 | 21 | 3 |
| Peso | 6 | 5 | 4 | 3 | 2 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
| Produto | 6 | 10 | 68 | 54 | 38 | 27 | 32 | 35 | 0 | 5 | 80 | 63 | 6 |
Resto 6 é maior que 1, então DV = 11 − 6 = 5.
Como preparar o seu sistema
A maior parte dos problemas não está no cálculo, e sim em lugares onde o CNPJ foi tratado como número. Confira estes pontos:
- Banco de dados: coluna
CHAR(14)ouVARCHAR(14). ColunasBIGINTouNUMERICnão aceitam letras e ainda perdem zeros à esquerda. - Normalização: guarde sem máscara e em maiúsculas. Converta a entrada do usuário antes de validar e de buscar.
- Máscara de tela: o campo precisa aceitar letras nas 12 primeiras posições e só dígitos nas 2 últimas.
- Regex: troque
\dpor[0-9A-Z]nas 12 primeiras posições. A expressão sem máscara fica^[0-9A-Z]{12}[0-9]{2}$. - Validação: use ASCII − 48 em vez de converter o caractere direto para inteiro. Com só dígitos, o resultado é igual ao de antes.
- Integrações: APIs, arquivos de layout fixo e planilhas que tratam o CNPJ como número vão quebrar. No Excel, formate a coluna como texto.
- Ordenação e índices: com letras, a ordem alfabética muda conforme a collation do banco. Não dependa dela para regra de negócio.
Como testar com números fictícios
Gere uma massa com os dois formatos misturados. Assim você confirma que o sistema aceita o alfanumérico sem quebrar o numérico. Use o gerador de CNPJ com uma semente para ter sempre a mesma lista no teste automatizado.
Inclua também casos inválidos de propósito: dígito verificador errado, 13 ou 15 caracteres, letra nas posições do dígito e todos os caracteres iguais. Um bom validador recusa todos eles com a mensagem certa.
A Receita Federal também oferece o Simulador Nacional de CNPJ, que gera números fictícios de matriz e filial e valida as regras de formação. Aqui você tem a mesma conta, com lote de até 10.000 números e exportação em CSV, CSV (Excel), JSON e SQL.
Cuidados legais
Os números desta página são sorteados no seu navegador e servem só para teste de software. Eles não vêm de nenhum cadastro, mas um número sorteado pode coincidir por acaso com um CNPJ real. Nunca use um número gerado como se fosse de uma empresa.
Usar um CNPJ inventado para enganar alguém, abrir conta, emitir nota ou fazer cadastro pode configurar crime, como falsidade ideológica (art. 299 do Código Penal) e estelionato (art. 171).
Código pronto para o seu projeto
// Calcula os 2 DVs de uma base de 12 caracteres (sem máscara, maiúsculas).
// Funciona para o CNPJ alfanumérico e para o numérico.
function dvCnpj(base) {
const calc = (valores) => {
let soma = 0;
let peso = 2;
for (let i = valores.length - 1; i >= 0; i--) {
soma += valores[i] * peso;
peso = peso === 9 ? 2 : peso + 1;
}
const resto = soma % 11;
return resto < 2 ? 0 : 11 - resto;
};
const valores = [...base].map((c) => c.charCodeAt(0) - 48); // ASCII - 48
const dv1 = calc(valores);
const dv2 = calc([...valores, dv1]);
return String(dv1) + String(dv2);
}
dvCnpj('12ABC34501DE'); // "35" def dv_cnpj(base: str) -> str:
"""Calcula os 2 DVs de uma base de 12 caracteres (sem máscara, maiúsculas)."""
def calc(valores):
# pesos 2, 3, ..., 9, 2, 3, ... da direita para a esquerda
soma = sum(v * (2 + i % 8) for i, v in enumerate(reversed(valores)))
resto = soma % 11
return 0 if resto < 2 else 11 - resto
valores = [ord(c) - 48 for c in base] # ASCII - 48
dv1 = calc(valores)
dv2 = calc(valores + [dv1])
return f"{dv1}{dv2}"
print(dv_cnpj("12ABC34501DE")) # 35 -- Coluna numérica não aceita letras: migre para texto com 14 posições.
ALTER TABLE empresa
ALTER COLUMN cnpj TYPE CHAR(14)
USING lpad(cnpj::text, 14, '0');
-- Garante o formato: 12 letras ou dígitos + 2 dígitos, sem máscara.
ALTER TABLE empresa
ADD CONSTRAINT cnpj_formato CHECK (cnpj ~ '^[0-9A-Z]{12}[0-9]{2}$'); Perguntas frequentes
O CNPJ antigo deixa de valer?
Não. Os CNPJs só com números continuam válidos, com os mesmos dígitos verificadores, e a empresa não precisa fazer nada. O formato com letras vale só para novas inscrições.
Quando começou o CNPJ alfanumérico?
A Receita Federal começou a atribuir o novo formato em julho de 2026, conforme a IN RFB 2.119/2022 alterada pela IN RFB 2.229/2024. A atribuição é gradual e os dois formatos convivem.
O dígito verificador do CNPJ alfanumérico pode ter letra?
Não. Só as 12 primeiras posições aceitam letras. As 2 últimas são sempre dígitos de 0 a 9, calculados por módulo 11.
Quanto vale cada letra no cálculo?
O código ASCII da letra menos 48. A vale 17, B vale 18 e assim por diante até Z, que vale 42. Os dígitos valem eles mesmos.
O CNPJ alfanumérico aceita letra minúscula?
O número oficial usa só letras maiúsculas. Seu sistema pode aceitar a digitação em minúsculas, mas deve converter para maiúsculas antes de validar e de gravar.
O 0001 continua sendo a matriz?
Na inscrição, sim. Mas a Receita avisa que uma filial pode passar a ser o estabelecimento principal sem trocar de número, então o 0001 não é mais uma prova definitiva de matriz.
Leia também
Veja também
Gerador de CNPJ
Numérico ou alfanumérico, de 1 a 10.000, em CSV, JSON ou SQL.
13.712.274/0001-55Validar CNPJ
Confira um número ou cole uma coluna inteira da planilha.
I3.AYB.6K2/0001-03 · VálidoChave de acesso da NF-e
Cole a chave de 44 posições para ver cada campo e conferir o dígito, ou gere chaves para teste.
3520 0571 2274 … 7227Gerador de CPF
CPFs fictícios, por estado de emissão, um a um ou em lote.
137.122.747-00Atualizado em 14/11/2026.