Neste artigo
O que é a validação de cartão de crédito?
A validação de cartão de crédito é o processo de verificar se um número de cartão é estruturalmente válido antes de tentar uma transação. Isso inclui verificar o formato do número, aplicar o algoritmo de checksum de Luhn e detectar a bandeira do cartão (Visa, Mastercard, Amex, etc.) com base nos primeiros dígitos.
A validação não é o mesmo que autorização. Um número de cartão válido significa que o formato e o checksum estão corretos — não confirma que o cartão exista, tenha fundos ou pertença à pessoa que o está usando. A autorização real requer contato com o emissor do cartão através da rede de pagamento.
Como funciona o algoritmo de Luhn
O algoritmo de Luhn (também chamado de algoritmo módulo 10) é uma fórmula simples de checksum inventada por Hans Peter Luhn em 1954. Ele detecta erros acidentais em números de cartão — dígitos transpostos, erros de um único dígito e a maioria dos erros de digitação comuns. Veja como funciona passo a passo.
- Começando pelo dígito mais à direita (dígito de verificação), duplique cada segundo dígito movendo-se para a esquerda
- Se a duplicação produzir um número maior que 9, subtraia 9 do resultado (por exemplo, 8 x 2 = 16, depois 16 - 9 = 7)
- Some todos os dígitos — tanto os duplicados/ajustados quanto os inalterados
- Se o total for divisível por 10 (módulo 10 igual a 0), o número é válido segundo Luhn
Por exemplo, o número 4532015112830366: após aplicar o algoritmo, a soma dos dígitos é 40, que é divisível por 10, então passa na verificação de Luhn. Este algoritmo detecta aproximadamente 95% dos erros de um único dígito e todos os erros de transposição de dígitos adjacentes.
Experimente gratuitamente — sem cadastro
Validar um número de cartão de crédito →Detecção do tipo de cartão por BIN
O Número de Identificação Bancária (BIN) — os primeiros 6 a 8 dígitos de um número de cartão — identifica a bandeira do cartão e o banco emissor. Cada rede tem prefixos distintos e requisitos de comprimento.
- Visa — começa com 4, normalmente 16 dígitos (alguns cartões mais antigos têm 13)
- Mastercard — começa com 51-55 ou 2221-2720, sempre 16 dígitos
- American Express — começa com 34 ou 37, sempre 15 dígitos
- Discover — começa com 6011, 65 ou 644-649, sempre 16 dígitos
Casos de uso comuns
A validação de cartão de crédito do lado do cliente serve a vários propósitos práticos em aplicações web e processos empresariais.
- Checkout de e-commerce — validar o formato do cartão antes de enviar ao processador de pagamento para reduzir transações falhadas e chamadas de API
- UX do formulário de pagamento — mostrar o ícone do tipo de cartão (Visa, Mastercard, etc.) em tempo real enquanto o usuário digita e destacar erros imediatamente
- Prevenção de fraude — interceptar números claramente inválidos antes que cheguem ao gateway de pagamento, reduzindo taxas de processamento para transações recusadas
- Geração de cartões de teste — desenvolvedores usam números de teste válidos segundo Luhn (como 4111 1111 1111 1111 para Visa) para testar fluxos de pagamento sem cartões reais
Considerações de segurança
A validação de cartão de crédito é uma verificação de formato, não uma medida de segurança. Compreender suas limitações é fundamental para construir sistemas de pagamento seguros.
- A validação do lado do cliente detecta erros de digitação, mas não pode detectar cartões roubados ou cancelados — sempre processe através de um gateway de pagamento compatível com PCI DSS
- Nunca armazene números de cartão completos — use serviços de tokenização do seu provedor de pagamento (Stripe, Braintree, Adyen) para substituir dados do cartão por tokens seguros
- A conformidade com PCI DSS exige que os dados do titular do cartão nunca toquem seus servidores — use campos de pagamento hospedados ou fluxos de checkout baseados em redirecionamento
Perguntas frequentes
O algoritmo de Luhn pode produzir falsos positivos?
Sim. O algoritmo de Luhn valida apenas o checksum — confirma que o número é matematicamente consistente, não que um cartão real com esse número exista. Você pode gerar infinitos números válidos segundo Luhn que não correspondem a nenhum cartão emitido. É por isso que a validação de Luhn deve sempre ser seguida de autorização real com a rede do cartão.
Os números de cartões virtuais seguem as mesmas regras?
Sim. Os números de cartões virtuais gerados por bancos e serviços como Apple Pay, Google Pay ou Privacy.com seguem as mesmas regras de prefixo BIN e checksum de Luhn que os cartões físicos. São números de cartão válidos emitidos pelas mesmas redes — a única diferença é que podem ser temporários, de uso único ou limitados a comerciantes específicos.
Quais números de cartão de teste posso usar para desenvolvimento?
Os processadores de pagamento fornecem números de teste específicos: Visa 4111 1111 1111 1111, Mastercard 5500 0000 0000 0004, Amex 3782 822463 10005, Discover 6011 1111 1111 1117. Estes passam na validação de Luhn e são reconhecidos por ambientes de teste/sandbox. Nunca use números de cartão reais para testes — mesmo em desenvolvimento, use apenas números de teste oficiais do seu provedor de pagamento.