xBlack
← blog

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.

Validar um CPF agora →