bateCarimbo.
Numérico e alfanumérico · módulo 11

Gerador de CNPJ (numérico e alfanumérico)

Monta CNPJs com os dois dígitos verificadores corretos nos dois formatos, em lotes de até 100. As abas de validador e formatador trabalham sobre números que você já tem: conferem o DV, aplicam a máscara 00.000.000/0000-00 ou a removem.

Os CNPJs gerados aqui são fictícios. Os dígitos verificadores estão corretos, então eles passam em qualquer validador, mas nenhum deles corresponde a empresa inscrita na Receita Federal. Use apenas em desenvolvimento, homologação e demonstração. Uso permitido e proibido.

Raiz
1–8
Ordem
9–12
DV
13–14

Os CNPJs gerados nesta ferramenta são fictícios e servem apenas para testes de software. Eles passam em qualquer validador de dígito verificador, mas nunca foram inscritos na Receita Federal e não representam empresas reais.

O que o CNPJ identifica

O Cadastro Nacional da Pessoa Jurídica identifica estabelecimentos, e não empresas. A diferença parece sutil e é a origem de boa parte dos erros de modelagem: uma rede com quarenta lojas tem quarenta CNPJs distintos, todos pertencentes à mesma pessoa jurídica. São catorze posições, divididas em raiz (oito), ordem do estabelecimento (quatro) e dois dígitos verificadores.

Raiz, ordem e o que 0001 significa na prática

A raiz é o que amarra os estabelecimentos entre si: matriz e filiais compartilham os oito primeiros caracteres e diferem na ordem. A ordem 0001 marca o primeiro estabelecimento inscrito — aquele que os sistemas chamam de matriz. Ela não indica tamanho, faturamento nem qual endereço o cliente reconhece como sede: é só ordem de inscrição.

  • A chave natural de um cadastro de empresas é o CNPJ completo, com as catorze posições. Usar a raiz como chave única faz a segunda filial colidir com a primeira.
  • Agrupar estabelecimentos do mesmo grupo é recortar os oito primeiros caracteres. Isso continua funcionando com letras; o que deixa de funcionar é converter o número para inteiro antes de comparar.
  • Dados que costumam ser por raiz (quadro societário, natureza jurídica) e por estabelecimento (endereço, inscrição estadual, situação cadastral, CNAE secundário) merecem tabelas separadas desde o começo.

Para testar esse modelo, não basta uma lista de CNPJs aleatórios: eles vêm com raízes independentes e nenhum deles é filial de ninguém. Gere um CNPJ, guarde os oito primeiros caracteres e recalcule os dois dígitos com as ordens 0001, 0002 e 0003 — o Validador desta página confirma cada resultado. Se o que você precisa é de uma ficha completa, com razão social e endereço, o gerador de empresas monta o conjunto inteiro.

Anatomia do CNPJ

12.ABC.345/01DE-35

Raiz

1–8

Identifica a empresa. Todos os estabelecimentos dela repetem estas oito posições.

Ordem

9–12

Número do estabelecimento: 0001 é a matriz, 0002 em diante são as filiais.

DV

13–14

Módulo 11 sobre as doze posições anteriores. Numéricos nos dois formatos.

O formato alfanumérico, em vigor desde julho de 2026

Desde julho de 2026 as novas inscrições podem trazer letras de A a Z nas doze primeiras posições — a raiz e a ordem. Os dois dígitos verificadores continuam sempre numéricos, o que preserva a máscara 00.000.000/0000-00 e o tamanho dos campos. O motivo da mudança é aritmético: as combinações puramente numéricas da raiz estão se esgotando, e admitir trinta e seis símbolos por posição multiplica o espaço disponível sem alargar o número.

O cálculo do dígito não foi reinventado. Cada caractere passa a entrar na conta pelo seu código ASCII menos 48: o caractere 0 vale 0, o 9 vale 9, o A vale 17 e o Z vale 42. Para um CNPJ só de dígitos essa conversão devolve o próprio algarismo, então a mesma rotina atende aos dois formatos — não é preciso manter dois validadores. Os pesos e o módulo 11 seguem idênticos aos de antes.

Um detalhe que passa despercebido em revisão de código: a conversão é sensível a maiúsculas. A letra a minúscula tem código 97 e produziria valor 49, não 17. Normalizar a entrada para maiúsculas antes de calcular ou comparar deixou de ser cosmético e virou requisito.

