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

Validador de CPF

Digite um CPF, com ou sem pontuação, e veja na hora se os dígitos verificadores conferem, por que ele é inválido e qual a região fiscal de emissão. Gratuito, sem cadastro e processado no seu navegador.

—

A validação confere apenas a matemática dos dígitos verificadores. Não consulta a Receita Federal nem diz se o CPF pertence a alguém.

O que o validador confere

Validar um CPF é verificar se o número é estruturalmente possível. O validador desta página faz, nesta ordem, as mesmas checagens que um back-end bem escrito deveria fazer:

  1. Caracteres. No campo desta página, tudo o que não é dígito é descartado enquanto você digita. Já a API e a função mostrada mais abaixo aceitam pontos, hífen e espaços como separadores e recusam qualquer outro caractere, como letras ou barras: a API responde com o motivo caracteres e a função devolve false.
  2. Tamanho. Depois de limpo, o número precisa ter exatamente 11 dígitos. Nem dez, nem doze.
  3. Sequência repetida. Números como 111.111.111-11 ou 999.999.999-99 são rejeitados antes de qualquer conta.
  4. Primeiro dígito verificador. Calculado a partir dos nove primeiros dígitos com pesos de 10 a 2.
  5. Segundo dígito verificador. Calculado a partir dos dez primeiros dígitos com pesos de 11 a 2.

Se tudo confere, o resultado é VÁLIDO e a ferramenta mostra a região fiscal indicada pelo nono dígito. Para o CPF de exemplo 529.982.247-25, o nono dígito é 7, o que corresponde à região fiscal 7 (RJ/ES). Se alguma etapa falha, o resultado é INVÁLIDO, acompanhado do motivo e, quando o problema está nos dígitos verificadores, dos dígitos que eram esperados.

O campo aplica a máscara enquanto você digita e preserva a posição do cursor, então dá para colar um número inteiro ou corrigir um dígito no meio sem reescrever tudo.

Por que um CPF pode ser inválido

Cada falha tem uma causa diferente, e saber qual delas ocorreu ajuda a decidir a mensagem de erro que o seu sistema deve mostrar. A API devolve o mesmo código de motivo que aparece na coluna da esquerda.

Motivo O que significa
caracteres A entrada tem algo além de dígitos, pontos, hífen ou espaços. Costuma vir de colagem com texto junto ou de importação de planilha mal formatada.
tamanho Depois de remover a pontuação, sobram mais ou menos de 11 dígitos. Comum quando um zero à esquerda se perde, por exemplo ao guardar o CPF como número inteiro.
repetido Os 11 dígitos são iguais. A conta do módulo 11 fecha para essas sequências, mas elas não são consideradas válidas e costumam aparecer como valor de preenchimento.
dv1 O décimo dígito não bate com o calculado. Geralmente é erro de digitação em algum dos nove primeiros dígitos ou no próprio verificador.
dv2 O primeiro verificador está certo, mas o décimo primeiro dígito não. Por exemplo, 529.982.247-26: o esperado era 5.

A perda do zero à esquerda merece atenção especial. CPFs que começam com zero existem, e um campo numérico no banco de dados ou uma coluna de planilha formatada como número transformam 012.345.678-90 em um valor com dez dígitos. O guia sobre erros comuns ao validar CPF reúne esse e outros problemas frequentes.

Validar por código

A função abaixo, em JavaScript, implementa as mesmas cinco checagens. Ela devolve true ou false; se você precisar do motivo, transforme cada return false em um retorno com o código correspondente.

validar-cpf.js
function validarCpf(valor) {
const entrada = String(valor).replace(/[.\-\s]/g, '');
if (!/^\d{11}$/.test(entrada)) return false;
if (/^(\d)\1{10}$/.test(entrada)) return false;
const digito = (n) => {
  let soma = 0;
  for (let i = 0; i < n; i++) soma += Number(entrada[i]) * (n + 1 - i);
  const resto = soma % 11;
  return resto < 2 ? 0 : 11 - resto;
};
return digito(9) === Number(entrada[9]) && digito(10) === Number(entrada[10]);
}

validarCpf('529.982.247-25'); // true
validarCpf('111.111.111-11'); // false (repetido)
validarCpf('529.982.247-26'); // false (2º dígito)

A função interna digito(n) usa os n primeiros dígitos com pesos que começam em n + 1 e descem até 2: com n = 9, os pesos vão de 10 a 2; com n = 10, de 11 a 2. Repare que a validação não precisa gerar o CPF de novo: basta comparar os dois verificadores calculados com os informados.

A validação no front-end melhora a experiência de quem preenche o formulário, mas não substitui a validação no servidor, já que qualquer requisição pode ser montada sem passar pela sua interface. Versões para outras linguagens estão em TypeScript, Python, Java e C#. Para levar a regra para dentro do banco, veja o guia de validação de CPF em PostgreSQL e MySQL.

Validar pela API

Se preferir não manter a lógica no seu código, a API pública valida um CPF por requisição, sem chave:

GET https://www.cpf.dev.br/api/v1/cpf/validar/529.982.247-25

Resposta para um CPF válido:

{
  "valido": true,
  "cpf": "52998224725",
  "formatado": "529.982.247-25",
  "uf": ["ES", "RJ"]
}

O campo uf lista os estados da região fiscal indicada pelo nono dígito; neste exemplo, a região 7 (RJ/ES). Para um CPF inválido, como 529.982.247-26, valido vem como false e o campo motivo traz um dos códigos da tabela acima, neste caso dv2. O número pode ir com ou sem pontuação. O limite é de 60 requisições por minuto por IP; mais detalhes na documentação da API.

CPF válido não é CPF existente

Esta é a confusão mais comum sobre validação de CPF. Um resultado VÁLIDO significa apenas que os dígitos verificadores conferem com os nove primeiros dígitos. Ele não diz:

  • se o número foi de fato emitido pela Receita Federal;
  • se pertence à pessoa que o informou;
  • se está em situação regular, suspenso ou cancelado.

Qualquer um pode produzir milhões de CPFs válidos com a conta mostrada acima, e é exatamente isso que o gerador de CPF faz para fins de teste. Por isso a validação matemática serve para pegar erros de digitação cedo, não para confirmar identidade. Quando o seu processo exige saber se o CPF existe e pertence a quem o informou, é preciso recorrer a serviços oficiais ou a fornecedores autorizados. O comparativo CPF válido vs. CPF existente detalha a diferença e as opções disponíveis.

Perguntas frequentes

O validador diz se o CPF está regular na Receita Federal?

Não. Ele confere apenas a matemática dos dígitos verificadores. A situação cadastral só pode ser consultada nos serviços da própria Receita Federal.

Preciso digitar o CPF com pontos e hífen?

Não. O campo aceita só os números ou o formato 000.000.000-00 e aplica a pontuação enquanto você digita.

Por que 000.000.000-00 é inválido se a conta fecha?

Sequências com os 11 dígitos iguais passam no módulo 11, mas são rejeitadas por convenção. Validadores corretos fazem essa checagem antes do cálculo.

O CPF que eu digito é enviado para algum servidor?

Não. A validação desta página roda no seu navegador. Só a API, quando você a chama diretamente, recebe o número na requisição.