Validador do algoritmo de Luhn
Como funciona o algoritmo de Luhn
- Começando pelo dígito mais à direita, dobre cada segundo dígito.
- Se a duplicação resultar em um número maior que 9, subtraia 9 (o mesmo que somar os dois dígitos).
- Some todos os dígitos (os dobrados e os inalterados).
- Se o total for divisível por 10, o número é válido.
Exemplo: 79927398713 passa na verificação — os dígitos processados somam 70.
Mude qualquer dígito e a soma deixa de ser divisível por 10.
Implementação
JavaScript
function isValidLuhn(number) {
const digits = number.replace(/\D/g, '');
let sum = 0;
let double = false;
for (let i = digits.length - 1; i >= 0; i--) {
let digit = Number(digits[i]);
if (double) {
digit *= 2;
if (digit > 9) digit -= 9;
}
sum += digit;
double = !double;
}
return sum % 10 === 0;
}
Python
def is_valid_luhn(number: str) -> bool:
digits = [int(c) for c in number if c.isdigit()]
total = 0
for index, digit in enumerate(reversed(digits)):
if index % 2 == 1:
digit *= 2
if digit > 9:
digit -= 9
total += digit
return total % 10 == 0
Luhn não é suficiente
Um número pode passar no Luhn e ainda assim ser inválido: o BIN pode não existir, o comprimento pode estar errado para a bandeira ou o cartão pode simplesmente não ter sido emitido. O Luhn detecta apenas erros acidentais, como erros de digitação. Para uma verificação completa, combine-o com o verificador de BIN e, para números de prática, use o gerador de cartões de teste.
Ferramentas gratuitas para testes de pagamento
Gerador de cartão de crédito
Gere cartões de teste a partir de qualquer BIN
Gerador avançado
Padrões com curingas e geração em massa
Números de cartão de teste
Números oficiais da documentação de cada gateway
Validador Luhn
Verifique se um número de cartão é válido
Verificador de BIN
Identifique a bandeira do cartão pelo BIN
Gerador Visa
Números de teste Visa que começam com 4
Gerador Mastercard
Números de teste Mastercard 51–55 / 2221–2720
Gerador Amex
Números de teste American Express de 15 dígitos
Gerador Discover
Números de teste Discover 6011 / 65
Calculadora de juros
Estime os juros do cartão de crédito
Calculadora de pagamentos
Planeje o pagamento mensal
Artigos
Guias e tutoriais de testes de pagamento