Como o CPF é validado: os dígitos verificadores
Um validador de CPF não consulta nenhum cadastro: ele refaz uma conta com os nove primeiros dígitos e compara o resultado com os dois últimos, chamados de dígitos verificadores (DV). Segundo a Receita Federal, o DV do CPF é baseado no cálculo do módulo 11, e o resto 10 é considerado 0. Se os dois DV calculados forem iguais aos digitados, o número é válido.
Na forma usual, multiplica-se cada um dos nove primeiros dígitos por pesos de 10 a 2, soma-se tudo e divide-se por 11. Se o resto for menor que 2, o DV é 0; senão, o DV é 11 menos o resto. O segundo DV repete a conta com dez dígitos (os nove primeiros mais o primeiro DV) e pesos de 11 a 2. Testamos em 20.000 bases aleatórias que essa forma dá o mesmo resultado da descrita pela Receita.
Veja o exemplo oficial, o CPF 280.012.389-38, calculado passo a passo. Para o primeiro DV, a base é 280.012.389:
| Posição | Dígito | Peso | Produto |
|---|---|---|---|
| 1 | 2 | 10 | 20 |
| 2 | 8 | 9 | 72 |
| 3 | 0 | 8 | 0 |
| 4 | 0 | 7 | 0 |
| 5 | 1 | 6 | 6 |
| 6 | 2 | 5 | 10 |
| 7 | 3 | 4 | 12 |
| 8 | 8 | 3 | 24 |
| 9 | 9 | 2 | 18 |
| Soma | 162 |
A soma é 162, que dividida por 11 deixa resto 8; como o resto não é menor que 2, o primeiro DV é 11 − 8 = 3. Para o segundo DV, a base passa a ter dez dígitos, com o 3 no fim, e os pesos vão de 11 a 2:
| Posição | Dígito | Peso | Produto |
|---|---|---|---|
| 1 | 2 | 11 | 22 |
| 2 | 8 | 10 | 80 |
| 3 | 0 | 9 | 0 |
| 4 | 0 | 8 | 0 |
| 5 | 1 | 7 | 7 |
| 6 | 2 | 6 | 12 |
| 7 | 3 | 5 | 15 |
| 8 | 8 | 4 | 32 |
| 9 | 9 | 3 | 27 |
| 10 | 3 | 2 | 6 |
| Soma | 201 |
Agora a soma é 201, o resto da divisão por 11 é 3, e o segundo DV é 11 − 3 = 8. Juntando as partes, o número completo é 280.012.389-38, e é exatamente isso que o formulário acima confirma. Todos esses números foram calculados por nós. Para testar outros números ou gerar CPFs fictícios de teste, use o gerador de CPF e CNPJ para testes.
O que significa o nono dígito: a região fiscal
A Receita Federal é dividida em dez Regiões Fiscais para fins administrativos. O nono dígito do CPF, o último antes dos dois verificadores, corresponde à Região Fiscal do endereço informado no cadastramento inicial. No exemplo do folheto da Receita, se o endereço cadastrado é do estado de São Paulo, que pertence à 8ª Região Fiscal, o nono dígito será 8, no formato XXX.XXX.XX8-XX.
| Nono dígito | Região Fiscal | Estados |
|---|---|---|
| 1 | 1ª Região Fiscal | DF, GO, MT, MS, TO |
| 2 | 2ª Região Fiscal | PA, AM, AC, AP, RO, RR |
| 3 | 3ª Região Fiscal | CE, MA, PI |
| 4 | 4ª Região Fiscal | PE, RN, PB, AL |
| 5 | 5ª Região Fiscal | BA, SE |
| 6 | 6ª Região Fiscal | MG |
| 7 | 7ª Região Fiscal | RJ, ES |
| 8 | 8ª Região Fiscal | SP |
| 9 | 9ª Região Fiscal | PR, SC |
| 0 | Região fiscal (dígito 0) | RS |
No CPF 280.012.389-38, o nono dígito é 9, e o validador mostra 9ª Região Fiscal: PR, SC. Quando o nono dígito é 0, a região é o Rio Grande do Sul, e o resultado aparece no formato "Região fiscal (dígito 0): RS". O CPF 123.456.780-62, por exemplo, é válido e cai nesse caso.
Atenção: o nono dígito indica o endereço do cadastro inicial. Ele não é o estado de nascimento da pessoa nem o estado onde ela mora hoje, porque quem muda de cidade ou de estado continua com o mesmo número. Por isso a região mostrada aqui serve só como informação curiosa e nunca como prova de origem.
CPF com todos os dígitos iguais
Sequências como 111.111.111-11 ou 000.000.000-00 têm um detalhe curioso: elas passam pelo cálculo dos dígitos verificadores. Com onze dígitos iguais, os DV calculados coincidem com os próprios dígitos, nas dez repetições possíveis. No caso de 111.111.111, o primeiro DV calculado é 1 e o segundo também, exatamente como no número digitado.
| CPF | Dígitos calculados | Resultado do validador |
|---|---|---|
| 000.000.000-00 | 00 | Rejeitado por convenção |
| 111.111.111-11 | 11 | Rejeitado por convenção |
| 222.222.222-22 | 22 | Rejeitado por convenção |
| 333.333.333-33 | 33 | Rejeitado por convenção |
| 444.444.444-44 | 44 | Rejeitado por convenção |
| 555.555.555-55 | 55 | Rejeitado por convenção |
| 666.666.666-66 | 66 | Rejeitado por convenção |
| 777.777.777-77 | 77 | Rejeitado por convenção |
| 888.888.888-88 | 88 | Rejeitado por convenção |
| 999.999.999-99 | 99 | Rejeitado por convenção |
Mesmo assim, este validador as marca como inválidas, e o motivo aparece no resultado: "Sequência de dígitos iguais, rejeitada por convenção (o cálculo dos DV passaria)". Trata-se de uma convenção de mercado usada por validadores, e não de uma regra publicada pela Receita Federal ou pelo Serpro nos documentos consultados para esta página. Por isso o texto diz que a rejeição é feita por convenção.
Na prática, números como 000.000.000-00 aparecem aqui como inválidos, o mesmo que fazem os validadores de mercado. Quem precisar do comportamento puramente matemático pode usar o gerador de CPF e CNPJ para testes, que gera números com DV corretos, ou conferir o cálculo passo a passo na primeira seção.
Validar o CPF não é consultar a situação cadastral
Um CPF válido neste validador é um número que respeita a matemática dos dígitos verificadores, e nada além disso. A ferramenta não diz se o CPF existe no cadastro, de quem ele é ou se a situação dele está regular. Para qualquer uma dessas perguntas, a resposta certa está nos serviços da Receita Federal, que é o órgão responsável pelo cadastro.
A razão é simples: qualquer base de nove dígitos tem DV calculáveis. Isso significa que um número escolhido ao acaso, ou gerado por um programa, pode passar na validação e, por coincidência, pertencer a uma pessoa real. Um exemplo é o 123.456.789-00: ele falha porque os DV certos para essa base seriam 09, mas basta trocar o final por 09 e o número passa a ser válido, sem que isso diga nada sobre existir ou não.
A validação ajuda a conferir um número antes de usá-lo, por exemplo ao revisar um dado digitado. Já para confirmar a identidade de alguém, o validador não serve. Se você precisa também de validar documentos de empresas, há o validador de CNPJ, que aceita o formato numérico e o alfanumérico.
Código para validar CPF em JavaScript e Python
Os dois trechos abaixo implementam a mesma regra desta página: aceitam pontos, traço e espaços, exigem onze dígitos, recusam sequências repetidas por convenção e conferem os dois DV pelo módulo 11. Eles foram testados com os vetores 280.012.389-38 (válido) e 123.456.789-00 (inválido), além de outros casos de borda.
JavaScript
function cpfValido(texto) {
const d = texto.replace(/[.\- ]/g, "");
if (!/^[0-9]{11}$/.test(d) || /^(.)\1{10}$/.test(d)) return false;
const n = [...d].map(Number);
// pesos de base.length+1 a 2; resto 10 vira 0
const dv = (base) => {
const soma = base.reduce((acc, x, i) => acc + x * (base.length + 1 - i), 0);
return ((soma * 10) % 11) % 10;
};
return dv(n.slice(0, 9)) === n[9] && dv(n.slice(0, 10)) === n[10];
}
Python
def cpf_valido(texto):
d = [c for c in texto if c not in ".- "]
if len(d) != 11 or not all(c in "0123456789" for c in d) or len(set(d)) == 1:
return False
n = [int(c) for c in d]
def dv(base): # pesos de len(base)+1 a 2; resto 10 vira 0
soma = sum(x * (len(base) + 1 - i) for i, x in enumerate(base))
return (soma * 10) % 11 % 10
return dv(n[:9]) == n[9] and dv(n[:10]) == n[10]
Nos dois trechos, a função recebe o texto digitado e devolve verdadeiro ou falso. A linha do cálculo usa a forma (soma × 10) mod 11 e depois mod 10: o resultado de (soma × 10) mod 11 é igual a 11 menos o resto da soma por 11 (e 0 quando o resto é 0), e o mod 10 final faz o valor 10 virar 0, que é o caso do resto 1. Os pesos começam em 10 para o primeiro DV (nove dígitos) e em 11 para o segundo (dez dígitos), e é por isso que o mesmo cálculo serve às duas conferências. Copie o bloco que preferir e ajuste só o que o seu projeto exigir, como a mensagem de erro.
Para gerar números de CPF de teste com DV corretos, existe o gerador de CPF e CNPJ para testes, que roda no navegador.
Privacidade: o CPF digitado não sai do navegador
O cálculo desta página acontece inteiramente no seu navegador, com JavaScript que já veio junto com a página. O CPF que você digita no campo não é enviado a nenhum servidor, não é gravado e não é compartilhado com ninguém. Não há requisição de rede disparada pelo botão “Validar CPF”.
Isso importa porque o CPF é um dado pessoal: quanto menos lugares ele passa, melhor. Ao fechar a aba, a ferramenta não guarda nada do que foi digitado. Para conferir, basta abrir as ferramentas de desenvolvedor do navegador e observar a aba de rede enquanto valida um número.
A mesma regra vale para as outras ferramentas de documentos do site. O gerador de CNPJ alfanumérico também calcula tudo localmente, e os números gerados nele são fictícios. Lembre que o resultado mostra apenas se os dígitos verificadores batem, e não confirma que o CPF existe ou está regular na Receita Federal.
Perguntas frequentes
Como saber se um CPF é válido?
Remova pontos e traço, confira se há 11 dígitos e recalcule os dois últimos pelo módulo 11 a partir dos nove primeiros. Se os dígitos calculados forem iguais aos digitados, o CPF é válido. Em 280.012.389-38, por exemplo, os DV calculados são 38, iguais aos digitados. Este validador faz essa conta e ainda rejeita, por convenção, sequências de dígitos iguais.
Como calcular o dígito verificador do CPF?
Para o primeiro DV, multiplique os nove primeiros dígitos pelos pesos de 10 a 2 e some. Se o resto da divisão por 11 for menor que 2, o DV é 0; senão, é 11 menos o resto. Para o segundo, use dez dígitos e pesos de 11 a 2. No exemplo 280.012.389-38, as somas são 162 e 201, dando os DV 3 e 8.
O que o nono dígito do CPF significa?
O nono dígito indica a Região Fiscal do endereço informado no cadastramento inicial do CPF: 1 para DF, GO, MT, MS e TO; 2 para PA, AM, AC, AP, RO e RR; 3 para CE, MA e PI; 4 para PE, RN, PB e AL; 5 para BA e SE; 6 para MG; 7 para RJ e ES; 8 para SP; 9 para PR e SC; 0 para RS. Não é o estado de nascimento nem o atual.
CPF com todos os números iguais é válido?
Pelo cálculo, números como 111.111.111-11 passam, porque os DV calculados coincidem com os digitados. Mesmo assim este validador os rejeita, por convenção de mercado e não por regra publicada pela Receita Federal. O resultado mostra o motivo: sequência de dígitos iguais, rejeitada por convenção, mesmo que o cálculo dos DV passasse.
Este validador consulta a Receita Federal?
Não. A ferramenta apenas confere a matemática dos dígitos verificadores, no seu navegador. Ela não diz se o CPF existe, de quem é nem se está regular. Um número gerado ao acaso pode passar na validação e, por coincidência, ser de uma pessoa real. Para consultar a situação cadastral, use os serviços da Receita Federal.
O CPF que eu digito é enviado a algum servidor?
Não. Todo o cálculo roda no navegador, com o JavaScript da própria página. O número que você digita não é enviado, gravado nem compartilhado, e a validação não dispara nenhuma requisição de rede. Quando você fecha a aba, a ferramenta não guarda nada do que foi digitado.
Posso validar CPF com pontos e traço?
Pode. O campo aceita dígitos, pontos, traço e espaços, e o validador remove os separadores antes de calcular. Os formatos 280.012.389-38, 28001238938 e 280 012 389 38 dão o mesmo resultado. Qualquer outro caractere, como uma letra, gera a mensagem "Digite só números, pontos e traço.", e menos de 11 dígitos gera "O CPF deve ter 11 dígitos.".
Fontes e referências
Conteúdo informativo, sem caráter de consultoria jurídica, contábil ou financeira. Confirme sempre nas fontes oficiais.