Guia LGPD + Direito
Como gerar CPF válido sem infringir a lei?
Resposta curta: sim, é legal, se seguir 3 regras. O que a lei brasileira proíbe é usar CPF de terceiro real sem autorização (LGPD art. 7) ou falsidade ideológica com CPF gerado (Código Penal art. 299). Gerar matematicamente pra popular teste automatizado é uso legítimo e prática comum de mercado.
TL;DR — as 3 regras
- Gerar matematicamente, não copiar de base real. Algoritmo mod-11 → passa validação mas não corresponde a pessoa real.
- Restrição ao ambiente de teste. Zero uso em produção, formulário externo, ou cadastro real.
- Documentar origem. README + política interna dizendo "dados sintéticos gerados via X, nenhum CPF é real."
O que a lei diz (LGPD + Código Penal)
📜 LGPD (Lei 13.709/2018) — art. 7
Tratamento de dado pessoal exige base legal (consentimento, contrato, obrigação legal, etc). CPF de pessoa real cai nessa lei. CPF sintético matematicamente gerado não é dado pessoal - não identifica pessoa natural. Uso irrestrito em ambiente controlado.
⚖️ Código Penal — art. 299 (Falsidade Ideológica)
Crime de falsidade ideológica exige intenção de enganar ou obter vantagem indevida. Popular banco staging com 1000 CPFs sintéticos pra rodar teste automatizado não configura falsidade ideológica - o CPF nunca é apresentado como real a terceiro.
🚨 Onde vira crime
Se você pegar um CPF gerado e cadastrar em site de banco pra abrir conta, apresentar em contrato fake, ou passar em cadastro comercial pra obter desconto - aí é falsidade ideológica. A ferramenta é neutra; o uso decide a legalidade.
Os 4 passos práticos
Use um gerador matemático, não uma base real
Escolha uma ferramenta que gere via algoritmo mod-11 da Receita - não uma que consulte lista de CPFs vazados. Todo gerador sério (FakeForge, 4devs, validate-docbr, python-brasilidades) usa mod-11. Ferramentas ruins da darknet vendem base real vazada - fuja delas.
Restrinja o uso ao ambiente de teste
Uso legítimo: seed de banco staging, fixture de pytest/jest, mock de checkout em Playwright, load test em CI. Uso ilegal: cadastro em site real, apresentação a terceiros como real, contrato, formulário externo. A linha é onde o CPF sai do seu ambiente controlado.
Documente a origem dos dados
Adicione ao README: "Dados sintéticos gerados via <ferramenta> em <data>. Nenhum CPF corresponde a pessoa real. Uso restrito a ambiente de teste." Isso protege o time em auditoria LGPD, audit externo, ou disputa de propriedade intelectual.
Preserve isolamento de dados
Não commite dataset gerado em repo público. Guarde em fixture local + .gitignore, ou regenere na hora via SDK/API em CI. Isso previne que scraper descubra o padrão de geração e reproduza a estratégia.
Exemplo prático seguro
Popular banco de staging Postgres com 1000 usuários pra rodar teste de load em endpoint de signup:
// ✅ LEGAL - Node/TypeScript
import { FakeForge } from "fakeforge-br";
import { pool } from "./db/staging"; // apenas staging
const ff = new FakeForge();
const customers = await ff.preset("customer", 1000);
for (const c of customers) {
await pool.query(
"INSERT INTO users (cpf, name, email) VALUES ($1, $2, $3)",
[c.cpf, c.name, c.email]
);
}
// README documentado:
// "Dataset gerado via FakeForge em 2026-09-13.
// Nenhum CPF corresponde a pessoa real.
// Uso restrito a ambiente staging."Contra-exemplo do que NÃO fazer:
// ❌ ILEGAL - falsidade ideológica art. 299
const cpf = await ff.cpf(1);
// Cadastrar em site real como se fosse real:
await fetch("https://banco-real.com.br/abrir-conta", {
method: "POST",
body: JSON.stringify({ cpf, name: "João Fake" }),
});
// Isso não é teste - é fraude.FAQ rápido
Preciso de aprovação do jurídico pra usar CPF sintético em CI?+
Não. Uso interno em ambiente de teste é prática pacífica de mercado. Basta documentar no README/wiki interno. Se sua empresa tem DPO (Data Protection Officer), avise que o dataset é 100% sintético - decisão dele se quer política formal.
E se o CPF sintético coincidir com CPF de alguma pessoa real?+
Estatisticamente possível mas juridicamente inócuo. Você não sabe quem é, não usa pra identificar, não trata dado pessoal. LGPD só aplica quando dado identifica ou pode identificar pessoa. CPF isolado sem outros identificadores não pega no radar.
Posso publicar dataset gerado em repositório público (Kaggle, GitHub)?+
Tecnicamente sim (dado sintético não é pessoal). Mas não recomendo: bad actor pode escrapear + testar em sistemas mal protegidos. Se precisa publicar, gere small sample (10-100 rows) só pra doc, mantenha bulk em fixture privada.
É diferente pra CNPJ, RG, CNH?+
Mesmo princípio. Todos os documentos brasileiros com algoritmo de validação (mod-11 pra CPF/CNPJ/CNH/PIS) são geráveis sinteticamente sem infringir lei. RG por estado usa algoritmos diferentes mas mesma lógica se aplica.
E cartão de crédito? Vale o mesmo?+
Cartão sintético via algoritmo de Luhn (com BIN de teste como 4111 1111 1111 1111) é 100% legal e padrão da indústria. Adyen, Stripe, PayPal publicam BINs de teste pra desenvolvedores usarem. Nunca use cartão real de terceiro.
Próximos passos
Este guia é informativo e não substitui parecer jurídico. Consulte advogado se sua operação envolver dados de saúde, financeiros regulados por BACEN, ou dado sensível LGPD art. 5 II. Última atualização: setembro/2026.