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.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
- Informe o número Espaços e hifens são removidos automaticamente, de modo que você pode colar tal como copiou.
- 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.
- Confira a bandeira detectada A bandeira é deduzida dos algarismos iniciais e do comprimento. A tabela abaixo traz as condições aplicadas.
- 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
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.