Uma ferramenta de testes segura para desenvolvedores de sistemas de pagamento e profissionais de QA. Todos os números de teste são não funcionais e exclusivos para ambientes de desenvolvimento.
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.
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;
}
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
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.
Gere cartões de teste a partir de qualquer BIN
Padrões com curingas e geração em massa
Números oficiais da documentação de cada gateway
Verifique se um número de cartão é válido
Identifique a bandeira do cartão pelo BIN
Números de teste Visa que começam com 4
Números de teste Mastercard 51–55 / 2221–2720
Números de teste American Express de 15 dígitos
Números de teste Discover 6011 / 65
Estime os juros do cartão de crédito
Planeje o pagamento mensal
Guias e tutoriais de testes de pagamento