← Início / Artigos Técnicos / Módulo 11 em CPF e CNPJ
Algoritmos & Regulatório Fiscal

Como Funciona o Cálculo do Módulo 11 (CPF e CNPJ Passo a Passo)

Por Alexandre Marcelino • Tempo de leitura: 8 minutos • Atualizado em Outubro de 2026

No ecossistema de desenvolvimento de software no Brasil, poucas rotinas de validação são tão frequentes e essenciais quanto a checagem de CPF (Cadastro de Pessoas Físicas) e CNPJ (Cadastro Nacional da Pessoa Jurídica). Seja em um formulário de checkout em e-commerce, na abertura de contas digitais em fintechs ou na integração com sistemas ERP, validar a consistência cadastral antes de chamar uma API externa economiza requisições desnecessárias e impede a entrada de dados corrompidos no banco de dados.

Ambos os documentos utilizam uma variação da técnica matemática de soma ponderada conhecida como Módulo 11 para gerar seus dois últimos algarismos: os famosos dígitos verificadores (DV). Neste guia aprofundado, você entenderá exatamente como essa matemática funciona e como implementá-la em código limpo.

1. Anatomia do Cadastro de Pessoa Física (CPF)

O CPF é estruturado por exatamente 11 algarismos decimais no formato tradicional XXX.XXX.XXX-YY:

  • 8 primeiros dígitos (Base Cadastral): Identificam o registro individual do cidadão na base da Receita Federal.
  • 9º dígito (Região Fiscal de Origem): Identifica a Unidade Federativa onde o CPF foi emitido originalmente.
  • 2 últimos dígitos (Dígitos Verificadores): Calculados matematicamente pelos pesos do Módulo 11 sobre os 9 dígitos anteriores.
9º Dígito Região Fiscal Estados Cobertos (UF)
1 1ª Região Fiscal DF, Goiás (GO), Mato Grosso (MT), Mato Grosso do Sul (MS), Tocantins (TO)
2 2ª Região Fiscal Amazonas (AM), Pará (PA), Roraima (RR), Amapá (AP), Acre (AC), Rondônia (RO)
3 3ª Região Fiscal Ceará (CE), Maranhão (MA), Piauí (PI)
4 4ª Região Fiscal Pernambuco (PE), Rio Grande do Norte (RN), Paraíba (PB), Alagoas (AL)
5 5ª Região Fiscal Bahia (BA), Sergipe (SE)
6 6ª Região Fiscal Minas Gerais (MG)
7 7ª Região Fiscal Rio de Janeiro (RJ), Espírito Santo (ES)
8 8ª Região Fiscal São Paulo (SP)
9 9ª Região Fiscal Paraná (PR), Santa Catarina (SC)
0 10ª Região Fiscal Rio Grande do Sul (RS)

2. O Passo a Passo Matemático do Cálculo do CPF

Passo 1: Primeiro Dígito Verificador (DV1)

Para encontrar o 10º algarismo, multiplicamos cada um dos 9 primeiros dígitos por uma série decrescente de pesos inteiros que se inicia em 10 e termina em 2:

Soma = (D1 * 10) + (D2 * 9) + (D3 * 8) + (D4 * 7) + (D5 * 6) + 
       (D6 * 5) + (D7 * 4) + (D8 * 3) + (D9 * 2)

Resto = Soma % 11

Se Resto < 2:
    DV1 = 0
Senão:
    DV1 = 11 - Resto
        

Passo 2: Segundo Dígito Verificador (DV2)

Agora incluímos o DV1 recém-calculado na sequência de dígitos (totalizando 10 algarismos) e aplicamos nova multiplicação ponderada, desta vez começando com o peso 11 até 2:

Soma = (D1 * 11) + (D2 * 10) + (D3 * 9) + ... + (D9 * 3) + (DV1 * 2)

Resto = Soma % 11

Se Resto < 2:
    DV2 = 0
Senão:
    DV2 = 11 - Resto
        

3. O Caso Crítico dos Dígitos Repetidos

