Pular para o conteúdo
Documentos

Módulo 11 explicado: CPF, CNPJ, PIS, título e RENAVAM

Publicado em · Atualizado em · 7 min de leitura · Equipe Gerador Brasil

Módulo 11 é a conta que produz o dígito verificador: você multiplica cada dígito por um peso, soma os produtos, divide por 11 e usa o resto. Na maioria dos documentos, resto 0 ou 1 dá dígito 0, e os demais restos dão 11 menos o resto. O que muda de um documento para outro são os pesos, o sentido deles e a regra do resto.

O módulo 11 é a conta que gera o dígito verificador de CPF, CNPJ, PIS, título de eleitor e RENAVAM. Você multiplica cada dígito por um peso, soma tudo, divide por 11 e usa o resto. Se o resto for 0 ou 1, o dígito é 0; nos outros casos, o dígito é 11 menos o resto.

O que muda de um documento para outro são os pesos, o sentido em que eles são aplicados e o que se faz com o resto. Este texto mostra a conta uma vez e depois compara os cinco documentos. Se quiser ver a conta rodando num número de teste, o CPF fictício com o passo a passo mostra cada produto.

Para que serve o dígito verificador?

Para pegar erro de digitação antes de ele chegar ao banco de dados. Como 11 é primo e nenhum peso do primeiro dígito verificador é múltiplo de 11, trocar um único dígito sempre muda o resto. O dígito calculado quase sempre muda junto, com uma exceção: os restos 0 e 1 dão o mesmo dígito 0, e um erro que leve de um ao outro passa batido. Trocar dois dígitos vizinhos e diferentes também muda o resto, com a mesma ressalva.

O dígito não diz se o documento existe. Ele só diz que o número é coerente consigo mesmo. Um número sorteado que passa na conta continua sem dono, e é por isso que serve como massa de teste.

Como é a conta, passo a passo?

São quatro passos:

  1. Alinhe os dígitos de base com os pesos do documento.
  2. Multiplique cada dígito pelo seu peso e some os produtos.
  3. Calcule o resto da soma dividida por 11.
  4. Se o resto for menor que 2, o dígito é 0. Senão, o dígito é 11 menos o resto.

Exemplo com a base de CPF 861752998, de um número fictício. Os pesos do primeiro dígito são 10, 9, 8, 7, 6, 5, 4, 3 e 2.

Dígito 8 6 1 7 5 2 9 9 8 Soma
Peso 10 9 8 7 6 5 4 3 2
Produto 80 54 8 49 30 10 36 27 16 310

O resto de 310 por 11 é 2. Como 2 não é menor que 2, o dígito é 11 − 2 = 9. Para o segundo dígito, a base passa a ter 10 dígitos (8617529989) e os pesos vão de 11 a 2. A soma dá 383, o resto é 9 e o dígito é 11 − 9 = 2. O CPF fictício completo é 861.752.998-92.

Quais são os pesos e a regra do resto de cada documento?

A tabela reúne o que cada documento faz. Só o CNPJ tem fonte oficial localizada para a regra de conversão dos caracteres. Nos demais, a conta é a de domínio público, a que os validadores e sistemas de folha usam há anos, e não achei texto oficial citável que traga os pesos.

Documento Base Pesos Regra do resto Fonte da regra
CPF 9 dígitos, depois 10 10 a 2 e depois 11 a 2, da esquerda para a direita Menor que 2: 0. Senão: 11 − resto Domínio público
CNPJ 12 caracteres, depois 13 2 a 9 da direita para a esquerda, recomeçando em 2 Menor que 2: 0. Senão: 11 − resto Receita (conversão dos caracteres); pesos e resto, domínio público
PIS, PASEP, NIS, NIT 10 dígitos 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 Menor que 2: 0. Senão: 11 − resto Domínio público
RENAVAM 10 dígitos 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 Menor que 2: 0. Senão: 11 − resto Domínio público
Título de eleitor 8 dígitos, depois 3 2 a 9 e depois 7, 8, 9, da esquerda para a direita O próprio resto; resto 10 vira 0 Domínio público, com variações entre fontes

Duas observações sobre a tabela:

  • Os pesos do CPF, lidos da direita para a esquerda, são 2, 3, 4 e assim por diante, sem voltar ao 2. O CNPJ é o que recomeça depois do 9.
  • No RENAVAM, muita gente escreve a conta como “soma vezes 10, resto da divisão por 11, e 10 vira 0”. Dá exatamente o mesmo resultado da regra da tabela. Conferi essa equivalência para somas de 0 a 1.999.

O que muda no CNPJ alfanumérico?

Só o valor de cada caractere. Cada um vale o código ASCII menos 48: os dígitos de 0 a 9 valem eles mesmos, A vale 17, B vale 18, e assim até Z, que vale 42. Pesos e regra do resto continuam os mesmos. Quem explica isso é a Receita, no material sobre o CNPJ com letras.

