Ir para o conteúdo

Gerador de CPF para teste de software

Números com dígitos verificadores consistentes para você testar software. Em lote de até 100, por região fiscal, com validador na mesma página. Nada sai do seu navegador.

Leia antes de copiar

Os números desta página são matematicamente válidos — passam na conta dos dígitos verificadores. O que eles não são é garantia de não pertencerem a ninguém: o gerador sorteia dígitos do mesmo espaço de onde saem os CPFs emitidos e não consulta base alguma, então um número daqui pode coincidir com o CPF de uma pessoa real. Não há como saber — só a Receita Federal sabe.

Servem para uma coisa: testar software. Popular um banco de desenvolvimento, exercitar a máscara de um formulário, rodar um teste automatizado. Usar documento falso para se identificar perante alguém é crime — Código Penal, art. 307. ver o artigo no Planalto →

De 1 a 100 por vez

Os CPFs se refazem a cada mudança de campo — o botão leva você até eles.

Seu número de teste, destrinchado

1 CPF · com pontuação · região sorteada

O que compõe este número

Só dígitoscomo o banco de dados costuma guardar o campo — sem ponto nem traço 33516570806
Os nove primeirossorteados; é sobre eles que os verificadores são calculados 335165708
Dígitos verificadorescalculados por módulo 11 — estes dois não são sorteados 06
Região fiscallida no nono dígito, o último antes dos verificadores 8ª região fiscal — SP
Este CPF é de alguém?

Não sabemos, e esta página não teria como saber. O gerador sorteia nove dígitos e calcula os dois últimos pela regra pública do módulo 11, sem consultar base alguma — a titularidade de um CPF só existe nos sistemas da Receita Federal. Como os CPFs emitidos vêm desse mesmo espaço de nove dígitos, é perfeitamente possível que o número acima já tenha sido emitido para alguém. Passar na conta dos verificadores diz que o número é bem formado, e nada além disso — não diz que ele está livre. É por isso que ele serve no seu ambiente de teste, e só nele.

CPF gerado 335.165.708-06
Módulo 11 · aritmética pública, sem tabela oficial envolvida ver o algoritmo

O lote, pronto para copiar

335.165.708-06

Um CPF por linha. O CSV sai com cabeçalho cpf e o JSON como lista de textos — os dois montados no seu navegador, sem passar por servidor.

Como melhorar esta calculadora?

Faltou uma verba, o número saiu diferente do seu contracheque ou alguma palavra ficou confusa? Escreva. Quem lê é a pessoa que mantém o site, e é daí que sai a próxima versão desta página.

Escrever uma sugestão →

Abre seu programa de e-mail com o assunto e a página já preenchidos, e com as perguntas que ajudam a entender o caso. Sem formulário, sem cadastro, sem cookie.

publicidade

336×280 · in-content

Validar um CPF

Cole um número para conferir se ele passa na conta dos dígitos verificadores. É a mesma conferência que o gerador usa e roda no seu navegador — o número digitado não é enviado a lugar nenhum. Ela responde se o número é bem formado, nunca se ele existe ou de quem é.

Com ou sem pontuação — o que não for dígito é ignorado

O veredito se atualiza enquanto você digita.

Veredito

Dígitos verificadoresDígitos verificadores conferem Conferem
Região fiscallida no nono dígito 7ª região fiscal — ES, RJ

Como o dígito verificador é calculado

O CPF tem 11 dígitos: nove de base e dois verificadores no fim. Os dois últimos não são sorteados — saem de uma conta de módulo 11 sobre os anteriores, e é ela que permite a um sistema recusar um número digitado errado sem consultar ninguém. Vamos calcular os dois de 111.444.777-35.

A conta abaixo acompanha o CPF do validador: troque o número lá e os passos daqui se refazem sobre ele.

1. Primeiro verificador: pesos de 10 a 2

Multiplique cada um dos nove dígitos da base (111444777) por um peso que começa em 10 e desce até 2:

