Pular para o conteúdo
Toolbox BrasilToolbox Brasil

Como Gerar CNPJ Válido para Testes de Software

·6 min de leitura·Por Equipe Toolbox Brasil

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

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

  1. Multiplique os 12 primeiros dígitos pelos pesos: 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Some todos os produtos
  3. Calcule o resto da divisão por 11
  4. Se o resto for menor que 2, o dígito é 0. Senão, o dígito é 11 - resto

Segundo dígito verificador

  1. Multiplique os 13 primeiros dígitos pelos pesos: 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
  2. Some todos os produtos
  3. 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:

  1. Gere 8 dígitos aleatórios para a raiz
  2. Use 0001 como sufixo (simulando matriz)
  3. Calcule o primeiro dígito verificador
  4. Calcule o segundo dígito verificador
  5. 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

  • 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


Abrir Gerador de CNPJ →