Ferramentas gratuitas para desenvolvedores. Nenhum dado real de pessoas é consultado ou armazenado.Como funciona o algoritmo do CPF →

Gerador de CPF válido para testes

Gere um CPF com dígitos verificadores corretos, com ou sem pontuação e por estado de origem. Gratuito, sem cadastro e processado no seu navegador.

529.982.247-25
Dígitos verificadores conferidos · região fiscal ES/RJ
Gerar em lote

Uso permitido: testes de software, protótipos e massa de dados. Uso proibido: cadastro em serviços reais. O número é aleatório e pode coincidir com um CPF real por acaso.

Como o gerador de CPF funciona

Um CPF tem 11 dígitos. Os nove primeiros formam a base do número e os dois últimos são dígitos verificadores, calculados a partir da base. Gerar um CPF válido, portanto, não exige consultar nada: basta sortear a base e fazer duas contas.

O gerador desta página segue exatamente esse caminho:

  1. Sorteia oito dígitos de 0 a 9 usando crypto.getRandomValues, a fonte de aleatoriedade do navegador.
  2. Define o nono dígito. Se você escolheu um estado, ele recebe o código da região fiscal correspondente (8 para SP, 6 para MG, 7 para RJ e ES, e assim por diante). Se não escolheu, ele também é sorteado.
  3. Descarta a base se todos os nove dígitos forem iguais, porque o resultado seria algo como 111.111.111-11, que passa no cálculo mas é inválido por convenção.
  4. Calcula o primeiro e o segundo dígito verificador pelo módulo 11 e junta tudo.

O número resultante passa em qualquer validador que implemente o algoritmo oficial. O status abaixo do número mostra a região fiscal deduzida do nono dígito, que é a mesma informação que você obteria analisando um CPF real. Para entender cada etapa em detalhe, leia o guia algoritmo de validação do CPF pelo módulo 11 e o guia sobre dígitos do CPF e regiões fiscais.

Passo a passo do cálculo dos dígitos verificadores

O cálculo é o mesmo para os dois dígitos; muda só a quantidade de números envolvidos e os pesos.

  1. Primeiro dígito: multiplique cada um dos nove dígitos da base pelos pesos 10, 9, 8, 7, 6, 5, 4, 3 e 2, nessa ordem, e some os produtos.
  2. Segundo dígito: acrescente o primeiro dígito à base, multiplique os dez dígitos pelos pesos 11, 10, 9, 8, 7, 6, 5, 4, 3 e 2 e some os produtos.
  3. Em cada caso, calcule o resto da divisão da soma por 11. Se o resto for 0 ou 1, o dígito é 0. Caso contrário, o dígito é 11 menos o resto.

Veja o cálculo completo para o CPF de exemplo 529.982.247-25, cuja base é 529982247:

Base:   5   2   9   9   8   2   2   4   7
Pesos: 10   9   8   7   6   5   4   3   2
        50 +18 +72 +63 +48 +10  +8 +12 +14 = 295
295 mod 11 = 9  ->  11 - 9 = 2   (1º dígito verificador)

Base:   5   2   9   9   8   2   2   4   7   2
Pesos: 11  10   9   8   7   6   5   4   3   2
        55 +20 +81 +72 +56 +12 +10 +16 +21  +4 = 347
347 mod 11 = 6  ->  11 - 6 = 5   (2º dígito verificador)

Resultado: 529.982.247-25

A regra do resto 0 ou 1 é a que mais causa erro em implementações caseiras: quem esquece dela produz um “dígito” 10 ou 11, que não cabe em uma posição. A calculadora de dígitos mostra essa conta, produto por produto, para qualquer base que você digitar.

Gerar CPF por código

Se você precisa de CPFs dentro de um teste automatizado ou de um script de seed, não faz sentido copiar números desta página. A função abaixo, em JavaScript, aplica a mesma lógica do gerador:

gerar-cpf.js
function digito(base, pesoInicial) {
let soma = 0;
for (let i = 0; i < base.length; i++) soma += Number(base[i]) * (pesoInicial - i);
const resto = soma % 11;
return resto < 2 ? 0 : 11 - resto;
}

function gerarCpf() {
let base;
do {
  base = Array.from({ length: 9 }, () => Math.floor(Math.random() * 10)).join('');
} while (/^(\d)\1{8}$/.test(base));
const dv1 = digito(base, 10);
return base + dv1 + digito(base + dv1, 11);
}

