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.

Validador do algoritmo de Luhn

O algoritmo de Luhn (também chamado de MOD 10) é o checksum usado pelas principais bandeiras de cartão para detectar erros de digitação nos números de cartão. Cole um número abaixo para verificar se ele passa — a validação acontece na hora no seu navegador e nada é enviado para um servidor.

Como funciona o algoritmo de Luhn

  1. Começando pelo dígito mais à direita, dobre cada segundo dígito.
  2. Se a duplicação resultar em um número maior que 9, subtraia 9 (o mesmo que somar os dois dígitos).
  3. Some todos os dígitos (os dobrados e os inalterados).
  4. 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