Como validar um CPF: o cálculo dos dígitos verificadores
O CPF tem 11 dígitos, e os dois últimos são conta feita sobre os nove primeiros. Veja o cálculo passo a passo e valide o seu na ferramenta gratuita.
· cpf · validação · tutorial
O que os dois últimos dígitos significam
Um CPF tem 11 dígitos: nove de identificação e dois de verificação. Os dois últimos não são sorteados — são o resultado de uma conta sobre os dígitos anteriores. Por isso um número digitado errado quase sempre é reprovado antes de qualquer consulta.
Validar o dígito verificador diz que o número é matematicamente possível. Não diz que o CPF existe, nem de quem é: para isso é preciso consultar uma base.
O cálculo, passo a passo
Para o primeiro dígito verificador, multiplique cada um dos nove primeiros dígitos por um peso de 10 a 2, some tudo e multiplique a soma por 10. O resto da divisão por 11 é o dígito; se der 10, vale 0.
Para o segundo, repita a conta com os dez primeiros dígitos (já com o primeiro verificador) e pesos de 11 a 2. Se os dois dígitos calculados batem com os digitados, o CPF é válido.
Há uma exceção: sequências de um dígito repetido (111.111.111-11, por exemplo) passam na conta, mas não são CPFs reais e devem ser recusadas.
function isValidCpf(digits: string): boolean {
if (digits.length !== 11 || /^(\d)\1{10}$/.test(digits)) return false;
const check = (length: number) => {
let sum = 0;
for (let i = 0; i < length; i++) sum += Number(digits[i]) * (length + 1 - i);
const rest = (sum * 10) % 11;
return rest === 10 ? 0 : rest;
};
return check(9) === Number(digits[9]) && check(10) === Number(digits[10]);
}Validar não é consultar
Um CPF pode passar na conta e não constar em nenhuma base. Validar o dígito é o filtro barato que evita gastar uma consulta com erro de digitação — e é o que a API do xBlack faz antes de cobrar qualquer crédito.
Quando você precisa saber se o CPF existe e a quem pertence, a consulta é um passo seguinte. Veja como integrar em Consulta de CPF por API.