A função digito recebe a base e o peso inicial (10 para o primeiro dígito, 11 para o segundo) e aplica a regra do resto. O laço do...while refaz o sorteio quando os nove dígitos saem iguais. O retorno vem sem pontuação; para formatar, aplique a máscara 000.000.000-00 ou use o formatador.

Para testes, Math.random é suficiente. Se quiser a mesma fonte de aleatoriedade desta página, troque por crypto.getRandomValues. Versões completas, com validação e formatação, estão nas páginas de código para JavaScript, Python e PHP, entre outras linguagens.

Gerar pela API

Quando o código que precisa dos números não roda em JavaScript, ou quando você quer evitar duplicar a lógica, use a API pública. Ela não pede chave nem cadastro:

GET https://www.cpf.dev.br/api/v1/cpf/gerar?quantidade=5&uf=SP&formatado=true

A resposta é um objeto com a lista de CPFs:

{
  "cpfs": [
    "077.517.518-86",
    "428.197.028-21",
    "638.592.018-67",
    "932.772.978-10",
    "193.359.068-83"
  ]
}

Os números acima ilustram o formato; cada chamada devolve uma lista nova. Os parâmetros são opcionais: quantidade vai de 1 a 1000 (padrão 1), uf aceita a sigla de qualquer estado e formatado=true devolve os números com pontuação. Cada IP pode fazer até 60 requisições por minuto. Os detalhes de erros e cabeçalhos estão na documentação da API.

Quando usar um CPF gerado

Um CPF gerado serve para qualquer situação em que o sistema precisa de um número estruturalmente correto, mas não de uma pessoa real por trás dele:

  • Testar máscaras e validações de formulário. Confirmar que o campo aceita o número com e sem pontuação, que o erro aparece no momento certo e que o valor chega limpo ao back-end.
  • Popular bancos de desenvolvimento e homologação. Tabelas de clientes, pedidos ou contratos precisam de CPFs que passem nas mesmas constraints da produção.
  • Testes automatizados. Testes unitários, de integração e end-to-end ficam mais confiáveis quando cada execução usa números válidos e diferentes, em vez de um único CPF fixo copiado de algum lugar.
  • Demonstrações e protótipos. Telas apresentadas a clientes ou gravadas em vídeo não devem mostrar dados de clientes reais.

Para volumes maiores, o gerador de CPF em lote produz até 10 mil números de uma vez e exporta em CSV ou JSON.

O que não fazer

Um CPF gerado é válido apenas no sentido matemático: os dígitos verificadores conferem. Isso não o transforma em um documento, e alguns usos são inadequados ou ilegais:

  • Não cadastre o número em serviços reais. Lojas, bancos, operadoras e órgãos públicos consultam a situação do CPF na Receita Federal. Informar um número que não é seu em um cadastro real é fraude, não teste.
  • Não use em documentos, contratos ou notas fiscais. O número não identifica ninguém e não tem valor legal.
  • Não tente “consultar” o CPF gerado. O número é aleatório. Se por acaso ele coincidir com o de alguém, buscar informações sobre essa pessoa não tem relação com o seu teste.

Também vale o cuidado inverso: não use CPFs reais de clientes em ambientes de teste. A LGPD trata o CPF como dado pessoal, e copiar a base de produção para homologação expõe esses dados a mais pessoas e sistemas do que o necessário. O guia sobre CPF em massa de teste e LGPD explica como montar dados fictícios sem esse risco, e o comparativo CPF válido vs. CPF existente mostra por que nenhuma ferramenta matemática consegue dizer se um número pertence a alguém.

Perguntas frequentes

O CPF gerado pode ser de alguém?

Pode coincidir por acaso, como qualquer sequência de 11 dígitos, mas não é escolhido a partir de nenhuma base de pessoas. O gerador só faz contas.

Por que alguns validadores rejeitam 111.111.111-11?

Sequências com todos os dígitos iguais passam no cálculo do módulo 11, mas são inválidas por convenção. Este gerador nunca as produz e o validador as rejeita.

Posso gerar CPF com nome e endereço?

Não oferecemos. Dados fictícios de identidade completa facilitam fraude e não acrescentam nada a um teste de validação de CPF.

A ferramenta guarda o que eu gero?

Não. Tudo é calculado no seu navegador. Nenhum número é enviado ao servidor.

Como gerar CPF por código?

Use a API pública em /api/v1/cpf/gerar ou copie a função da página de código da sua linguagem. As duas usam o mesmo algoritmo desta ferramenta.