← Voltar
Guia · 8 min de leitura

Dígito verificador: o que é e como calcular

Dígito verificador é o número no fim de um documento que é calculado a partir dos outros. Se alguém digita um número errado, a conta não fecha e o sistema recusa na hora. Este guia mostra a regra do CPF, do CNPJ (inclusive o alfanumérico), do RG, da conta bancária e do cartão, com um exemplo resolvido de cada.

Para que serve o dígito verificador

Ele existe para pegar erro de digitação. Trocar um número ou inverter dois vizinhos muda o resultado da conta, e o documento deixa de passar. Ele não diz se o documento existe nem de quem é: um CPF pode passar na conta e nunca ter sido emitido. É por isso que um gerador de dados de teste consegue criar números válidos que não são de ninguém.

DocumentoDígitosRegra
CPF2 dígitosMódulo 11
CNPJ (numérico e alfanumérico)2 dígitosMódulo 11
RG de São Paulo1 dígito (0 a 9 ou X)Módulo 11
Cartão de crédito1 dígitoLuhn (módulo 10)
Conta e agência bancária1 dígito (às vezes X)Regra de cada banco
CEPNão tem-

Dígito verificador do CPF

O CPF tem 11 dígitos: 9 de base e 2 verificadores, calculados por módulo 11. Exemplo com a base 529.982.247:

  1. Multiplique os 9 dígitos pelos pesos 10, 9, 8, 7, 6, 5, 4, 3, 2 e some: 50 + 18 + 72 + 63 + 48 + 10 + 8 + 12 + 14 = 295.
  2. Divida por 11 e pegue o resto: 295 mod 11 = 9.
  3. Resto menor que 2 vira 0; senão, o dígito é 11 menos o resto: 11 - 9 = 2.
  4. Junte o 2 à base e repita com os pesos 11 a 2 sobre os 10 dígitos: soma 347, resto 6, dígito 11 - 6 = 5.

Resultado: 529.982.247-25. O 9º dígito (o último da base) indica o estado onde o CPF foi emitido: 8 é São Paulo, 7 é Rio de Janeiro e Espírito Santo, 6 é Minas Gerais. Sequências com todos os dígitos iguais, como 111.111.111-11, passam na conta mas são recusadas por convenção.

Para testar sem fazer a conta na mão, o gerador de CPF cria números válidos e fictícios, e o validador da mesma página confere qualquer CPF.

Dígito verificador do CNPJ

O CNPJ tem 14 caracteres: 8 da raiz, 4 da ordem (0001 é a matriz) e 2 verificadores. A regra é a do CPF com outros pesos: 5 4 3 2 9 8 7 6 5 4 3 2 nos 12 primeiros para o primeiro dígito e 6 5 4 3 2 9 8 7 6 5 4 3 2 nos 13 primeiros para o segundo.

Exemplo com 11.222.333/0001:

  1. Soma com os 12 pesos: 102. Resto da divisão por 11: 3. Dígito: 11 - 3 = 8.
  2. Soma com os 13 pesos (incluindo o 8): 120. Resto: 10. Dígito: 11 - 10 = 1.

Resultado: 11.222.333/0001-81.

CNPJ alfanumérico

No CNPJ alfanumérico da Receita, os 12 primeiros caracteres podem ter letras e os 2 verificadores continuam numéricos. A conta é a mesma; cada caractere vale o seu código ASCII menos 48. Números ficam iguais e letras viram 17 (A), 18 (B), 19 (C) e assim por diante. Para 12.ABC.345/01DE, os valores são 1, 2, 17, 18, 19, 3, 4, 5, 0, 1, 20, 21, as somas dão 459 e 424 e os dígitos saem 3 e 5: 12.ABC.345/01DE-35.

Os geradores de CNPJ e de CNPJ alfanumérico criam números válidos para testar as duas versões.

Dígito verificador do RG

Cada estado tem o seu formato de RG. O de São Paulo, o mais usado em formulários, tem 8 dígitos e 1 verificador por módulo 11: multiplique os 8 dígitos pelos pesos 2, 3, 4, 5, 6, 7, 8, 9, some, e o dígito é 11 menos o resto da divisão por 11. Se der 10, o dígito é X; se der 11, é 0.

Exemplo com 24.678.135: soma 199, resto 1, 11 - 1 = 10, então o RG é 24.678.135-X. O dígito fica sempre no fim, depois do traço. Para gerar outros, use o gerador de RG.

Dígito da conta e da agência bancária

O dígito da conta é o número depois do traço, e algumas agências também têm o seu. Aqui não existe uma regra única: cada banco define a sua, a maioria com variações de módulo 11 ou módulo 10, e alguns usam X como dígito, como o Banco do Brasil. Para validar de verdade, siga a especificação do banco.

O gerador de conta bancária cria banco, agência, conta e dígito fictícios para testar formulário e cadastro. Ele sorteia o dígito, então não use para testar a regra de um banco específico.

Cartão de crédito: algoritmo de Luhn

O cartão usa o algoritmo de Luhn (módulo 10): dobra um dígito sim, um não, começando pelo penúltimo da direita, e a soma de tudo tem que terminar em 0. O passo a passo está no guia do algoritmo de Luhn.

Módulo 11 em código

A mesma função calcula o dígito do CPF e do CNPJ; só mudam os pesos:

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

// CPF: pesos 10..2, depois 11..2
const base = [5, 2, 9, 9, 8, 2, 2, 4, 7];
const d1 = digitoMod11(base, [10, 9, 8, 7, 6, 5, 4, 3, 2]);         // 2
const d2 = digitoMod11([...base, d1], [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]); // 5

// CNPJ alfanumérico: cada caractere vale o código ASCII menos 48
const valores = [..."12ABC34501DE"].map((c) => c.charCodeAt(0) - 48);

Perguntas frequentes

O que é dígito verificador?+

É o número que fica no fim de um documento e é calculado a partir dos outros dígitos. Serve para o sistema perceber erro de digitação na hora: se alguém troca ou inverte um número, a conta não bate e o documento é recusado.

Como calcular o dígito verificador do CPF?+

Multiplique os 9 primeiros dígitos pelos pesos 10 a 2, some e pegue o resto da divisão por 11. Se o resto for menor que 2, o dígito é 0; senão, é 11 menos o resto. Repita com os 10 primeiros dígitos e pesos 11 a 2 para achar o segundo dígito.

Como calcular o dígito verificador do CNPJ?+

Use os pesos 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 nos 12 primeiros caracteres para o primeiro dígito e 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 nos 13 primeiros para o segundo, com a mesma regra do resto do CPF. No CNPJ alfanumérico, cada letra vale o código ASCII menos 48 (A = 17, B = 18 e assim por diante).

Onde fica o dígito verificador do RG?+

É o último caractere, depois do traço: no RG 24.678.135-X, o dígito é o X. No formato de São Paulo ele é calculado por módulo 11, e quando o resultado é 10 vira X. Outros estados usam regras próprias.

O que é o dígito verificador da conta bancária?+

É o número depois do traço no número da conta (e às vezes da agência). Não existe regra única: cada banco define a sua, e alguns usam X como dígito, como o Banco do Brasil.

O dígito verificador impede fraude?+

Não. Ele só pega erro de digitação. Qualquer pessoa consegue calcular um número que passa na conta, que é exatamente o que um gerador de dados de teste faz. Saber se um CPF existe ou está regular exige consulta à Receita Federal.