Validador de Número de Cartão de Crédito | Algoritmo de Luhn

Digite um número de cartão de crédito para verificar o dígito verificador com o algoritmo de Luhn e detectar automaticamente a bandeira (Visa, Mastercard, Amex, etc.). Útil para testar validações de formulário.

[[ labels.client_side_note ]]

[[ labels.format_error ]]
[[ labels.sample_label ]]:
[[ labels.no_input ]]

[[ labels.result_label ]]

[[ labels.formatted_label ]] [[ result.formatted ]]
[[ labels.brand_label ]] [[ brandName ]] [[ labels.brand_unknown ]]
[[ labels.checksum_label ]] ✓ [[ labels.checksum_valid ]] ✗ [[ labels.checksum_invalid ]]

Bandeiras suportadas e regras de identificação (IIN e comprimento)

Bandeira Dígitos iniciais (IIN) Comprimento
Visa 4 13, 16, 19
Mastercard 51–55, 2221–2720 16
American Express 34, 37 15
Discover 6011, 65 16
JCB 3528–3589 16
Diners Club 300–305, 36, 38 14
UnionPay 62 16–19

O que este validador de número de cartão faz

Todo número de cartão de crédito traz no final um dígito verificador pensado para detectar erros de digitação. Ao conferir a sequência com o algoritmo de Luhn descobre-se a maior parte dos erros de um único dígito e das inversões entre algarismos vizinhos. Esta ferramenta faz essa verificação e ainda deduz a bandeira do cartão a partir dos algarismos iniciais e do comprimento.

O ponto essencial é que se trata apenas de uma validação de formato. Mesmo passando na verificação de Luhn, o número não precisa corresponder a um cartão existente, e muito menos indica se ele está ativo. A autorização real tem de passar pela API de um adquirente. O número informado é processado somente no seu navegador e não é enviado para fora.

Como validar um número

  1. Informe o número Espaços e hifens são removidos automaticamente, de modo que você pode colar tal como copiou.
  2. Veja o resultado do dígito verificador O resultado do algoritmo de Luhn aparece como válido ou inválido. Se for inválido, há um erro em algum dos algarismos.
  3. Confira a bandeira detectada A bandeira é deduzida dos algarismos iniciais e do comprimento. A tabela abaixo traz as condições aplicadas.
  4. Teste o comportamento com um exemplo O botão de exemplo insere um número de teste, permitindo verificar o funcionamento sem usar um número real.

Dicas para aproveitar melhor

  • Experimente os botões de exemplo com números de teste conhecidos (ex.: Visa: 4111 1111 1111 1111) em vez de um número real.
  • Espaços e hifens são removidos automaticamente, então você pode colar um número copiado de qualquer lugar.
  • Esta ferramenta verifica apenas o formato pelo algoritmo de Luhn. Para autorização real ou consulta de saldo, use a API do seu processador de pagamentos.
  • Ao desenvolver a validação de um formulário, use esta ferramenta para gerar um caso válido e um inválido e testar sua lógica.

Quando é útil

Implementar a validação de um formulário

Compare o veredicto da sua própria validação com o daqui. Dá para preparar tanto casos corretos quanto casos com erro.

Verificar a lógica de detecção da bandeira

Na tabela dá para ver que bandeira resulta de cada combinação de algarismos iniciais e comprimento, útil quando é preciso exibir o ícone de cartão correspondente.

Isolar um erro de digitação

Se um pagamento não passa, você pode conferir primeiro se o próprio formato do número está errado, o que acelera o diagnóstico.

Aprender o algoritmo de Luhn

Mude um único algarismo e verá a validação virar inválida na hora, o que torna o mecanismo bem concreto.

Termos sobre números de cartão

Algoritmo de Luhn
Método de cálculo que verifica se uma sequência de algarismos é plausível. Da direita para a esquerda dobra-se um algarismo sim, outro não, soma-se tudo e, se o total for divisível por 10, considera-se válido.
Dígito verificador
Algarismo acrescentado ao final para detectar erros de digitação. É obtido por cálculo a partir das demais posições.
IIN
Número de identificação do emissor localizado no início do número do cartão. A partir dele distinguem-se a bandeira e a instituição emissora.
Bandeira
Bandeiras internacionais como Visa, Mastercard ou American Express. É determinada pela combinação de algarismos iniciais e comprimento.
Autorização
Processo que verifica se o cartão é realmente utilizável e se o limite disponível é suficiente. É um trâmite completamente distinto da validação de formato.

Perguntas Frequentes

Não. Esta ferramenta faz apenas uma verificação de formato pelo algoritmo de Luhn — ela não pode dizer se o cartão realmente existe, foi desativado ou tem saldo suficiente. A autorização real exige os sistemas do seu processador de pagamentos.

O número nunca é enviado a um servidor; todo o cálculo ocorre no JavaScript do seu navegador. Ainda assim, se você só quer testar a ferramenta, recomendamos usar um dos números de exemplo em vez de um cartão real.

É um algoritmo de detecção de erros criado em 1954 por Hans Peter Luhn, da IBM. Começando pela direita, cada segundo dígito é dobrado, e se a soma total for múltipla de 10, o formato é considerado válido. Ele detecta a maioria dos erros de digitação.

Baseia-se nos primeiros dígitos (o Número de Identificação do Emissor) combinados com o comprimento total. Por exemplo, cartões Visa começam com "4" e têm 13, 16 ou 19 dígitos, Mastercard começa com "51-55" e tem 16 dígitos, e JCB começa com "3528-3589" e também tem 16 dígitos, seguindo regras públicas. Veja a tabela completa em "Bandeiras suportadas e regras de identificação (IIN e comprimento)", logo abaixo da ferramenta.

Não. Passar na verificação de Luhn só confirma que o número é internamente consistente como formato. Até um número inventado de 16 dígitos pode ser ajustado no último dígito para passar na verificação.
Tool-kun

Curiosidade — Hans Peter Luhn, o Pai do Dígito Verificador

O dígito verificador ao final de um número de cartão de crédito é conferido por um algoritmo criado em 1954 pelo engenheiro da IBM Hans Peter Luhn. Ele recebeu uma patente por isso em 1960, mas a patente expirou há muito tempo, tornando o algoritmo de uso livre para qualquer pessoa.

O funcionamento é surpreendentemente simples. Começando pelo dígito mais à direita, cada segundo dígito é dobrado; se o resultado tiver dois algarismos, eles são somados entre si (por exemplo, 8×2=16 → 1+6=7). Se a soma de todos os dígitos for múltipla de 10, o número é considerado formalmente válido.

O algoritmo é usado muito além dos cartões de crédito — também detecta erros de digitação em números IMEI (que identificam smartphones) e em números de seguro social canadenses, entre outros. Vale lembrar que o Luhn detecta apenas erros acidentais de digitação; ele não indica se o cartão realmente existe ou tem saldo.

Os primeiros 6 a 8 dígitos de um número de cartão formam o IIN (Número de Identificação do Emissor), que identifica a rede do cartão e o banco emissor. A detecção de bandeira desta ferramenta é baseada nas faixas de IIN documentadas publicamente para cada rede.