Pular para o conteúdo
UUtilizio

Como funciona o dígito verificador do CPF e do CNPJ

Publicado em 29 de agosto de 2026

Todo CPF termina em dois números que não são aleatórios: são dígitos verificadores, calculados matematicamente a partir dos demais dígitos do documento. O mesmo vale pro CNPJ. Esse mecanismo existe pra detectar erros de digitação - se alguém troca um número na hora de preencher um formulário, a chance de o resultado ainda “bater” com o algoritmo é baixíssima. Este guia explica o cálculo exato, o mesmo usado pelo Gerador e Validador de CPF e pelo Gerador e Validador de CNPJ do Utilizio.

O algoritmo: módulo 11

Tanto CPF quanto CNPJ usam uma variação do algoritmo de módulo 11: cada dígito da base é multiplicado por um peso decrescente, os produtos são somados, e o resto da divisão dessa soma por 11 define o dígito verificador. A regra final é sempre a mesma:

  • Se o resto for 0 ou 1, o dígito verificador é 0.
  • Caso contrário, o dígito verificador é 11 − resto.

CPF: 9 dígitos base + 2 verificadores

Um CPF tem 11 dígitos: os 9 primeiros são a base, e os 2 últimos são calculados.

Primeiro dígito verificador: multiplica cada um dos 9 dígitos da base por pesos de 10 a 2 (da esquerda pra direita), soma tudo e aplica o módulo 11.

Segundo dígito verificador: repete o processo, mas agora com os 10 dígitos (base + primeiro verificador) usando pesos de 11 a 2.

Exemplo completo

Vamos calcular os dígitos verificadores da base 111.444.777:

Dígitos:  1  1  1  4  4  4  7  7  7
Pesos:   10  9  8  7  6  5  4  3  2

Soma dos produtos: (1×10)+(1×9)+(1×8)+(4×7)+(4×6)+(4×5)+(7×4)+(7×3)+(7×2) = 162.

162 ÷ 11 = 14, resto 8. Como o resto não é 0 nem 1: dígito = 11 − 8 = 3.

Agora o segundo dígito, usando os 10 dígitos 1114447773 com pesos de 11 a 2:

Soma dos produtos: (1×11)+(1×10)+(1×9)+(4×8)+(4×7)+(4×6)+(7×5)+(7×4)+(7×3)+(3×2) = 204.

204 ÷ 11 = 18, resto 6. Dígito = 11 − 6 = 5.

Resultado final: 111.444.777-35. Você pode conferir esse cálculo no Validador de CPF.

CNPJ: 12 dígitos base + 2 verificadores

O CNPJ segue a mesma lógica, mas com 12 dígitos de base e pesos diferentes, porque o número de posições é maior:

  • Primeiro dígito: pesos 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 aplicados aos 12 dígitos base.
  • Segundo dígito: pesos 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 aplicados aos 13 dígitos (base + primeiro verificador).

Repare que os pesos “andam” em ciclos de 2 a 9 - isso é só uma convenção da Receita Federal, sem significado matemático especial além de gerar uma soma ponderada.

Exemplo completo

Base 11.222.333/0001:

Dígitos: 1  1  2  2  2  3  3  3  0  0  0  1
Pesos:   5  4  3  2  9  8  7  6  5  4  3  2

Soma: (1×5)+(1×4)+(2×3)+(2×2)+(2×9)+(3×8)+(3×7)+(3×6)+(0×5)+(0×4)+(0×3)+(1×2) = 102.

102 ÷ 11 = 9, resto 3. Dígito = 11 − 3 = 8.

Segundo dígito, usando 112223330001 + 8 = 13 dígitos, pesos 6,5,4,3,2,9,8,7,6,5,4,3,2:

Soma = 120. 120 ÷ 11 = 10, resto 10. Dígito = 11 − 10 = 1.

Resultado final: 11.222.333/0001-81.

Por que isso importa na prática

Esse algoritmo é o motivo pelo qual sistemas conseguem rejeitar um CPF ou CNPJ digitado errado sem precisar consultar nenhuma base de dados - a validação é puramente matemática, roda instantaneamente e não exige conexão com a Receita Federal. É também por isso que é impossível “inventar” um CPF ou CNPJ válido apenas digitando números aleatórios: a chance de os dois dígitos verificadores baterem por acaso é de aproximadamente 1 em 100.

Vale reforçar: um CPF ou CNPJ matematicamente válido não significa que ele foi realmente emitido pra alguém. Os números gerados pelo Gerador de CPF e Gerador de CNPJ do Utilizio passam no checksum, mas servem exclusivamente pra testar sistemas, formulários e validações - nunca correspondem a pessoas ou empresas reais.