Gerador de CNPJ
Gere um CNPJ fictício ou uma massa de teste inteira, no formato numérico ou no alfanumérico.
Número gerado
43.661.268/0001-87
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).
Escolha o formato, a quantidade e clique em Gerar: cada número sai com os dois dígitos verificadores corretos e passa na validação do seu sistema em teste. Você pode gerar até 10.000 CNPJs de uma vez, com ou sem máscara, e baixar em CSV, CSV (Excel), JSON ou SQL. Tudo é sorteado no seu navegador e serve só para teste de software.
Como usar o gerador
O painel acima já abre pronto para gerar um CNPJ. Para uma massa de teste, ajuste as opções:
- Escolha o formato: numérico (só dígitos) ou alfanumérico (letras e dígitos nas 12 primeiras posições).
- Escolha matriz (ordem
0001) ou filial (ordem sorteada). - Marque se quer o número com máscara (
12.ABC.345/01DE-35) ou sem (12ABC34501DE35). - Informe a quantidade, de 1 a 10.000, e, se quiser repetir a lista depois, uma semente.
- Clique em Gerar e copie o resultado ou baixe o arquivo no formato que o seu teste usa.
Numérico ou alfanumérico: qual gerar
Desde julho de 2026, a Receita Federal atribui CNPJs com letras a novas inscrições, e os números antigos continuam valendo. Na prática, o seu sistema vai receber os dois formatos misturados por muitos anos.
Use o numérico para testar telas, relatórios e integrações que já existiam. Use o alfanumérico para provar que a adaptação funcionou: campo que aceita letra, banco que não converte para número, API que manda o CNPJ como texto. O teste mais útil mistura os dois na mesma massa.
Se você ainda não conhece a regra nova, a página do CNPJ alfanumérico explica o formato, a conta das letras e o que mudar no sistema.
Gerar CNPJ em lote
O lote gera até 10.000 números por vez, sem repetir nenhum dentro da mesma lista. Os formatos de saída são pensados para colar direto no projeto:
- Lista: um CNPJ por linha, para colar num campo ou num arquivo de texto.
- CSV: com cabeçalho
cnpj, separado por vírgula, para scripts, bancos e ferramentas de teste. - CSV (Excel): a mesma lista pronta para o Excel em português, com acentos e colunas no lugar. Se for editar no Excel, mantenha a coluna como texto, senão ele apaga os zeros à esquerda.
- JSON: um array de strings, bom para fixtures de teste em JavaScript ou Python.
- SQL: um
INSERT INTO documentos_teste (cnpj) VALUES (...)pronto para popular uma tabela de homologação. O SQL vem sempre sem máscara, com 14 caracteres por CNPJ.
Um lote de 10.000 CNPJs sai em menos de 1 segundo, calculado no seu próprio navegador.
Se o teste pede CNPJ junto com outros números, como inscrição estadual ou chave de NF-e, monte o arquivo na página de massa de teste.
Semente: a mesma lista em todo teste
A semente é um número que fixa o sorteio. Com a mesma semente, as mesmas opções e a mesma quantidade, o gerador devolve exatamente a mesma lista, em qualquer computador.
Isso resolve um problema chato de teste automatizado: dado aleatório que muda a cada execução e faz o teste falhar sem motivo. Anote a semente no próprio teste ou no README da massa, e qualquer pessoa do time consegue recriar os mesmos números.
CNPJs inválidos para teste negativo
Testar só o caminho feliz não basta. O gerador também cria números errados de propósito, cada um com um defeito conhecido:
- Dígito verificador errado: a base está certa, mas o DV não confere.
- Tamanho errado: 13 ou 15 caracteres.
- Caracteres repetidos:
00.000.000/0000-00e parecidos. Alguns passam na conta, mas nenhum deve ser aceito. - Letra no dígito verificador: o formato alfanumérico só aceita letras nas 12 primeiras posições.
Seu validador deve recusar todos com uma mensagem clara. Se algum passar, você achou um bug antes do usuário.
Matriz e filial
As 8 primeiras posições são a raiz da empresa, e as 4 seguintes são a ordem do estabelecimento. Na inscrição, a matriz recebe a ordem 0001. Para testar cadastros com várias unidades da mesma empresa, gere filiais e confira se o sistema agrupa pela raiz.
No formato alfanumérico, a ordem da filial também pode ter letras, como em 12.ABC.345/01DE-35. Se o seu sistema extrai a raiz ou a ordem com conversão numérica, esse é o teste que vai mostrar o problema.
Como o dígito verificador é calculado
Os dois últimos dígitos saem de um módulo 11. Multiplique os 12 primeiros caracteres pelos pesos 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 e some. Se o resto da divisão por 11 for 0 ou 1, o dígito é 0; senão, é 11 menos o resto. O 2º dígito repete a conta com 13 caracteres e os pesos começando em 6.
Exemplo com 11.222.333/0001-81: a soma da base dá 102, o resto é 3 e o 1º dígito é 8. Com o 8 no fim, a soma dá 120, o resto é 10 e o 2º dígito é 1.
No alfanumérico, cada letra vira o código ASCII menos 48 antes da conta. O passo a passo completo, com o exemplo oficial da Receita, está na página do CNPJ alfanumérico.
Digite um número completo para ver a conta.
Conta feita com o número 11.222.333/0001-81.
Gere ou valide outro acima e a conta muda junto.
1º dígito verificador
| 1º dígito | 1 | 1 | 2 | 2 | 2 | 3 | 3 | 3 | 0 | 0 | 0 | 1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Valor (ASCII − 48) | 1 | 1 | 2 | 2 | 2 | 3 | 3 | 3 | 0 | 0 | 0 | 1 |
| Peso | 5 | 4 | 3 | 2 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
| Produto | 5 | 4 | 6 | 4 | 18 | 24 | 21 | 18 | 0 | 0 | 0 | 2 |
Resto 3 é maior que 1, então DV = 11 − 3 = 8.
2º dígito verificador
| 2º dígito | 1 | 1 | 2 | 2 | 2 | 3 | 3 | 3 | 0 | 0 | 0 | 1 | 8 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Valor (ASCII − 48) | 1 | 1 | 2 | 2 | 2 | 3 | 3 | 3 | 0 | 0 | 0 | 1 | 8 |
| Peso | 6 | 5 | 4 | 3 | 2 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
| Produto | 6 | 5 | 8 | 6 | 4 | 27 | 24 | 21 | 0 | 0 | 0 | 3 | 16 |
Resto 10 é maior que 1, então DV = 11 − 10 = 1.
Dicas para montar a massa de teste
- Guarde a massa no repositório junto com a semente usada, para revisar a mudança no pull request.
- Separe os casos válidos dos inválidos em arquivos ou tabelas diferentes. Fica claro o que cada teste espera.
- Teste com e sem máscara. Muito bug aparece quando o usuário cola o número formatado.
- Gere alguns em minúsculas à mão (
12abc34501de35) para conferir se a normalização funciona. - Nunca copie CNPJ de cliente real para o ambiente de teste. Número fictício resolve o mesmo problema sem expor ninguém.
Cuidados legais
Os CNPJs são sorteados no seu navegador e não vêm de nenhum cadastro da Receita. Eles servem para testar software. Um número sorteado pode, por coincidência, existir de verdade, então não use o resultado para identificar empresa nenhuma.
Usar CNPJ inventado para emitir nota, abrir conta ou enganar alguém pode configurar crime, como falsidade ideológica (art. 299 do Código Penal) e estelionato (art. 171).
Código pronto para o seu projeto
const CARACTERES = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
function dvCnpj(base) {
const calc = (v) => {
let soma = 0;
for (let i = v.length - 1, peso = 2; i >= 0; i--, peso = peso === 9 ? 2 : peso + 1) {
soma += v[i] * peso;
}
const resto = soma % 11;
return resto < 2 ? 0 : 11 - resto;
};
const v = [...base].map((c) => c.charCodeAt(0) - 48);
const dv1 = calc(v);
return String(dv1) + String(calc([...v, dv1]));
}
// Gera um CNPJ sem máscara. Math.random não aceita semente;
// para lista reproduzível, troque por um gerador com semente.
function gerarCnpj({ alfanumerico = false, matriz = true } = {}) {
const pool = alfanumerico ? CARACTERES : CARACTERES.slice(0, 10);
const sortear = (n) =>
Array.from({ length: n }, () => pool[Math.floor(Math.random() * pool.length)]).join('');
const base = sortear(8) + (matriz ? '0001' : sortear(4));
return base + dvCnpj(base);
}
gerarCnpj({ alfanumerico: true }); // 14 caracteres, sem máscara import random
import string
NUMEROS = string.digits
ALFANUMERICOS = string.digits + string.ascii_uppercase
def dv_cnpj(base: str) -> str:
def calc(v):
soma = sum(x * (2 + i % 8) for i, x in enumerate(reversed(v)))
resto = soma % 11
return 0 if resto < 2 else 11 - resto
v = [ord(c) - 48 for c in base]
dv1 = calc(v)
return f"{dv1}{calc(v + [dv1])}"
def gerar_cnpj(rng: random.Random, alfanumerico=False, matriz=True) -> str:
pool = ALFANUMERICOS if alfanumerico else NUMEROS
raiz = "".join(rng.choice(pool) for _ in range(8))
ordem = "0001" if matriz else "".join(rng.choice(pool) for _ in range(4))
return raiz + ordem + dv_cnpj(raiz + ordem)
rng = random.Random(2026) # mesma semente, mesma lista
massa = [gerar_cnpj(rng, alfanumerico=True) for _ in range(100)] -- Tabela de homologação e o formato que o botão "Baixar SQL" gera.
-- O SQL baixado vem sempre sem máscara (14 caracteres), por isso CHAR(14) basta.
CREATE TABLE documentos_teste (
cnpj CHAR(14) NOT NULL
);
INSERT INTO documentos_teste (cnpj) VALUES ('12ABC34501DE35'),
('11222333000181'); Perguntas frequentes
O CNPJ gerado é válido?
Ele é válido só no cálculo: os dígitos verificadores estão certos e o número passa na conferência do dígito do seu sistema em teste. Mas não está cadastrado na Receita Federal e é recusado em qualquer consulta à Receita, então não serve para nada fora de um teste de software.
Posso gerar CNPJ alfanumérico?
Sim. Escolha o formato alfanumérico no painel e as 12 primeiras posições podem sair com letras de A a Z. Os dígitos verificadores continuam numéricos.
Quantos CNPJs posso gerar de uma vez?
Até 10.000 por lote, sem números repetidos. Você baixa em lista, CSV, CSV (Excel), JSON ou SQL.
Como gerar sempre os mesmos CNPJs?
Informe uma semente. Com a mesma semente, as mesmas opções e a mesma quantidade, o gerador devolve a mesma lista, o que deixa o teste automatizado estável.
Os CNPJs que eu gero ficam salvos em algum lugar?
Não. O sorteio roda no seu navegador e nenhum número é enviado ao servidor. Se fechar a página sem baixar, a lista se perde.
Posso usar o CNPJ gerado para abrir uma conta ou emitir nota?
Não. O número não pertence a uma empresa cadastrada e usá-lo para enganar alguém pode ser crime. Use só em ambiente de teste e homologação.
Veja também
Validar CNPJ
Confira um número ou cole uma coluna inteira da planilha.
I3.AYB.6K2/0001-03 · VálidoCNPJ alfanumérico
O formato novo, com letras, em uso desde jul/2026. Gere, valide e veja a conta.
12.ABC.345/01DE-35Inscrição estadual
Inscrições fictícias das 27 UFs, cada uma com a regra do seu estado.
137.122.740.715Massa de teste
Vários tipos de número num arquivo só, uma coluna por tipo, até 10.000 linhas.
cnpj,cpf,pisGerador de CPF
CPFs fictícios, por estado de emissão, um a um ou em lote.
137.122.747-00Atualizado em 14/11/2026.