Algoritmo
Dígito verificador do CPF: como calcular e validar
Os dois últimos dígitos do CPF são calculados a partir dos nove primeiros pelo módulo 11. É isso que permite detectar um dígito trocado sem consultar base nenhuma.
Digite os 9 primeiros dígitos do CPF, com ou sem pontos.
Dígitos verificadores: 35 · CPF completo: 111.444.777-35
A estrutura do número
Os 11 dígitos se dividem em três partes. Tomando 111.444.777-35 como exemplo:
- Dígitos 1 a 8: o número de série dentro da região.
- Dígito 9: a região fiscal onde o CPF foi emitido.
- Dígitos 10 e 11: os verificadores, calculados abaixo.
Como calcular o dígito verificador
Os dois dígitos usam a mesma receita, chamada módulo 11. Muda apenas quantos dígitos entram na conta e, por consequência, os pesos:
- Multiplique cada dígito por um peso, que começa alto e decresce até 2.
- Some todos os produtos.
- Divida a soma por 11 e guarde o resto.
- Se o resto for menor que 2, o dígito verificador é 0. Caso contrário, é 11 menos o resto.
O passo 4 é onde a maioria das implementações caseiras erra: esquecer o caso do resto 0 ou 1 produz um validador que rejeita CPFs legítimos terminados em 0.
Exemplo resolvido: 111.444.777-35
1º dígito verificador
Entram 9 dígitos, com pesos de 10 a 2:
| Dígito | 1 | 1 | 1 | 4 | 4 | 4 | 7 | 7 | 7 |
|---|---|---|---|---|---|---|---|---|---|
| Peso | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
| Produto | 10 | 9 | 8 | 28 | 24 | 20 | 28 | 21 | 14 |
Soma = 162. Dividindo por 11, o resto é 8. Como o resto é 2 ou mais, o dígito é 11 − 8 = 3. O 1º dígito verificador é 3.
2º dígito verificador
Entram 10 dígitos, com pesos de 11 a 2:
| Dígito | 1 | 1 | 1 | 4 | 4 | 4 | 7 | 7 | 7 | 3 |
|---|---|---|---|---|---|---|---|---|---|---|
| Peso | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
| Produto | 11 | 10 | 9 | 32 | 28 | 24 | 35 | 28 | 21 | 6 |
Soma = 204. Dividindo por 11, o resto é 6. Como o resto é 2 ou mais, o dígito é 11 − 6 = 5. O 2º dígito verificador é 5.
Os dois dígitos calculados são 35, que é exatamente como 111.444.777-35 termina. O CPF é válido.
Como validar um CPF
Validar é a mesma conta: calcule os dois dígitos verificadores a partir dos nove primeiros e compare com os dois últimos informados. Se algum for diferente, ou se os 11 dígitos forem iguais, o CPF é inválido. Para conferir um número pronto, ovalidador de CPF faz isso e aponta qual dígito falhou. Se o número foi reprovado, CPF inválido: o que significa e o que fazerexplica as causas e a diferença para um CPF irregular na Receita.
Os dois casos especiais
Resto 0 ou 1
Quando a soma é divisível por 11, ou deixa resto 1, o dígito verificador é 0. Aplicar 11 menos o resto nesses casos daria 11 ou 10, números de dois dígitos, que não cabem numa posição. Cada dígito verificador cai nessa situação em 2 dos 11 restos possíveis, ou seja 18,2% das vezes; como basta um dos dois para quebrar a conta, um validador que pula essa regra rejeita cerca de um terço dos CPFs válidos (40/121, ou 33,1%).
Todos os dígitos iguais
111.111.111-11, 000.000.000-00 e as outras oito sequências desse tipo passam no cálculo do módulo 11. Ainda assim não são CPFs válidos, e precisam ser rejeitadas por uma regra à parte. Como são exatamente o que alguém digita para testar um formulário, esquecer esse caso costuma custar caro.
Implementações prontas
A função de validação escrita e comentada emJavaScript, TypeScript, Python, PHP, Java e C#.
Para ver a conta acontecendo com números novos, use a ferramenta paragerar CPF aleatório: ela mostra a memória de cálculo de cada CPF que produz.
FAQ
Perguntas frequentes sobre o dígito verificador
- Como descobrir os dois últimos dígitos do CPF?
- Calculando-os a partir dos nove primeiros. O primeiro verificador vem da soma dos nove dígitos multiplicados por pesos de 10 a 2; o segundo repete a conta com os dez dígitos e pesos de 11 a 2. Em cada uma, divida a soma por 11: resto menor que 2 vira 0, e nos outros casos o dígito é 11 menos o resto. A calculadora no topo desta página faz as duas contas. Isso só funciona quando você já tem os nove primeiros: não há como deduzir o CPF inteiro de outra pessoa, e um resultado correto não prova que o CPF existe. Validar um CPF completo.
- O que significa "dígito verificador 04" no comprovante do CPF?
- No comprovante de situação cadastral da Receita Federal, o campo "Dígito Verificador" não é o do módulo 11 explicado nesta página: é um código de dois dígitos que acompanha a situação cadastral. O 04, por exemplo, aparece junto de "Pendente de regularização". O que vale é a situação escrita por extenso no comprovante. Entenda as situações do CPF.
- O dígito verificador do CPF muda de acordo com o estado?
- Não. Os dois verificadores dependem apenas dos nove dígitos que vêm antes, pela conta do módulo 11. O estado entra só pelo nono dígito, que indica a região fiscal e participa da conta como qualquer outro. Por isso CPFs de estados diferentes seguem exatamente a mesma regra de cálculo. Veja a tabela de regiões fiscais.