O que a verificação de Luhn pega
O último dígito de todo número de cartão é um dígito verificador calculado com o algoritmo de Luhn (ISO/IEC 7812). Ele detecta qualquer erro em um único dígito e quase toda troca de dois dígitos vizinhos, por isso os formulários de pagamento usam essa conta para recusar números digitados errado antes de falar com o banco. Números IMEI de celulares e muitos cartões de fidelidade usam a mesma verificação.
Um número que passa está só bem formado. Isso não quer dizer que o cartão existe, pertence a alguém ou tem limite; só o banco emissor sabe.
Exemplo resolvido
Pegue 4111 1111 1111 1111, o famoso número de teste da Visa. A partir da direita, dobre um dígito sim, um não: a soma fecha em 30, múltiplo de 10, então o número é válido. Troque o último dígito por 2 e ele falha. O dígito verificador certo para os 15 primeiros dígitos é 1.
Privacidade
A validação roda no navegador e nada é guardado ou enviado. Para testar fluxos de pagamento, use os números de teste do seu gateway (Stripe, Mercado Pago, PagSeguro) em vez de um cartão real.
Como funciona
A página remove espaços e hífens e aplica o algoritmo de Luhn da ISO/IEC 7812-1: começando pelo dígito da direita, um dígito sim, um não é dobrado, 9 é subtraído de resultados acima de 9 e todos os dígitos são somados. O número é válido quando a soma termina em 0. A página também calcula qual dígito verificador tornaria o resto do número válido e compara os primeiros dígitos com as faixas públicas das bandeiras Visa, Mastercard, American Express, Discover, JCB, Diners Club, Elo, Hipercard e UnionPay. Nada sai do navegador.
Perguntas frequentes
Um resultado válido quer dizer que o cartão existe?
Não. Só quer dizer que o dígito verificador está certo. Só o banco emissor confirma que o cartão existe.
É seguro digitar meu cartão aqui?
A validação roda inteira no navegador e nada é enviado ou guardado. Mesmo assim, não precisa usar um cartão real: números de teste funcionam.
O que mais usa o algoritmo de Luhn?
Números IMEI de celulares, muitos cartões-presente e de fidelidade e alguns documentos de identificação.
Como a bandeira é detectada?
Pelos primeiros dígitos, o número de identificação do emissor, com faixas públicas como 4 para Visa e 51–55 ou 2221–2720 para Mastercard.
Fontes
- ISO/IEC 7812-1:2017 — Identification cards, numbering system (Luhn check digit)
- The Unicode Standard, latest version
- Wikipedia — Luhn algorithm
Revisado em 17 de out. de 2026 · vetores de teste fixtures/codes/credit-card-validator/