Educacional
    Atualizado

    Como validar um CPF passo a passo (módulo 11)

    Aprenda o algoritmo do CPF, módulo 11, com exemplo numérico e código em Python e JavaScript. Inclui dicas para integrar ao seu sistema RH ou CRM e link pra ferramenta.

    Equipe Ferramentas Para Tudo23 de junho de 202614 min de leitura

    O algoritmo do CPF usa o cálculo por módulo 11 para gerar dois dígitos verificadores. Neste post você terá a explicação teórica, um exemplo numérico detalhado, código pronto em Python e JavaScript, e recomendações práticas para integrar no seu sistema RH, contabilidade ou CRM.

    Por que validar o CPF no backend? Dados errados atrapalham folha, impostos e conciliação. No Brasil há mais de 200 milhões de CPFs emitidos, segundo a Receita Federal, 2023, portanto conferir a validade na origem reduz erros e retrabalho. Além disso, a validação local evita chamadas desnecessárias a serviços externos e melhora a experiência do usuário.

    Use nossa ferramenta para automatizar validações: use nosso validador de CPF em /ferramentas/validador-cpf. Se precisar de dados de teste, use o gerador de CPF em /ferramentas/gerador-cpf.

    O que é o dígito verificador do CPF e por que usar módulo 11

    O CPF é composto por 11 dígitos: nove dígitos base mais dois dígitos verificadores. Os dois últimos dígitos são calculados com o algoritmo de módulo 11. O objetivo é detectar erros comuns de digitação, como troca de dígitos ou omissão.

    Dados rápidos com fontes

    • População estimada do Brasil: 214.3 milhões em 2022, IBGE, 2022. Isso explica o alto volume de CPFs ativos e a necessidade de validação local.
    • A Receita Federal mantém o cadastro do CPF e orientações para uso do número, Receita Federal, 2023.
    • O método de dígito verificador usado em documentos oficiais segue o princípio do módulo 11 para detectar inconsistências, Portal de Governo, 2019.

    Regra passo a passo com exemplo numérico

    Aqui está a regra geral, explicada em passos claros, seguida por um exemplo prático.

    Passos do cálculo

  1. Pegue os primeiros nove dígitos do CPF. Esses são os dígitos base.
  2. Para calcular o primeiro dígito verificador, multiplique cada um dos nove dígitos por pesos decrescentes de 10 a 2, some os resultados e aplique módulo 11.
  3. O resto da divisão por 11 define o primeiro dígito: se o resto for menor que 2, o dígito é 0; caso contrário, o dígito é 11 menos o resto.
  4. Para o segundo dígito, inclua o primeiro dígito calculado nos nove originais, formando 10 números. Multiplique pelos pesos de 11 a 2, some, aplique módulo 11 e use a mesma regra de arredondamento.
  5. Compare os dois dígitos calculados com os dois últimos dígitos do CPF informado. Se coincidirem, o CPF é válido quanto ao algoritmo.
  6. Exemplo numérico passo a passo

    Considere o CPF base: 168.995.350. Para o exemplo transformamos em sequência: 1 6 8 9 9 5 3 5 0

    Cálculo do primeiro dígito

    • Pesos: 10 9 8 7 6 5 4 3 2
    • Multiplicações: 1*10 = 10, 6*9 = 54, 8*8 = 64, 9*7 = 63, 9*6 = 54, 5*5 = 25, 3*4 = 12, 5*3 = 15, 0*2 = 0
    • Soma: 10 + 54 + 64 + 63 + 54 + 25 + 12 + 15 + 0 = 297
    • Resto da divisão por 11: 297 % 11 = 0
    • Regra: resto < 2 então primeiro dígito = 0

    Portanto o primeiro dígito verificador é 0.

    Cálculo do segundo dígito

    • Agora a sequência é: 1 6 8 9 9 5 3 5 0 0
    • Pesos: 11 10 9 8 7 6 5 4 3 2
    • Multiplicações: 1*11 = 11, 6*10 = 60, 8*9 = 72, 9*8 = 72, 9*7 = 63, 5*6 = 30, 3*5 = 15, 5*4 = 20, 0*3 = 0, 0*2 = 0
    • Soma: 11 + 60 + 72 + 72 + 63 + 30 + 15 + 20 + 0 + 0 = 343
    • Resto: 343 % 11 = 2
    • Regra: resto >= 2 então segundo dígito = 11 - 2 = 9

    Assim os dois dígitos verificadores são 0 e 9. O CPF completo fica 168.995.350-09. Se esse for o CPF informado, ele está correto segundo o algoritmo de módulo 11.

    Implementação em código: Python e JavaScript

    A seguir há duas implementações compactas e prontas para uso. Use nos endpoints backend, rotinas de importação em massa, ou validações de formulário no server side.

    Python (funcional, fácil de integrar)

    ``python

    def apenas_numeros(s):

    return ''.join(c for c in s if c.isdigit())

    def valida_cpf(cpf_raw):

    cpf = apenas_numeros(cpf_raw)

    if len(cpf) != 11:

    return False

    if cpf == cpf[0] * 11:

    return False

    nums = [int(c) for c in cpf]

    # primeiro dígito

    soma = sum(a * b for a, b in zip(nums[:9], range(10, 1, -1)))

    resto = soma % 11

    d1 = 0 if resto < 2 else 11 - resto

    # segundo dígito

    soma = sum(a * b for a, b in zip(nums[:9] + [d1], range(11, 1, -1)))

    resto = soma % 11

    d2 = 0 if resto < 2 else 11 - resto

    return nums[9] == d1 and nums[10] == d2

    # Exemplo

    print(valida_cpf('16899535009')) # True

    `

    JavaScript (Node.js ou frontend com atenção a segurança)

    `javascript

    function apenasNumeros(s) {

    return s.replace(/\D+/g, '');

    }

    function validaCPF(cpfRaw) {

    const cpf = apenasNumeros(cpfRaw);

    if (cpf.length !== 11) return false;

    if (/^(\d)\1{10}$/.test(cpf)) return false;

    const nums = cpf.split('').map(n => parseInt(n, 10));

    let soma = 0;

    for (let i = 0; i < 9; i++) soma += nums[i] * (10 - i);

    let resto = soma % 11;

    const d1 = resto < 2 ? 0 : 11 - resto;

    soma = 0;

    for (let i = 0; i < 10; i++) soma += nums[i] * (11 - i);

    resto = soma % 11;

    const d2 = resto < 2 ? 0 : 11 - resto;

    return nums[9] === d1 && nums[10] === d2;

    }

    // Exemplo

    console.log(validaCPF('168.995.350-09')); // true

    ``

    Boas práticas na validação em sistemas RH e contabilidade

  7. Valide no backend sempre, mesmo que haja validação no frontend. Frontend melhora UX, backend evita fraude e inconsistências.
  8. Rejeite CPFs com todos os dígitos iguais, por exemplo 111.111.111-11, 222.222.222-22. Esses CPFs passam em checagens simples, mas não são válidos conforme regras do cadastro.
  9. Ao importar base de dados em massa, faça checagens em lote e registre estatísticas: total de CPFs lidos, número inválidos, percentual rejeitado. Isto ajuda a dimensionar limpeza de dados.
  10. Se seu fluxo exige confirmação adicional, integre com serviços oficiais ou soluções de validação por consulta, mas só após a validação local falhar.
  11. Para auditoria e rastreabilidade, mantenha logs de validade e do motivo de rejeição.
  12. Exemplo de checklist antes de gravar no banco

    • Confere formato e remove pontos e traços.
    • Verifica comprimento igual a 11.
    • Rejeita sequências com dígitos repetidos.
    • Aplica algoritmo do módulo 11.
    • Marca registro como válido ou inválido e armazena motivo.

    Tabela de casos comuns e como tratá-los

    SituaçãoVerificaçãoAção recomendada

    CPF com pontuação correta e algoritmo válidoAplica-se módulo 11Aceitar e cadastrar
    CPF com pontuação incorreta, algoritmo válidoNormalizar e aplicar módulo 11Aceitar após normalização
    CPF com todos dígitos iguaisDetectar com regexRejeitar automaticamente
    CPF com menos de 11 dígitosVerificar origem do dadoSolicitar complemento ao usuário ou rejeitar na importação
    CPF válido no algoritmo mas conflitante com base de clientesCruzar com baseAção manual: verificação documental

    Blockquote: princípio de validação

    Validar CPF é uma camada de defesa simples e eficiente: previne erros de entrada, reduz fraudes e melhora a qualidade dos dados que sua folha de pagamento e contabilidade irão processar.

    Integração prática com pipelines de dados

    • Em cadastros novos, execute validação no endpoint que cria o registro. Retorne mensagem amigável ao usuário, por exemplo: "CPF inválido, verifique o número e tente novamente".
    • Em importações de massa, gere um arquivo de rejeitados com a razão, para que equipe de operações revise e corrija manualmente.
    • Em microserviços, implemente a validação como uma função desacoplada para facilitar testes unitários.

    Checklist técnico para devs e arquitetos

  13. Escreva testes unitários cobrindo CPFs válidos, inválidos, sequências repetidas e entradas com caracteres não numéricos.
  14. Proteja endpoints público com rate limit se sua API oferece validação em lote, para evitar abuso.
  15. Use logs estruturados ao validar em produção para facilitar investigação futura.
  16. Documente a função de validação no repositório, com exemplos e referência à norma do cálculo.
  17. Perguntas frequentes

    O algoritmo do CPF usa módulo 11, como funciona na prática?

    O algoritmo aplica pesos decrescentes aos dígitos base, soma os produtos, calcula o resto da divisão por 11 e transforma o resto em dígito verificador pela regra: resto menor que 2 gera 0, caso contrário resultado é 11 menos o resto. Esse processo é feito duas vezes, para os dois dígitos verificadores. Use o código de exemplo para implementar exatamente essa operação.

    Como tratar CPFs com todos os dígitos iguais?

    Sequências como 000.000.000-00 ou 111.111.111-11 devem ser rejeitadas explicitamente. Embora algumas possam passar em checagens superficiais, essas sequências não representam CPFs válidos na base da Receita Federal e aparecem frequentemente em dados de teste ou preenchimento automático indevido.

    Posso usar apenas regex para validar um CPF?

    Regex ajuda a validar formato, por exemplo colocar a máscara 000.000.000-00, mas não garante validade matemática do número. Combine regex com o algoritmo de módulo 11 para garantir que o CPF não só está formatado corretamente, mas também é consistente quanto aos dígitos verificadores.

    Como integrar a validação de CPF no cadastro do meu sistema?

    Valide no frontend para melhorar a experiência, mas execute a validação final no backend antes de persistir. Para integração com sistemas de folha de pagamento, armazene também o histórico de tentativas e motivo de rejeição. Se quiser checar a existência do CPF na base governamental, use serviços oficiais ou provedores de dados após a validação local.

    Conclusão e próximo passo

    Validar CPF com o algoritmo do módulo 11 é uma prática obrigatória para sistemas de RH, contabilidade e CRM que processam cadastros de pessoas físicas. Implemente a checagem como mostrado, escreva testes e trate casos especiais como sequências repetidas. Para facilitar sua rotina, use nossa ferramenta automática: use nosso validador de CPF em /ferramentas/validador-cpf e, para testes, o gerador em /ferramentas/gerador-cpf.

    Referências e leituras sugeridas

    • Receita Federal do Brasil, documentação sobre CPF, Receita Federal, 2023.
    • IBGE, estimativa populacional 2022, IBGE, 2022.
    • Portal de Governo, orientações técnicas, 2019.

    Se você é dev ou trabalha com RH e contabilidade, implemente a função de validação como serviço reutilizável e inclua logs que permitam auditar rejeições. Isso reduz retrabalho na folha e problemas fiscais, além de melhorar a qualidade dos cadastros.