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

Gerador de CPF em lote

Gere de 1 a 10 mil CPFs válidos de uma vez, escolha o estado e o formato e baixe o resultado em CSV ou JSON para popular bancos e testes. Gratuito, sem cadastro e processado no seu navegador.

Lote gerado no seu navegador. Nada é enviado ao servidor. Use apenas em ambientes de teste.

Para que serve um lote de CPFs

Um único CPF resolve o teste de um formulário. Muitos cenários, porém, precisam de volume: uma tabela de clientes com milhares de linhas, um teste de carga que cria cadastros em sequência, um relatório que só faz sentido com dados suficientes para paginar, agrupar e filtrar. Copiar números um a um do gerador de CPF não escala.

O gerador em lote produz de 1 a 10 mil CPFs de uma vez, todos com dígitos verificadores corretos e nenhum com dígitos todos iguais. Você escolhe:

  • Quantidade: de 1 a 10.000. Valores fora desse intervalo são ajustados ao limite mais próximo.
  • Estado: “Qualquer” sorteia o nono dígito; um estado específico fixa o nono dígito na região fiscal correspondente.
  • Formato: com pontuação (000.000.000-00) ou só números.

O resultado aparece em uma caixa de texto, um CPF por linha, e pode ser copiado de uma vez ou baixado como arquivo CSV ou JSON.

Usos comuns:

  • popular bancos de desenvolvimento e homologação com dados que passam nas mesmas validações da produção;
  • montar fixtures para testes de integração que precisam de muitos registros distintos;
  • testar importações de planilhas, com arquivos de tamanho realista;
  • alimentar testes de carga e de desempenho de buscas por CPF.

CSV ou JSON: qual usar

Os dois arquivos contêm os mesmos números; o que muda é quem vai ler.

O CSV (cpfs.csv) tem uma coluna chamada cpf na primeira linha e um número por linha depois dela. É o formato certo para importar em banco de dados, abrir em planilha ou processar com ferramentas de linha de comando. Um cuidado: ao abrir em planilha, escolha “Só números” com a coluna como texto, ou o programa pode tratar o CPF como número e cortar zeros à esquerda.

O JSON (cpfs.json) é um array de strings, por exemplo ["52998224725", "04506643682"]. É o formato mais prático para fixtures de testes automatizados e para scripts, porque qualquer linguagem lê JSON sem configuração:

import { readFileSync } from 'node:fs';

const cpfs = JSON.parse(readFileSync('cpfs.json', 'utf8'));
console.log(cpfs.length); // quantidade gerada

Se o destino é um banco, prefira CSV. Se o destino é código, prefira JSON.

Importar no banco de dados

Para importação, gere o lote no modo “Só números”. Guardar o CPF como texto de 11 caracteres, sem pontuação, é a forma mais simples de manter buscas e índices consistentes. Os exemplos abaixo partem de uma tabela de teste com uma coluna cpf.

No PostgreSQL, o comando \copy do psql lê o arquivo da sua máquina e envia para o servidor. A opção HEADER pula a primeira linha, que contém o nome da coluna:

importar-postgresql.sql
CREATE TABLE clientes_teste (
id  serial PRIMARY KEY,
cpf char(11) NOT NULL
);

\copy clientes_teste (cpf) FROM 'cpfs.csv' WITH (FORMAT csv, HEADER true)

O comando SQL COPY ... FROM 'arquivo', sem a barra, também funciona, mas lê o arquivo no sistema de arquivos do servidor e exige permissões específicas; para um arquivo baixado no seu computador, \copy é o caminho mais direto.

No MySQL, use LOAD DATA LOCAL INFILE. A cláusula IGNORE 1 LINES pula o cabeçalho:

CREATE TABLE clientes_teste (
  id  INT AUTO_INCREMENT PRIMARY KEY,
  cpf CHAR(11) NOT NULL
);

LOAD DATA LOCAL INFILE 'cpfs.csv'
  INTO TABLE clientes_teste
  FIELDS TERMINATED BY ','
  LINES TERMINATED BY '\n'
  IGNORE 1 LINES
  (cpf);

O LOCAL exige que a opção local_infile esteja habilitada no servidor e no cliente. Se a importação for recusada com erro de permissão, é essa a configuração a verificar.

Se a tabela tem UNIQUE na coluna cpf, lembre que cada número do lote é sorteado de forma independente: repetições são raras, mas possíveis. Remova duplicatas antes de importar ou use a cláusula de conflito do seu banco. Para levar a validação dos dígitos para dentro do banco, com CHECK ou função, veja o guia de validação de CPF em PostgreSQL e MySQL.

Gerar por estado

O nono dígito do CPF indica a região fiscal onde o número foi emitido. São dez regiões, numeradas de 0 a 9; algumas cobrem um único estado e outras agrupam vários:

9º dígito Estados
0 RS
1 DF, GO, MS, MT, TO
2 AC, AM, AP, PA, RO, RR
3 CE, MA, PI
4 AL, PB, PE, RN
5 BA, SE
6 MG
7 ES, RJ
8 SP
9 PR, SC

Ao escolher um estado, todos os CPFs do lote recebem o nono dígito daquela região. Isso é útil quando o sistema testado usa essa informação, por exemplo para pré-selecionar um estado no cadastro ou para gerar relatórios regionais. Como a região agrupa estados, escolher ES ou RJ produz o mesmo resultado: o nono dígito será 7 nos dois casos. O guia sobre dígitos do CPF e regiões fiscais explica a origem dessa divisão e por que ela não indica onde a pessoa mora hoje.

Limites e desempenho

O lote é calculado inteiramente no navegador. Gerar um CPF exige duas somas de nove ou dez multiplicações, e até 10 mil números ficam prontos em menos de um segundo em um computador comum. O arquivo CSV ou JSON é montado na própria página e baixado sem passar por nenhum servidor.

Além do cálculo, a página precisa exibir o resultado na caixa de texto, e listas muito grandes tornam a rolagem e a cópia mais pesadas; por isso o lote vai até 10 mil. Para mais números, gere vários lotes ou leve a geração para o seu código.

A API pública oferece o mesmo recurso para scripts e pipelines:

GET https://www.cpf.dev.br/api/v1/cpf/gerar?quantidade=1000&uf=MG&formatado=false

Cada chamada devolve até 1000 CPFs no campo cpfs, e cada IP pode fazer até 60 requisições por minuto, sem chave. Para dezenas de milhares de registros em um seed, normalmente é mais simples copiar a função de geração da página de código da sua linguagem, como JavaScript ou Python, e gerar localmente. Lembre também que dados de teste devem ser fictícios do começo ao fim: o guia sobre CPF em massa de teste e LGPD mostra como montar uma base de homologação sem copiar dados reais.

Perguntas frequentes

Os CPFs de um lote podem se repetir?

Podem, embora seja raro. Cada número é sorteado de forma independente. Se a sua tabela tem restrição de unicidade, remova duplicatas antes de importar.

Qual o máximo de CPFs por lote?

10 mil na ferramenta e 1000 por chamada na API. Para volumes maiores, gere vários lotes ou use a função de geração diretamente no seu código.

Posso usar o lote em produção?

Não. Os números servem para ambientes de desenvolvimento, homologação e testes. Eles não foram atribuídos a ninguém de propósito e podem coincidir com CPFs reais; por isso não devem entrar em cadastros reais.

O lote é gerado no servidor?

Não. Todo o lote é calculado no seu navegador e o arquivo é montado localmente. Nada é enviado ao servidor.