Como o gerador funciona
Um CNPJ tem 14 posições. As oito primeiras formam a raiz, que identifica a empresa; as quatro seguintes formam a ordem, que identifica o estabelecimento; as duas últimas são dígitos verificadores, calculados a partir das doze anteriores. Gerar um CNPJ válido, portanto, não exige consultar nenhum cadastro: basta sortear as doze primeiras posições e fazer duas contas.
O gerador desta página segue esse caminho:
- Sorteia as doze primeiras posições com
crypto.getRandomValues, a fonte de aleatoriedade do navegador. No formato numérico, cada posição recebe um dígito de 0 a 9; no alfanumérico, um caractere de 0 a 9 ou de A a Z. - Se você informou uma raiz fixa, as oito primeiras posições vêm dela e só a ordem é sorteada.
- Descarta a base se os doze caracteres forem iguais, porque sequências repetidas não são consideradas válidas.
- Calcula o primeiro e o segundo dígito verificador pelo módulo 11 e junta tudo, com ou sem pontuação.
Abaixo do número, a ferramenta mostra o formato detectado (numérico ou alfanumérico) e se o CNPJ é de matriz ou de filial. A estrutura completa do número está explicada no guia sobre raiz, ordem e dígitos do CNPJ.
Numérico ou alfanumérico: qual escolher
Desde julho de 2026, a Receita Federal emite CNPJs alfanuméricos para novas inscrições, conforme a IN RFB nº 2.229/2024. Os CNPJs numéricos já existentes não mudam: uma empresa aberta antes disso continua com o mesmo número. Na prática, o seu sistema passa a conviver com os dois formatos, possivelmente na mesma tabela.
Por isso a pergunta não é qual formato escolher, e sim quanto de cada um gerar:
- Numérico testa o caminho que o sistema sempre conheceu e confirma que nada quebrou na migração.
- Alfanumérico testa o caminho novo: colunas que eram numéricas, máscaras que descartavam letras, validações com
\de comparações que convertiam o CNPJ para número. É aí que aparecem os erros.
Uma massa de teste razoável tem os dois formatos misturados. O guia CNPJ alfanumérico: o que muda no seu sistema lista os pontos do código que costumam precisar de ajuste, e a página de exemplos de CNPJ alfanumérico para teste traz casos válidos e inválidos prontos para copiar.
Matriz e filiais (raiz e ordem)
A raiz é comum a todos os estabelecimentos de uma empresa. A ordem distingue cada um deles: 0001 costuma identificar a matriz, e as filiais recebem outros números de ordem. Assim, 11.222.333/0001-81 e 11.222.333/0002-62 são dois estabelecimentos da mesma raiz, com dígitos verificadores diferentes porque a ordem entrou no cálculo.
O gerador tem duas opções para esse cenário:
- Raiz fixa. Informe oito caracteres e o gerador mantém essa raiz, sorteando apenas a ordem. Para o formato numérico, a raiz precisa ter só dígitos; para o alfanumérico, aceita letras também.
- Gerar matriz + filiais. Marque a opção e escolha de 1 a 20 estabelecimentos. A lista começa pela ordem
0001e segue em sequência (0002,0003…), todos com a mesma raiz. Com a raiz alfanumérica12ABC345, por exemplo, os três primeiros são12.ABC.345/0001-88,12.ABC.345/0002-69e12.ABC.345/0003-40.
Esse recurso é útil para testar regras que agrupam estabelecimentos pela raiz, como relatórios consolidados por empresa ou validações que exigem que a filial pertença ao mesmo grupo da matriz.
Cálculo dos dígitos verificadores
O cálculo é o mesmo para os dois formatos. Cada caractere vale o seu código ASCII menos 48: os dígitos continuam valendo de 0 a 9, e as letras vão de A = 17 até Z = 42. Depois, multiplica-se cada valor por um peso, somam-se os produtos e aplica-se o módulo 11. Se o resto for 0 ou 1, o dígito é 0; caso contrário, é 11 menos o resto.
Veja o cálculo completo para o CNPJ de exemplo 12.ABC.345/01DE-35:
Caractere: 1 2 A B C 3 4 5 0 1 D E
Valor: 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 = 459
459 mod 11 = 8 -> 11 - 8 = 3 (1º dígito verificador)
Caractere: 1 2 A B C 3 4 5 0 1 D E 3
Valor: 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 = 424
424 mod 11 = 6 -> 11 - 6 = 5 (2º dígito verificador)
Resultado: 12.ABC.345/01DE-35
Para um CNPJ só com dígitos, como 11.222.333/0001-81, as somas são 102 e 120, os restos são 3 e 10 e os dígitos saem 8 e 1. A calculadora de dígitos do CNPJ mostra essa tabela, produto por produto, para qualquer base de doze caracteres.
Gerar CNPJ por código
Em testes automatizados e scripts de seed, vale gerar os números no próprio código. A função abaixo, em JavaScript, aplica a mesma lógica do gerador e funciona para os dois formatos:
const ALFANUMERICO = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
const NUMERICO = '0123456789';
function digito(chars, pesos) {
let soma = 0;
for (let i = 0; i < chars.length; i++) soma += (chars.charCodeAt(i) - 48) * pesos[i];
const resto = soma % 11;
return resto < 2 ? 0 : 11 - resto;
}
function gerarCnpj(alfabeto = ALFANUMERICO) {
let base;
do {
base = Array.from({ length: 12 }, () => alfabeto[Math.floor(Math.random() * alfabeto.length)]).join('');
} while (/^(.)\1{11}$/.test(base));
const dv1 = digito(base, [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
const dv2 = digito(base + dv1, [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]);
return base + dv1 + dv2;
}
gerarCnpj(); // alfanumérico, sem pontuação
gerarCnpj(NUMERICO); // só dígitosA expressão charCodeAt(i) - 48 é o que torna a mesma função válida para dígitos e letras. O laço do...while refaz o sorteio quando os doze caracteres saem iguais. O retorno vem sem pontuação; para aplicar a máscara 00.000.000/0000-00, use o formatador de CNPJ. Versões completas, com validação, estão nas páginas de código para JavaScript, Python, Java e outras linguagens.
Gerar pela API
Quando o código que precisa dos números não roda em JavaScript, use a API pública. Ela não pede chave nem cadastro:
GET https://www.cpf.dev.br/api/v1/cnpj/gerar?quantidade=5&formato=alfanumerico&formatado=true
A resposta traz a lista de CNPJs:
{
"cnpjs": [
"Z7.C2S.XS2/AB66-80",
"P2.1BV.DOM/WU3W-03",
"T9.ZJ4.BL0/1YYJ-85",
"PB.RCF.HHF/H7UW-98",
"5D.S9C.8BL/AARN-65"
]
}
Os números acima ilustram o formato; cada chamada devolve uma lista nova. quantidade vai de 1 a 1000, formato aceita numerico ou alfanumerico, raiz fixa as oito primeiras posições e formatado=true devolve os números com pontuação. Cada IP pode fazer até 60 requisições por minuto. Erros e cabeçalhos estão na documentação da API.
Quando usar
Um CNPJ gerado serve para qualquer situação em que o sistema precisa de um número estruturalmente correto, sem uma empresa real por trás:
- Testar formulários e máscaras. Confirmar que o campo aceita letras, converte minúsculas para maiúsculas e entrega o valor limpo ao back-end.
- Popular bancos de desenvolvimento e homologação. Tabelas de clientes, fornecedores e notas precisam de CNPJs que passem nas mesmas validações da produção, agora nos dois formatos.
- Testes automatizados. Cada execução pode usar números novos, em vez de um CNPJ fixo copiado de algum lugar.
- Demonstrações. Telas mostradas a clientes não devem exibir dados de empresas reais.
Para volumes maiores, o gerador de CNPJ em lote produz até 10 mil números de uma vez e exporta em CSV ou JSON.
O que não fazer
Um CNPJ gerado é válido apenas no sentido matemático: os dígitos verificadores conferem. Ele não corresponde a uma inscrição na Receita Federal, e alguns usos são inadequados:
- Não cadastre o número em serviços reais. Bancos, marketplaces e órgãos públicos consultam a situação cadastral do CNPJ. Informar um número inventado em um cadastro real não é teste.
- Não emita notas fiscais nem assine contratos com ele. O número não identifica nenhuma empresa e não tem valor legal.
- Não tente consultar o CNPJ gerado. Se por acaso ele coincidir com o de uma empresa, isso não tem relação com o seu teste.
O cuidado inverso também vale: em vez de copiar a base de produção para homologação, gere os números. Para confirmar que um CNPJ qualquer está matematicamente correto, use o validador de CNPJ.