O guia do CNPJ alfanumérico detalha o impacto em banco de dados e integrações, e o guia de módulo 11 explica o algoritmo do dígito verificador na forma geral, válido também para CPF, PIS e RENAVAM.

Formatos

Numérico

legado
  • 14 dígitos de 0 a 9 em todas as posições.
  • Formato de todas as inscrições anteriores; segue válido e não precisa ser convertido.

Alfanumérico

em vigorSERPRO
  • Raiz e ordem aceitam 0–9 e A–Z; os dois DVs continuam numéricos.
  • Vale para novas inscrições desde julho de 2026.

Regex (sem máscara)

^\d{14}$
^[0-9A-Z]{12}\d{2}$

O segundo padrão aceita os dois formatos: doze posições em [0-9A-Z] e dois dígitos de verificação. É ele que deve substituir o \d{14} espalhado pelos validadores antigos.

Exemplo — cálculo do DV

Raiz K7R2M9T4 com a ordem 0001. Base K7R2M9T40001 → DV 06 → CNPJ formatado K7.R2M.9T4/0001-06

  1. Converter cada caractere para o seu valor: código ASCII menos 48 (0 vale 0, A vale 17).
  2. Aplicar os pesos 2 a 9 da direita para a esquerda, reiniciando a cada oito posições.
  3. Somar os produtos e tirar o resto da divisão por 11. Resto menor que 2 gera dígito 0; caso contrário, o dígito é 11 menos o resto.
  4. Repetir a conta sobre a base acrescida do primeiro dígito para obter o segundo.
Primeiro dígito verificador
CaractereValorPesoProduto
K275135
77428
R343102
2224
M299261
99872
T367252
44624
0050
0040
0030
1122
Soma880

880 ÷ 11 → resto 0

Resto menor que 2, então o dígito é 0 — não se faz 11 − 0.

Dígito verificador = 0

Segundo dígito verificador (base + primeiro DV)
CaractereValorPesoProduto
K276162
77535
R344136
2236
M29258
99981
T368288
44728
0060
0050
0040
1133
0020
Soma797

797 ÷ 11 → resto 5

Resto maior ou igual a 2, então o dígito é 11 − 5.

Dígito verificador = 6

Esta base cai nos dois ramos da regra do resto: o primeiro dígito vem de um resto 0 e sai 0, o segundo vem de um resto 5 e sai 11 − 5. Um validador que escreve 11 − resto sem testar o resto devolveria 11 no lugar do primeiro dígito. O exemplo oficial do Serpro, base 12ABC34501DE com DV 35, está resolvido linha a linha no guia do CNPJ alfanumérico.

TypeScript
const WEIGHTS = [2, 3, 4, 5, 6, 7, 8, 9];

// Valor de cada caractere: código ASCII menos 48.
// "0" vira 0, "9" vira 9, "A" vira 17 e "Z" vira 42.
const valueOf = (char: string) => char.charCodeAt(0) - 48;

function checkDigit(base: string): number {
  let sum = 0;
  for (let i = base.length - 1; i >= 0; i--) {
    sum += valueOf(base[i]) * WEIGHTS[(base.length - 1 - i) % 8];
  }
  const remainder = sum % 11;
  return remainder < 2 ? 0 : 11 - remainder;
}

export function isValidCnpj(input: string): boolean {
  const cnpj = input.replace(/[.\-/]/g, "").toUpperCase();
  if (!/^[0-9A-Z]{12}\d{2}$/.test(cnpj)) return false;

  const base = cnpj.slice(0, 12);
  const first = checkDigit(base);
  const second = checkDigit(`${base}${first}`);
  return cnpj.slice(12) === `${first}${second}`;
}
Uma rotina só para os dois formatos, porque ASCII − 48 devolve o próprio algarismo quando o caractere é um dígito. Falta ainda barrar 00.000.000/0000-00 — a única sequência de algarismos repetidos que fecha a conta do módulo 11 e que, por convenção, é recusada. Para os demais algarismos não há o que barrar: os pesos das doze posições somam 58, e o dígito que sai de 58d nunca é o próprio d.