Um erro de implementação clássico em bibliotecas de validação é esquecer o caso de CPFs com dígitos repetidos, como 111.111.111-11, 000.000.000-00 ou 999.999.999-99.

Matematicamente, sequências repetidas satisfazem a fórmula do Módulo 11! Por isso, a Receita Federal do Brasil classifica explicitamente todos os 11 números formados pelo mesmo caractere como inválidos por convenção. Qualquer validador deve checar essa condição antes de iniciar as somas ponderadas:

if (/^(\d)\1{10}$/.test(cpfLimpo)) {
    return false; // Rejeita 00000000000, 11111111111, etc.
}
        

4. Como Funciona no CNPJ (Cadastro Nacional da Pessoa Jurídica)

O CNPJ possui 14 dígitos (XX.XXX.XXX/YYYY-ZZ). A diferença fundamental em relação ao CPF está na distribuição dos pesos: como o CNPJ tem mais dígitos, os pesos variam de 2 a 9 de forma cíclica!

  • Para o 1º DV (13º dígito): Multiplica-se os 12 primeiros números pelos pesos [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2].
  • Para o 2º DV (14º dígito): Multiplica-se os 13 números (incluindo o DV1) pelos pesos [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2].

A regra de resolução do resto é idêntica: Resto = Soma % 11; se Resto < 2 o dígito é 0, caso contrário é 11 - Resto.

5. Implementação de Referência em JavaScript Moderno

Abaixo está uma função otimizada e testada para uso em produção no Node.js ou navegador:

function validarCPF(cpf) {
  if (typeof cpf !== 'string') return false;
  const limpo = cpf.replace(/\D/g, '');
  
  if (limpo.length !== 11) return false;
  if (/^(\d)\1{10}$/.test(limpo)) return false;

  // Cálculo do 1º Dígito Verificador
  let soma = 0;
  for (let i = 0; i < 9; i++) {
    soma += parseInt(limpo.charAt(i), 10) * (10 - i);
  }
  let resto = soma % 11;
  const dv1 = resto < 2 ? 0 : 11 - resto;
  if (dv1 !== parseInt(limpo.charAt(9), 10)) return false;

  // Cálculo do 2º Dígito Verificador
  soma = 0;
  for (let i = 0; i < 10; i++) {
    soma += parseInt(limpo.charAt(i), 10) * (11 - i);
  }
  resto = soma % 11;
  const dv2 = resto < 2 ? 0 : 11 - resto;
  return dv2 === parseInt(limpo.charAt(10), 10);
}
        

Perguntas Frequentes sobre o Algoritmo (FAQ)

Por que o algoritmo se chama Módulo 11?+
O nome vem da operação aritmética modular (resto da divisão inteira) por 11. O número 11 foi escolhido na teoria de números e detecção de erros porque, sendo um número primo, minimiza as chances de colisões ou falsos positivos em transposições e erros de digitação comuns de operadores humanos.
Um CPF com dígitos verificadores válidos garante que a pessoa existe?+
Não. O algoritmo do Módulo 11 atesta exclusivamente a conformidade matemática e integridade da sequência. A confirmação de existência jurídica, situação cadastral (Regular, Suspensa, Cancelada) ou titularidade depende de consulta direta às bases da Receita Federal ou via certificados autorizados (SERPRO/Dataprev).
O que é a regra da 'matriz' no CNPJ (0001)?+
Os dígitos 9 a 12 do CNPJ indicam o número de ordem do estabelecimento. A matriz de uma empresa tradicionalmente recebe o sufixo /0001, enquanto as filiais seguintes recebem /0002, /0003 e assim por diante.
AM

Sobre o Autor: Alexandre Marcelino

Formado em Engenharia de Software, pós-graduando em Arquitetura de Software e com mais de 6 anos de experiência na área de tecnologia. Criador e mantenedor da Caixa do Dev. Conheça seus projetos no GitHub (@xandy139).

Testar no Gerador de CPF → Testar no Gerador de CNPJ →