Como Gerar CNPJ Válido para Testes de Software
Ao desenvolver sistemas que processam dados de empresas brasileiras, é necessário testar formulários, validações e integrações com CNPJs. Mas usar CNPJs reais é ilegal e antiético. A solução é gerar CNPJs matematicamente válidos — e entender como o algoritmo funciona.
Índice
- O que é CNPJ
- Estrutura do CNPJ
- Algoritmo de validação
- Gerando CNPJs válidos para testes
- Aspectos legais
- Implementação em JavaScript
- Perguntas Frequentes
- Ferramentas relacionadas
O que é CNPJ
O CNPJ (Cadastro Nacional da Pessoa Jurídica) é o número que identifica empresas e outras entidades jurídicas perante a Receita Federal do Brasil. É o equivalente ao CPF para pessoas jurídicas.
Todo CNPJ tem 14 dígitos no formato: XX.XXX.XXX/YYYY-ZZ
Estrutura do CNPJ
12.345.678/0001-95
├──────────┤├──┤├┤
Raiz Suf. DV
| Parte | Dígitos | Significado | |-------|---------|-------------| | Raiz | 8 primeiros | Identifica a empresa | | Sufixo | 4 seguintes | Identifica a filial (0001 = matriz) | | Dígitos verificadores | 2 últimos | Validam o número |
Algoritmo de validação
Os dois últimos dígitos (verificadores) são calculados usando módulo 11 com pesos específicos.
Primeiro dígito verificador
- Multiplique os 12 primeiros dígitos pelos pesos:
5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Some todos os produtos
- Calcule o resto da divisão por 11
- Se o resto for menor que 2, o dígito é 0. Senão, o dígito é
11 - resto
Segundo dígito verificador
- Multiplique os 13 primeiros dígitos pelos pesos:
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - Some todos os produtos
- Mesmo cálculo: resto < 2 → 0, senão → 11 - resto
Exemplo completo
Para a raiz 11.222.333 e sufixo 0001:
Dígitos: 1 1 2 2 2 3 3 3 0 0 0 1
Pesos: 5 4 3 2 9 8 7 6 5 4 3 2
Produtos: 5+4+6+4+18+24+21+18+0+0+0+2 = 102
Resto: 102 % 11 = 3
Primeiro DV: 11 - 3 = 8
Gerando CNPJs válidos para testes
O processo inverso (gerar em vez de validar) é simples:
- Gere 8 dígitos aleatórios para a raiz
- Use
0001como sufixo (simulando matriz) - Calcule o primeiro dígito verificador
- Calcule o segundo dígito verificador
- Concatene tudo
O resultado é um CNPJ que passa em qualquer validador, mas não corresponde a nenhuma empresa real.
Use o Gerador de CNPJ do Toolbox Brasil para gerar instantaneamente, com ou sem formatação.
Aspectos legais
O que é legal
- Gerar CNPJs para testar formulários durante o desenvolvimento
- Usar CNPJs gerados em ambientes de teste e homologação
- Validar que seu sistema aceita CNPJs com formato correto
- Testar masks de input e formatação
O que é ILEGAL
- Usar um CNPJ fictício para se passar por empresa real
- Abrir contas bancárias ou obter crédito com CNPJ falso
- Emitir notas fiscais com CNPJ gerado
- Qualquer uso que configure fraude ou falsidade ideológica
A geração para fins de teste é uma prática aceita e comum no desenvolvimento de software. O crime está no uso fraudulento, não na geração em si.
Implementação em JavaScript
Se quiser implementar a geração no seu próprio sistema:
function gerarCnpj() {
// Gera 8 dígitos aleatórios + sufixo 0001
const digits = [];
for (let i = 0; i < 8; i++) {
digits.push(Math.floor(Math.random() * 10));
}
digits.push(0, 0, 0, 1);
// Primeiro dígito verificador
const weights1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
let sum = digits.reduce((acc, d, i) => acc + d * weights1[i], 0);
let rem = sum % 11;
digits.push(rem < 2 ? 0 : 11 - rem);
// Segundo dígito verificador
const weights2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
sum = digits.reduce((acc, d, i) => acc + d * weights2[i], 0);
rem = sum % 11;
digits.push(rem < 2 ? 0 : 11 - rem);
return digits.join("");
}
Para validar, o processo é idêntico — você recalcula os dígitos verificadores e compara com os informados:
function validarCnpj(cnpj) {
const digits = cnpj.replace(/\D/g, "").split("").map(Number);
if (digits.length !== 14) return false;
// Calcula e compara os dois dígitos verificadores
// (mesma lógica acima)
}
Também oferecemos o Validador de CPF que usa lógica semelhante para pessoa física.
Perguntas Frequentes
O CNPJ gerado pode coincidir com um real?
Teoricamente sim, mas é extremamente improvável. Existem mais de 800 milhões de combinações possíveis para a raiz, e apenas cerca de 50 milhões de CNPJs ativos no Brasil.
Posso gerar CNPJs de filiais?
Sim. Basta variar o sufixo: 0001 (matriz), 0002, 0003... (filiais). Os dígitos verificadores são recalculados para cada variação.
O gerador funciona offline?
Se você usar a ferramenta do Toolbox Brasil, sim. Todo o processamento acontece no navegador — sem conexão com servidor. Funciona mesmo sem internet após carregar a página.
Como testar se meu validador funciona?
Gere vários CNPJs com o Gerador de CNPJ e verifique que seu sistema os aceita. Depois, teste com números inválidos (altere um dígito) e confirme que são rejeitados.
Ferramentas relacionadas
- Gerador de CNPJ — Gere CNPJs válidos para testes
- Gerador de CPF — Gere CPFs válidos para testes
- Validador de CPF — Valide CPFs pelo algoritmo oficial
- Gerador de Senha — Gere senhas seguras