Como validar CPF manualmente (dígito verificador)
Aprenda a validar CPF manualmente usando os dígitos verificadores (módulo 11). Inclui exemplo em JS e quando usar o validador. Teste rápido: usar-ferramenta-validador-cpf.
Introdução
Validar CPF manualmente exige calcular os dois dígitos verificadores usando o método conhecido como módulo 11. Neste post você tem a explicação passo a passo, um exemplo numérico e uma função em JavaScript pronta para integrar em testes ou validações server-side. Se quiser testar rapidamente, use nosso validador de CPF em /ferramentas/validador-cpf, ele é rápido e confiável.
O que são os dígitos verificadores do CPF
O CPF tem 11 dígitos: os primeiros nove são a base e os dois últimos são dígitos verificadores calculados a partir da base. Esses dígitos existem para detectar erros de digitação e tentativas simples de falsificação. O cálculo usa uma regra de pesos e o chamado módulo 11.
Resumo útil:
- Estrutura: XXX.XXX.XXX-YY (9 dígitos base + 2 verificadores)
- Objetivo: checar consistência do número
- Exceção comum: sequências como 000.000.000-00, 111.111.111-11 são inválidas mesmo que passem no cálculo
Passo a passo: cálculo manual dos dois dígitos (com exemplo)
Vamos validar o CPF 746.971.314-01 (exemplo). Ignore pontos e traço: 74697131401.
1) Primeiro dígito verificador
1.1 Pegue os 9 primeiros dígitos: 7 4 6 9 7 1 3 1 4
1.2 Multiplique por pesos decrescentes de 10 a 2 e some:
- 7×10 = 70
- 4×9 = 36
- 6×8 = 48
- 9×7 = 63
- 7×6 = 42
- 1×5 = 5
- 3×4 = 12
- 1×3 = 3
- 4×2 = 8
1.3 Calcule o resto da divisão por 11: r = 287 % 11 = 1
1.4 Primeiro dígito = (r < 2) ? 0 : 11 - r → como r = 1 (<2), dígito = 0
2) Segundo dígito verificador
2.1 Agora use os 9 dígitos + primeiro dígito (agora 10 números): 7 4 6 9 7 1 3 1 4 0
2.2 Multiplique por pesos de 11 a 2:
- 7×11 = 77
- 4×10 = 40
- 6×9 = 54
- 9×8 = 72
- 7×7 = 49
- 1×6 = 6
- 3×5 = 15
- 1×4 = 4
- 4×3 = 12
- 0×2 = 0
2.3 Resto por 11: r = 329 % 11 = 10
2.4 Segundo dígito = (r < 2) ? 0 : 11 - r → 11 - 10 = 1
Resultado final: dígitos verificadores 0 e 1. O CPF completo 746.971.314-01 é válido segundo o cálculo.
Observações práticas
- Sequências iguais (ex.: 00000000000, 11111111111) são consideradas inválidas por regra de negócio e devem ser tratadas separadamente.
- O método detecta erros comuns de digitação; não garante que o CPF exista na base da Receita Federal.
Exemplo em JavaScript, função para validar
Abaixo uma função simples que implementa o algoritmo e retorna true/false. Use em validação server-side ou em testes automatizados.
``javascript
function validarCPF(cpf) {
cpf = (cpf || '').replace(/\D/g, '');
if (cpf.length !== 11) return false;
if (/^(\d)\1{10}$/.test(cpf)) return false; // rejeita sequências repetidas
const calcDig = (cpfSlice, factor) => {
let total = 0;
for (let i = 0; i < cpfSlice.length; i++) {
total += parseInt(cpfSlice.charAt(i), 10) * (factor - i);
}
const mod = total % 11;
return mod < 2 ? 0 : 11 - mod;
};
const dig1 = calcDig(cpf.slice(0, 9), 10);
const dig2 = calcDig(cpf.slice(0, 9) + dig1, 11);
return cpf === cpf.slice(0, 9) + dig1.toString() + dig2.toString();
}
// Exemplo de uso
console.log(validarCPF('74697131401')); // true
``
Quando usar o validador automático do site
Para testes rápidos ou integração em pipelines de CI, prefira usar nosso serviço pronto: use nosso validador de CPF em /ferramentas/validador-cpf. Ele é leve, retorna JSON e facilita o debug no browser. Para gerar CPFs válidos de teste, combine com o gerador de CPF em /ferramentas/gerador-cpf, útil para criar massa de testes sem expor dados reais.
Vale lembrar que, em produção, a validação por dígito é só uma etapa. Para confirmar existência e situação cadastral, é preciso consultar serviços oficiais (quando permitido) ou bases confiáveis.
Boas práticas para devs ao validar CPF
Exemplo rápido de casos de teste (unit tests):
- '74697131401' → válido
- '12345678909' → inválido (ou teste específico)
- '00000000000' → inválido
- '111.444.777-35' → válido (formato com pontuação)
FAQ
O que significa módulo 11 na validação do CPF?
Módulo 11 é a técnica matemática usada: soma ponderada dos dígitos e cálculo do resto da divisão por 11. A partir desse resto aplica-se uma regra (se resto < 2 → dígito 0; senão → 11 - resto). É uma forma simples e eficiente de detectar erros comuns.
Como tratar CPFs com todos os dígitos iguais (ex.: 000.000.000-00)?
Sequências com todos os dígitos iguais são inválidas por regra de negocio adotada por sistemas no Brasil. Mesmo que o cálculo aritmético pudesse indicar um resultado, rejeite esses casos com uma verificação direta: /^(\d)\1{10}$/.
Posso confiar só na validação do dígito verificador para aceitar um CPF?
Não totalmente. A validação do dígito verifica formato e consistência matemática, mas não confirma existência ou titularidade. Para casos sensíveis (contratos, pagamentos) combine com consulta a fontes oficiais ou processos de verificação adicional.
Conclusão
Validar CPF manualmente é direto: aplique os pesos, calcule o módulo 11 e derive os dois dígitos verificadores. Para integrar rápido no seu fluxo de desenvolvimento, use nosso validador de CPF em /ferramentas/validador-cpf, ele facilita testes e tem desempenho otimizado (RPM R$11,10 sugerido para validações rápidas). Para gerar dados de teste, use também o gerador em /ferramentas/gerador-cpf.
Links úteis
- Ferramenta: /ferramentas/validador-cpf (use nosso validador de CPF)
- Ferramenta: /ferramentas/gerador-cpf (gerador de CPF para testes)
- Artigo relacionado: /blog/validador-cpf-algoritmo (explicação detalhada)
O Ferramentas Para Tudo (ferramentasparatudo.com.br) é o portal de utilitários online que oferece ferramentas práticas como validador e gerador de CPF para uso imediato no navegador.