Erros comuns ao validar CNPJ

  • Guardar o CNPJ em coluna numérica. Um BIGINT come os zeros à esquerda e, depois do formato alfanumérico, simplesmente recusa o valor. A coluna precisa ser texto de catorze posições, e a migração precisa ser testada com um CNPJ com letras antes de subir.
  • Regex e máscaras que só aceitam dígitos. Padrões como \d{14} e máscaras de formulário presas a 0 rejeitam CNPJs válidos. O mesmo vale para campos de entrada que filtram tudo o que não é algarismo enquanto o usuário digita.
  • Converter para inteiro antes de calcular o dígito. Validadores escritos com parseInt ou divisões sucessivas por 10 funcionam com o formato numérico e quebram com letras. A conta tem de percorrer os caracteres.
  • Ordenação e faixas passam a ser alfabéticas. Em coluna de texto, ORDER BY coloca 1 antes de A e um BETWEEN deixa de recortar o intervalo que você imagina. Relatórios e paginações por cursor que dependiam da ordem numérica precisam ser revistos.
  • Confundir válido com inscrito. O dígito verificador atesta apenas que o número é bem formado. Existência, situação cadastral e atividade só a consulta oficial da Receita responde — nenhum número gerado aqui aparece lá.

Os mesmos tropeços aparecem em CPF, RG e CNH; o guia de erros comuns em validadores traz o sintoma e o teste de reprodução de cada um, e o guia de expressões regulares para documentos brasileiros reúne os padrões já corrigidos.

Quando usar este gerador (e quando não)

Ele resolve um problema específico: produzir números bem formados, em volume, sem tocar em documento de empresa real. Os usos em que isso se encaixa:

  • Popular seeds, fixtures e planilhas de homologação — até 100 por rodada, com ou sem máscara.
  • Exercitar formulários, máscaras de entrada e mensagens de erro, tanto no caminho feliz quanto alterando um caractere para ver o validador recusar.
  • Testar a adequação ao formato alfanumérico: migração de coluna, regex, ordenação e telas que exibem o número.
  • Capturas de tela, documentação de API e demonstrações, no lugar do CNPJ de um cliente.

E os casos em que ele não serve:

  • Qualquer operação que consulte a Receita Federal — emissão de nota fiscal, abertura de conta, cadastro em serviço que faz verificação cadastral. O número passa no cálculo e falha na consulta, porque nunca foi inscrito.
  • Descobrir o CNPJ de uma empresa existente. O gerador sorteia caracteres; ele não consulta base nenhuma.
  • Preencher cadastro real para contornar uma validação. Isso está fora dos termos de uso e, dependendo do contexto, configura fraude.

Trocar documento real por fictício em ambiente de teste também reduz exposição sob a LGPD, tema do guia sobre dados de teste e LGPD.

Perguntas frequentes

O que muda com o CNPJ alfanumérico e desde quando ele vale?

Desde julho de 2026 as novas inscrições podem conter letras de A a Z nas doze primeiras posições — a raiz e a ordem do estabelecimento. Os dois dígitos verificadores continuam sempre numéricos. CNPJs numéricos já existentes seguem válidos e não mudam: os dois formatos convivem indefinidamente.

Como o dígito verificador é calculado quando há letras?

Cada caractere entra na conta pelo seu código ASCII menos 48. Para os algarismos isso devolve o próprio valor (o caractere 0 vale 0, o 9 vale 9) e para as letras devolve 17 em diante (A vale 17, B vale 18, até Z valendo 42). Feita essa conversão, o resto do cálculo é o módulo 11 de sempre, com os mesmos pesos.

Por que a Receita precisou criar o formato alfanumérico?

Porque as combinações puramente numéricas da raiz estão se esgotando. Incluir letras nas doze posições da base multiplica a quantidade de inscrições possíveis sem aumentar o tamanho do número, o que manteria compatível o tamanho dos campos já existentes nos sistemas.

O que preciso mudar no meu sistema para aceitar o novo formato?

Três pontos concentram quase todos os problemas: colunas de banco declaradas como numéricas, que precisam virar texto; expressões regulares e máscaras que só aceitam dígitos; e rotinas de validação que convertem o CNPJ para inteiro antes de calcular o dígito. Ordenação e comparação também mudam, porque passam a ser alfabéticas.

A raiz do CNPJ ainda identifica matriz e filiais?

Sim, a estrutura não mudou. As oito primeiras posições continuam sendo a raiz, compartilhada por todos os estabelecimentos da mesma empresa, e as quatro seguintes a ordem, em que 0001 designa a matriz e os números seguintes as filiais. O que mudou foi apenas o conjunto de caracteres permitido.