1×10 + 1×9 + 1×8 + 4×7 + 4×6 + 4×5 + 7×4 + 7×3 + 7×2 = 162

Divida por 11 e olhe o resto: 162 ÷ 11 = 14, resto 8. A regra é resto menor que 2 vira dígito 0; caso contrário o dígito é 11 − resto. Aqui, 11 − 8 = 3: o primeiro verificador é 3.

2. Segundo verificador: pesos de 11 a 2, já com o primeiro

Agora a base tem dez dígitos (1114447773) e os pesos começam em 11:

1×11 + 1×10 + 1×9 + 4×8 + 4×7 + 4×6 + 7×5 + 7×4 + 7×3 + 3×2 = 204

204 ÷ 11 = 18, resto 611 − 6 = 5. O segundo verificador é 5, e a base fecha em 111.444.777-35.

Se o CPF que você digitou termina em outros dois dígitos, é por isso que o validador recusa: a base é a mesma, mas os verificadores que ela produz são estes.

3. A exceção que quase todo validador esquece

As dez sequências de dígitos repetidos — 00000000000, 11111111111 e assim por diante — passam nessa conta. É coincidência aritmética, não erro seu: por isso a regra precisa recusá-las numa linha à parte, antes do módulo 11. É o caso de teste que separa um validador pronto de um validador quase pronto.

Código pronto em JavaScript, Python e PHP

As três implementações fazem o que a seção acima descreve: limpam o que não é dígito, recusam tamanho errado, recusam sequência repetida e conferem os dois verificadores. Use à vontade, inclusive em projeto comercial.

JavaScript

function validarCPF(valor) {
  const d = valor.replace(/\D+/g, '');
  if (d.length !== 11) return false;
  if (/^(\d)\1{10}$/.test(d)) return false;

  const dv = (n) => {
    let soma = 0;
    for (let i = 0; i < n; i++) soma += +d[i] * (n + 1 - i);
    const resto = soma % 11;
    return resto < 2 ? 0 : 11 - resto;
  };

  return dv(9) === +d[9] && dv(10) === +d[10];
}

Python

import re

def validar_cpf(valor: str) -> bool:
    d = re.sub(r"\D+", "", valor)
    if len(d) != 11 or d == d[0] * 11:
        return False

    def dv(n: int) -> int:
        soma = sum(int(d[i]) * (n + 1 - i) for i in range(n))
        resto = soma % 11
        return 0 if resto < 2 else 11 - resto

    return dv(9) == int(d[9]) and dv(10) == int(d[10])

PHP

function validarCpf(string $valor): bool {
    $d = preg_replace('/\D+/', '', $valor);
    if (strlen($d) !== 11) return false;
    if (preg_match('/^(\d)\1{10}$/', $d)) return false;

    $dv = function (int $n) use ($d): int {
        $soma = 0;
        for ($i = 0; $i < $n; $i++) $soma += $d[$i] * ($n + 1 - $i);
        $resto = $soma % 11;
        return $resto < 2 ? 0 : 11 - $resto;
    };

    return $dv(9) == (int) $d[9] && $dv(10) == (int) $d[10];
}

Um bom conjunto de casos de teste: 111.444.777-35 (passa), 111.111.111-11 (repetido, precisa ser recusado), 123.456.789-00 (verificador errado) e 123 (tamanho errado).

O nono dígito e as dez regiões fiscais

O nono dígito — o último antes dos dois verificadores — indica a região fiscal da Receita Federal em que o número foi emitido. É a única parte do CPF que carrega informação, e é o que usar quando o seu teste precisa de números plausíveis de um estado específico.

Regiões fiscais por dígito
Nono dígitoRegiãoEstados
1 1ª região DF, GO, MS, MT, TO
2 2ª região AC, AM, AP, PA, RO, RR
3 3ª região CE, MA, PI
4 4ª região AL, PB, PE, RN
5 5ª região BA, SE
6 6ª região MG
7 7ª região ES, RJ
8 8ª região SP
9 9ª região PR, SC
0 10ª região RS

