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, 2aplicados aos 12 dígitos base. - Segundo dígito: pesos
6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2aplicados 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.