Ferramentas de Desenvolvimento

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

Dicas

  • 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.

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.
ツールくん

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.