Validador de CPF
Verifique se um CPF é válido de acordo com o algoritmo oficial.
Insira o CPF para validação
Digite o CPF com ou sem pontuação
Resultado da Validação
Escrito por Equipe iComLabs
Conteúdo revisado periodicamente para manter a precisão técnica.
Um validador de CPF confere se um número de onze algarismos obedece à regra de formação que a Receita Federal usa para montar todo CPF: os dois últimos dígitos precisam ser exatamente o resultado de uma conta feita sobre os nove primeiros. A ferramenta desta página executa essa conferência dentro do seu navegador, em um campo único, sem cadastro e sem enviar o número para lugar algum.
Você pode colar o número já formatado, como 529.982.247-25, ou digitar apenas os onze algarismos seguidos: o campo aceita as duas formas e vai aplicando pontos e traço enquanto você escreve. Ao clicar em validar, o resultado aparece logo abaixo, com a confirmação de que o número está correto ou com a mensagem exata do motivo pelo qual ele foi recusado.
Este artigo destrincha o que acontece entre o clique e o resultado: como os dígitos verificadores são calculados, o que cada mensagem de erro quer dizer e por que sequências como 111.111.111-11 são recusadas mesmo passando na conta. Sim, elas passam. Essa é a parte que quase nenhum material sobre o assunto explica, e ela vem com a aritmética aberta mais adiante.
Como funciona o validador de CPF?
O validador de CPF desta página roda quatro checagens em sequência, todas localmente. Primeiro conta se o número tem onze algarismos depois de descartar pontos, traço e qualquer outro símbolo. Depois verifica se ele não é uma sequência de algarismos repetidos. Em seguida recalcula o primeiro dígito verificador a partir dos nove primeiros números e, por último, o segundo dígito, comparando cada um com o que você digitou. Se qualquer uma dessas etapas falhar, a validação para ali e devolve a mensagem correspondente.
O campo é único e tolerante ao formato. Digitar 52998224725 ou colar 529.982.247-25 leva ao mesmo resultado, porque a primeira coisa que o código faz é remover tudo que não for algarismo. A máscara que aparece enquanto você escreve existe só para facilitar a leitura na tela, não para exigir um formato específico de entrada. Quando o número passa nas quatro checagens, a resposta é direta: "CPF Válido", seguida da confirmação de que ele está correto de acordo com o algoritmo oficial.
Convém separar duas tarefas que costumam ser confundidas. Gerar é criar um número novo que satisfaça a regra dos dígitos verificadores; validar é pegar um número que já existe e conferir se ele satisfaz essa mesma regra. Quem monta massa de dados para teste normalmente usa gerador e validador de CPF em sequência: cria os números no Gerador de CPF e confere aqui se o sistema que consumiu esses dados devolveu o que devia.
O que são os dígitos verificadores do CPF
Os dígitos verificadores são os dois últimos algarismos do CPF, aqueles que vêm depois do traço, e é sobre eles que todo validador de CPF trabalha. Eles não são sorteados nem escolhidos por ninguém: saem de um cálculo determinístico aplicado sobre os nove primeiros algarismos, conhecido como módulo 11. Dada uma mesma base de nove números, o par de verificadores é sempre o mesmo, em qualquer sistema que implemente a regra corretamente.
A função deles é detectar erro de digitação antes que ele vire um cadastro errado. Trocar dois algarismos de lugar, esquecer um número ou apertar a tecla vizinha quase sempre quebra a relação matemática entre a base e os verificadores, e o sistema recusa a entrada na hora. É o mesmo princípio usado em código de barras e em número de conta bancária: um pedaço do próprio número serve de prova de que o restante está íntegro.
Cálculo do primeiro dígito verificador
Para chegar ao primeiro dígito, cada um dos nove primeiros algarismos é multiplicado por um peso que começa em 10 e desce até 2, da esquerda para a direita. Os nove produtos são somados, e essa soma é dividida por 11 para obter o resto.
O dígito procurado é 11 menos esse resto. Quando a subtração resulta em 10 ou 11, o valor não cabe em uma única casa decimal, e a regra manda usar 0 no lugar. Esse detalhe é a origem mais comum de bug em implementação caseira do algoritmo.
Cálculo do segundo dígito verificador
O segundo dígito repete a lógica com duas mudanças. Agora entram dez algarismos na conta, porque o primeiro verificador recém-descoberto passa a fazer parte da base, e os pesos começam em 11 e descem até 2.
O resto da divisão por 11 é subtraído de 11 da mesma forma, e a regra do 0 para resultados iguais ou maiores que 10 continua valendo. Como o segundo dígito depende do primeiro, um erro no primeiro contamina o segundo, e o número acaba recusado já na etapa anterior.
Exemplo completo passo a passo
Vamos aplicar as duas contas ao número 529.982.247-25, começando pela base 529982247. A tabela abaixo mostra cada algarismo multiplicado pelo peso que lhe cabe, na ordem em que aparecem no documento.
| Algarismo | Peso | Multiplicação | Resultado |
|---|---|---|---|
| 5 | 10 | 5 × 10 | 50 |
| 2 | 9 | 2 × 9 | 18 |
| 9 | 8 | 9 × 8 | 72 |
| 9 | 7 | 9 × 7 | 63 |
| 8 | 6 | 8 × 6 | 48 |
| 2 | 5 | 2 × 5 | 10 |
| 2 | 4 | 2 × 4 | 8 |
| 4 | 3 | 4 × 3 | 12 |
| 7 | 2 | 7 × 2 | 14 |
A soma dos nove produtos é 295. Dividindo 295 por 11 chega-se a 26 com resto 9, já que 26 × 11 resulta em 286 e sobram 9 para completar 295. O primeiro dígito verificador é 11 menos 9, ou seja, 2, que bate com o penúltimo algarismo do número testado.
Para o segundo dígito, a base passa a ser 5299822472, com o 2 recém-calculado no fim, e os pesos vão de 11 até 2. A soma dos dez produtos dá 347. Dividindo por 11 obtém-se 31 com resto 6, porque 31 × 11 resulta em 341 e faltam 6 para 347. O segundo verificador é 11 menos 6, isto é, 5. Os dois dígitos calculados formam o par 25, exatamente o que aparece depois do traço, e por isso a ferramenta devolve "CPF Válido" para esse número.
Como validar CPF em PHP, JavaScript e Python
Quem precisa da mesma checagem dentro de um sistema pode implementar o algoritmo em poucas linhas. As três funções abaixo seguem exatamente a lógica descrita acima: limpam o que não é algarismo, exigem onze dígitos, recusam sequências repetidas e recalculam os dois verificadores em um laço só, aproveitando que as duas contas são idênticas exceto pelo tamanho da base.
function validarCpf(string $valor): bool
{
$cpf = preg_replace('/\D/', '', $valor);
if (strlen($cpf) !== 11 || preg_match('/^(\d)\1{10}$/', $cpf)) {
return false;
}
for ($t = 9; $t < 11; $t++) {
$soma = 0;
for ($i = 0; $i < $t; $i++) {
$soma += (int) $cpf[$i] * ($t + 1 - $i);
}
$resto = 11 - ($soma % 11);
$digito = $resto >= 10 ? 0 : $resto;
if ((int) $cpf[$t] !== $digito) {
return false;
}
}
return true;
}
function validarCpf(valor) {
const cpf = valor.replace(/\D/g, '');
if (cpf.length !== 11 || /^(\d)\1{10}$/.test(cpf)) return false;
for (let t = 9; t < 11; t++) {
let soma = 0;
for (let i = 0; i < t; i++) {
soma += parseInt(cpf[i], 10) * (t + 1 - i);
}
const resto = 11 - (soma % 11);
const digito = resto >= 10 ? 0 : resto;
if (parseInt(cpf[t], 10) !== digito) return false;
}
return true;
}
def validar_cpf(valor: str) -> bool:
cpf = ''.join(c for c in valor if c in '0123456789')
if len(cpf) != 11 or cpf == cpf[0] * 11:
return False
for t in (9, 10):
soma = sum(int(cpf[i]) * (t + 1 - i) for i in range(t))
resto = 11 - (soma % 11)
digito = 0 if resto >= 10 else resto
if int(cpf[t]) != digito:
return False
return True
As três versões devolvem verdadeiro apenas quando o número passa nas quatro condições, e falso em qualquer outro caso. Repare que nenhuma delas consulta serviço externo, o que também vale para a ferramenta desta página: o cálculo é local, roda em microssegundos e não depende de rede nem de chave de acesso.
Por que 111.111.111-11 é rejeitado pelo validador de CPF
Eis o ponto que quase nenhum material sobre o tema conta: 111.111.111-11 passa na conta do módulo 11. Ele é recusado pelo validador de CPF por uma regra separada, escrita à parte no código, e não porque os dígitos verificadores estejam errados. Do ponto de vista puramente matemático, esse número é impecável, e a conta abaixo mostra isso linha a linha.
Comece pelo primeiro dígito. Com todos os algarismos iguais a 1, cada produto vale exatamente o peso correspondente, então a soma vira 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2, que dá 54. Dividindo 54 por 11 chega-se a 4 com resto 10, porque 4 × 11 resulta em 44 e sobram 10. O dígito é 11 menos 10, ou seja, 1, idêntico ao penúltimo algarismo do número.
O segundo dígito segue o mesmo caminho. A soma dos pesos de 11 até 2 é 65, e 65 dividido por 11 dá 5 com resto 10, já que 5 × 11 resulta em 55. O verificador é 11 menos 10, novamente 1, igual ao último algarismo. Os dois batem. Pelo algoritmo sozinho, 111.111.111-11 é tão válido quanto qualquer CPF emitido de verdade.
E não se trata de um caso isolado. Rodando a mesma conta para as outras nove sequências, de 000.000.000-00 até 999.999.999-99, todas passam, cada uma com os dois verificadores iguais ao algarismo que se repete. O motivo é aritmético: multiplicar um mesmo algarismo por todos os pesos e reduzir o resultado no módulo 11 devolve, no fim da conta, esse mesmo algarismo.
É justamente por passarem na conta que essas sequências precisam de uma regra própria. Números como 111.111.111-11 e 000.000.000-00 são fáceis de digitar, fáceis de decorar e seriam a primeira escolha de quem quisesse burlar um formulário que confere apenas a matemática. Por isso todo validador de CPF sério, incluindo o desta página, mantém uma checagem explícita de algarismos repetidos antes de chegar ao módulo 11, e devolve a mensagem "CPF com dígitos repetidos é inválido." sem sequer iniciar a multiplicação pelos pesos.
Por que um CPF válido não é um CPF cadastrado na Receita Federal
Válido e cadastrado são coisas diferentes, e essa é a limitação mais importante de qualquer validador de CPF. O que a ferramenta desta página responde é se o número obedece à regra de formação dos dígitos verificadores. Ela não diz, e não teria como dizer, se aquele número foi efetivamente atribuído a alguém, porque o algoritmo é público e documentado, enquanto a base de cadastro não é.
A diferença de escala torna isso evidente. Como os nove primeiros algarismos podem assumir qualquer combinação de 000000000 a 999999999, e cada base gera exatamente um par de verificadores, existe 1 bilhão de números matematicamente válidos. A população brasileira é uma fração disso. Passar no cálculo, portanto, é um filtro fraquíssimo de existência: a esmagadora maioria dos números aprovados nunca foi emitida para ninguém.
É por isso que a busca por validador de CPF receita federal costuma terminar em frustração. A expressão sugere uma checagem no cadastro oficial, e o que existe de público é o algoritmo, não o banco de dados. Consultar a situação de um número no cadastro é assunto do site da própria Receita Federal, com identificação de quem consulta. Esta página não faz isso e não pretende ocupar esse lugar: ela resolve a parte matemática, que é outra pergunta.
Na prática, um validador de CPF receita federal, no sentido literal de consulta ao cadastro, não é algo que uma página em JavaScript possa oferecer, já que exigiria acesso autenticado a uma base restrita. A conferência do padrão de formação do número é o que a ferramenta entrega, e esse padrão é o mesmo implementado em todo sistema que trate CPF, do caixa do supermercado ao formulário de matrícula.
Quando usar (e quando não usar) um validador de CPF online
Um validador de CPF online resolve bem um conjunto pequeno e específico de tarefas, e é honesto delimitar quais. O cenário mais comum é o desenvolvimento de software: conferir se a função de validação que você acabou de escrever concorda com uma implementação independente, testar como um formulário reage a um número propositalmente quebrado, ou checar rapidamente um valor que veio de uma planilha de homologação.
O segundo cenário é a conferência de digitação. Quando alguém dita um CPF por telefone ou você transcreve um número de um documento escaneado, colar o resultado aqui antes de salvar pega o erro na hora, sem depender de o sistema de destino ter a validação implementada. É um uso de conferência, rápido e sem consequência. A tabela resume o que a ferramenta responde e o que está fora do alcance dela.
| Pergunta | A ferramenta responde? |
|---|---|
| O número obedece à regra dos dígitos verificadores | Sim, é exatamente o que ela calcula |
| O número foi digitado errado | Sim, na grande maioria dos casos |
| O número pertence a uma pessoa real | Não, e nenhum cálculo local conseguiria dizer isso |
| O documento está ativo no cadastro oficial | Não, a ferramenta não acessa base alguma |
| Qual estado ou região emitiu o número | Não, essa informação não é exibida |
| Validar uma lista inteira de uma vez | Não, o campo trabalha com um número por vez |
A leitura da tabela dá o limite com clareza: na prática, um validador de CPF online funciona como calculadora de conferência, não como fonte de informação sobre pessoas. Ele não afirma que alguém existe, não descreve a situação de um documento e não substitui consulta oficial nenhuma. Quem precisa de um conjunto completo de dados fictícios coerentes para popular um formulário de teste encontra isso no Gerador de Pessoas, que monta o perfil inteiro de uma vez.
Uma limitação prática aparece cedo para quem trabalha com volume: não existe validação em lote aqui. O campo aceita um número por vez, então conferir uma lista de duzentos registros exigiria duzentas colagens, o que não faz sentido nenhum. Para volume, o caminho é implementar o algoritmo direto no seu código, com a função em PHP, JavaScript ou Python que este artigo traz pronta, e rodar sobre o arquivo inteiro em um único passe.
O que cada mensagem de erro do validador de CPF significa
O validador de CPF devolve uma mensagem específica para cada motivo de recusa, e ler a mensagem certa economiza tempo de depuração. São quatro no total, e elas aparecem na ordem em que as checagens acontecem: assim que uma falha, a validação para e as seguintes nem chegam a rodar. Isso significa que um número pode carregar mais de um problema e você só enxergar o primeiro deles.
Nenhuma dessas mensagens indica erro da ferramenta. Todas descrevem uma característica do número que você digitou, e cada uma aponta para um tipo diferente de correção. As quatro seções abaixo traduzem o que está por trás de cada frase e sugerem o que verificar primeiro quando ela aparece na tela.
CPF deve conter 11 dígitos
Essa mensagem aparece quando o número, já sem pontos e traço, tem menos de onze algarismos. A causa mais comum é colagem incompleta, com um dígito ficando para trás, ou um zero à esquerda que se perdeu ao passar o valor por uma planilha de cálculo.
Sobrar algarismo é um caso que a interface evita antes de você chegar a clicar: o campo aceita no máximo catorze caracteres e a máscara descarta o excedente conforme você escreve, então o número nunca passa de onze algarismos. Letras e símbolos também são ignorados na hora da conta, embora ocupem espaço nesse limite de catorze enquanto estão no campo.
CPF com dígitos repetidos é inválido
É a regra que barra as dez sequências de algarismos iguais, de 000.000.000-00 a 999.999.999-99. O número tem os onze algarismos e passaria tranquilamente no módulo 11, mas todos são iguais, e a ferramenta barra o caso antes de iniciar qualquer multiplicação.
Se você está testando um sistema e quer um número que falhe pela matemática, e não por essa regra, escolha uma base com algarismos variados e altere só o último dígito. Assim a recusa vem do cálculo do verificador, que é o comportamento que a maioria dos testes de formulário precisa exercitar.
Primeiro dígito verificador inválido
O número tem onze algarismos, não é uma sequência repetida, mas o penúltimo dígito não corresponde ao que o cálculo devolve para aquela base. Quase sempre o erro está em um dos nove primeiros algarismos, e não no verificador em si.
A validação para nesta etapa e nem chega a testar o último algarismo, já que o segundo verificador é calculado a partir do primeiro. Corrigir a base costuma resolver os dois problemas de uma vez.
Segundo dígito verificador inválido
Essa é a mensagem mais informativa das quatro, porque significa que o número chegou longe: tem onze algarismos, não é sequência repetida e o primeiro verificador confere. Só o último dígito está fora do lugar.
Quando aparece em um teste, costuma indicar transposição de dois algarismos vizinhos na base ou um verificador digitado por engano. Refazer a conta sobre os dez primeiros algarismos aponta qual deveria ser o valor correto.
Veja também
Quem usa um validador de CPF em rotina de teste raramente para por aí, porque o mesmo formulário costuma pedir outros documentos e outros dados. As ferramentas abaixo seguem a mesma lógica desta: rodam no navegador, não pedem cadastro e não enviam para servidor nenhum aquilo que você digita.
A combinação mais frequente é criar os números em um gerador e conferir o resultado em um validador, fechando o ciclo dentro do próprio site. Usar gerador e validador de CPF lado a lado também é a forma mais rápida de entender o algoritmo na prática: gere um número, refaça a conta à mão e veja os dois verificadores baterem com o que a ferramenta calculou.
- Gerador de CPF — números fictícios com dígitos verificadores corretos, em lote, para popular formulário de teste
- Validador de CNPJ — a mesma conferência matemática aplicada ao documento de empresa, incluindo o formato alfanumérico
- Gerador de Pessoas — perfis completos com nome, endereço e documentos, quando o teste precisa de mais que um número solto