O exemplo oficial é a base 12ABC34501DE. Os produtos do primeiro dígito somam 459, o resto é 8 e o dígito é 11 − 8 = 3. Com esse 3 na base, os produtos do segundo dígito somam 424, o resto é 6 e o dígito é 11 − 6 = 5. O resultado é 12.ABC.345/01DE-35, como no documento da Receita.

Onde o título de eleitor foge do padrão?

Em três pontos. Os pesos do primeiro dígito crescem da esquerda para a direita (2 a 9). O dígito é o próprio resto, e não 11 menos o resto, e resto 10 vira 0. E o segundo dígito é calculado com os dois dígitos da UF e o primeiro verificador, com pesos 7, 8 e 9.

Exemplo calculado pelo gerador do site para o título 575135080655 (UF 06, Paraná):

  • Primeiro dígito: os oito primeiros dígitos, 57513508, com pesos de 2 a 9, dão soma 181. O resto é 5, então o dígito é 5.
  • Segundo dígito: 0, 6 e 5, com pesos 7, 8 e 9, dão 0 + 48 + 45 = 93. O resto é 5, então o dígito é 5.

Há ainda uma exceção para títulos de São Paulo e Minas Gerais, que muda o resultado quando o resto é 0. Nem os pesos nem essa exceção vêm de texto oficial citável: a resolução do TSE descreve a estrutura do número, e a conta é a de uso corrente nos validadores, com divergências entre as fontes que consultei. Trate o título como o documento mais arriscado de implementar e confira a sua regra com a equipe que mantém o cadastro, e não só com um gerador. A página do gerador de título de eleitor lista a regra que este site usa.

E PIS e RENAVAM, na prática?

Os dois usam os mesmos pesos, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, e a regra comum do resto. Dois números fictícios gerados pelo site:

  • PIS 661.38764.66-5: soma 237, resto 6, dígito 11 − 6 = 5.
  • RENAVAM 44903307695: soma 204, resto 6, dígito 11 − 6 = 5.

Como escrever uma função que serve para todos?

Parametrize os pesos e deixe a regra do resto numa função à parte. O código abaixo foi executado no Node e devolve o dígito certo para o CPF fictício acima.

function modulo11(valores, pesos) {
  const soma = valores.reduce((total, v, i) => total + v * pesos[i], 0);
  const resto = soma % 11;
  return { soma, resto, dv: resto < 2 ? 0 : 11 - resto };
}

const digitos = (texto) => [...texto].map(Number);
const base = '861752998';

const d1 = modulo11(digitos(base), [10, 9, 8, 7, 6, 5, 4, 3, 2]);
const d2 = modulo11(digitos(base + d1.dv), [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]);

console.log(base + d1.dv + d2.dv, d1, d2);
// 86175299892 { soma: 310, resto: 2, dv: 9 } { soma: 383, resto: 9, dv: 2 }

Para o CNPJ, troque digitos por uma função que devolva caractere.charCodeAt(0) - 48 e use os pesos de 2 a 9 da direita para a esquerda.

Que casos testar na sua implementação?

O erro mais comum está no corte do resto. Teste um CPF para cada caso, todos fictícios:

Primeiro dígito, resto da soma Base Dígito calculado CPF fictício completo
0 799102922 0 799.102.922-03
1 861580155 0 861.580.155-04
10 446427836 1 446.427.836-10

Nos dois primeiros, a regra “11 menos o resto” daria 11 e 10; o dígito certo é 0. No terceiro, o resto 10 dá o dígito 1. Uma implementação que esquece o corte falha nas duas primeiras linhas.

Para gerar muitos números de uma vez, com o passo a passo de cada um, use o gerador de CPF para teste. Todos os números são sorteados no seu navegador e servem apenas para testar software.

Números fictícios, apenas para teste de software. Eles são sorteados no seu navegador e seguem a regra do dígito verificador, mas não vêm de nenhum cadastro. Usar documento falso para enganar alguém é crime.
Dúvidas

Perguntas frequentes

Por que o dígito é 0 quando o resto é 0 ou 1?

Porque 11 menos o resto daria 11 ou 10, que não cabem em um único dígito. Por isso a regra comum manda usar 0 nesses dois casos. É o ponto em que mais implementações erram, então teste os dois.

Todos os documentos brasileiros usam o mesmo módulo 11?

Não. A divisão por 11 é a mesma, mas os pesos, o sentido deles e o tratamento do resto mudam. O título de eleitor, por exemplo, usa o próprio resto como dígito. Algumas inscrições estaduais usam módulo 10 ou módulo 9.

Dá para copiar a função de um documento e usar em outro?

Só se você parametrizar os pesos e a regra do resto. Uma função com pesos fixos de CPF devolve dígito errado para CNPJ, PIS ou RENAVAM, mesmo com a divisão por 11 igual.

Fontes

Blog

Leia também

Ferramenta

Veja também

Atualizado em 14/11/2026.