A décima região usa o dígito 0 — por isso a ordem fiscal e a ordem numérica não coincidem no fim da tabela.

Para que serve — e para que não serve

Serve

  • Popular banco de desenvolvimento. Uma tabela de clientes com CPF como chave única precisa de números que não se repitam e que passem na validação da própria aplicação. O lote desta página sai sem repetição, e por isso o INSERT não estoura no meio.
  • Exercitar máscara e validação de formulário. Conferir que o campo aceita com e sem pontuação, que recusa 10 dígitos, que recusa sequência repetida e que mostra a mensagem certa em cada caso.
  • Teste automatizado e QA. Fixture de teste de integração, cadastro de homologação, carga de dados para medir desempenho — sempre em ambiente que é seu.
  • Estudar o algoritmo. Refazer à mão a conta de módulo 11, como na seção acima, é o jeito mais rápido de entender por que um dígito trocado é detectado.

Não serve

  • Identificar-se perante alguém. Cadastro em site de terceiro, compra, contrato, atendimento. Isso é uso de documento falso, é crime (CP, art. 307) e é rastreável.
  • Burlar validação de sistema alheio. Passar na conta dos verificadores não torna o número seu. Um sistema que consulte a Receita recusa na hora — ou, se o número por acaso for de alguém, você acaba de usar o CPF de outra pessoa. Nos dois casos a tentativa fica registrada.
  • Descobrir de quem é um CPF. Esta página não consulta base nenhuma, e não existe consulta pública de titularidade de CPF.

Para as contas que valem dinheiro de verdade — Salário líquido, Rescisão trabalhista ou Férias — veja as calculadoras trabalhistas. Se o que você precisa é somar tempo, a calculadora de horas resolve. Os outros geradores ficam no hub da categoria.

Perguntas frequentes

O CPF gerado aqui é de alguma pessoa?

Não sabemos, e quem garante que não está prometendo o que não pode. O gerador só faz a conta dos dois dígitos verificadores sobre nove dígitos sorteados: ele não consulta base nenhuma e não tem como saber se aquele número já foi emitido. Como os CPFs em uso saem do mesmo espaço de nove dígitos, existe chance real de coincidência com o CPF de uma pessoa de verdade. Só a Receita Federal sabe quais números existem. É exatamente por isso que estes números servem no seu ambiente de teste e em lugar nenhum além dele.

Posso usar esse número para me cadastrar em algum site?

Não. Estes números existem para testar software que você mesmo está construindo: popular um banco de desenvolvimento, exercitar a máscara de um formulário, rodar um teste automatizado. Usar documento falso para se identificar perante alguém é crime, previsto no art. 307 do Código Penal, com pena de detenção e multa.

Como validar um CPF em JavaScript?

Limpe tudo que não for dígito, recuse o que não tiver 11 dígitos e recuse as dez sequências de dígitos repetidos. Depois calcule o primeiro verificador com pesos de 10 a 2 sobre os nove dígitos da base e o segundo com pesos de 11 a 2 sobre os dez primeiros: some, tire o resto da divisão por 11 e use 0 quando o resto for menor que 2, senão 11 menos o resto. A função pronta, em JavaScript, Python e PHP, está na seção de código desta página.

O que significa o nono dígito do CPF?

Ele indica a região fiscal da Receita Federal em que o número foi emitido — são dez regiões, cada uma com um dígito, e a décima usa o zero. O dígito 8, por exemplo, é São Paulo; o 7 é Espírito Santo e Rio de Janeiro. É a única parte do número que carrega informação: os oito primeiros são sequenciais e os dois últimos são calculados.

Por que 111.111.111-11 é recusado se a conta fecha?

Porque a conta fecha mesmo. As dez sequências de dígitos repetidos passam no módulo 11 por coincidência aritmética, e é justamente por isso que todo validador sério as recusa numa regra à parte. Se o seu validador aceita 111.111.111-11, ele está incompleto — e este é o caso de teste que revela isso.