Validador de Número de Cartão de Crédito
Valide números de cartão de crédito pelo algoritmo Luhn. Identifica a bandeira e verifica o dígito verificador, sem enviar dados para servidores.
Como funciona o algoritmo Luhn?
O algoritmo de Luhn (ou módulo 10) é usado por todas as bandeiras de cartão de crédito. A partir da direita, cada segundo dígito é dobrado — se o resultado for maior que 9, subtrai-se 9. A soma de todos os dígitos deve ser divisível por 10.
A bandeira é identificada pelo primeiro dígito: Visa começa com 4, MasterCard com 5, Elo com 6.
A verificação acontece inteiramente no seu navegador. Nenhum número digitado é enviado para servidores.
De Luhn ao PCI-DSS: o que validar um cartao de credito realmente significa
O numero de um cartao — formalmente o PAN (Primary Account Number) — e um identificador ISO/IEC 7812. A validacao tem tres camadas, frequentemente confundidas: formato (comprimento e digitos), aritmetica (digito verificador Luhn mod-10) e identificacao de bandeira pelos primeiros digitos (BIN/IIN). Nenhuma delas prova que o cartao existe, esta ativo, tem saldo ou pertence a quem o apresenta; so uma chamada de autorizacao ao emissor responde isso.
Este validador client-side roda as duas primeiras camadas offline. E a mesma logica usada por Stripe Elements, Mercado Pago Checkout Bricks e Adyen Web Components para rejeitar erros de digitacao antes de a requisicao de tokenizacao sair na rede — reduzindo latencia e ruido de fraude no backend.
BIN/IIN: os primeiros 6 digitos identificam bandeira e emissor
Os primeiros 6 digitos (em expansao para 8) do PAN formam o Bank Identification Number / Issuer Identification Number. Identificam bandeira, banco emissor e ate produto (classico, gold, black). Principais faixas:
- Visa: comeca com
4, tamanho 13/16/19. - Mastercard:
51-55ou2221-2720, tamanho 16. - American Express:
34ou37, tamanho 15. - Discover:
6011,65, tamanho 16. - Diners Club:
36, tamanho 14/16. - JCB:
35, tamanho 16. - Elo (Brasil): BINs especificos (ex.:
40117,431274,451416,50670,506699,506715,509000-509999,627780,636297), tamanho 16. - Hipercard (Brasil):
606282, tamanho 16.
No Brasil, Visa e Mastercard dominam cerca de 80% do mercado. A Elo — joint venture de Banco do Brasil, Bradesco e Caixa — fica em torno de 13% e o Hipercard (Itau) tem ~3%. Plataformas antifraude como ClearSale, Konduto e Adyen Antifraud usam o BIN como sinal precoce: um BIN Visa de pais com alto risco combinado a endereco de entrega brasileiro aumenta o score de fraude antes mesmo de chamar o gateway.
O algoritmo Luhn mod-10
Hans Peter Luhn (IBM, 1954) desenhou o mod-10 para capturar erros de digitacao em um digito e transposicoes de digitos adjacentes — os dois erros humanos mais comuns ao copiar um numero de cartao. Procedimento:
- A partir do digito mais a direita, dobre cada segundo digito.
- Se o valor dobrado passar de 9, subtraia 9 (equivalente a somar seus digitos).
- Some todos os digitos.
- O PAN e valido se
soma mod 10 == 0.
4539 1488 0343 6467
digitos dobrados (D->E, pos par):
8,3,7,9,4,4,1,1
soma = 80, 80 mod 10 = 0 -> valido
CVV, validade e o que o cliente nao valida
O CVV/CVC/CID (3 digitos no verso para Visa, Mastercard, Discover; 4 digitos na frente para Amex) e gerado pelo emissor usando uma chave secreta e o PAN — nao da para computar offline e e intencionalmente nao derivavel. A validade so checa que MM/AA e data futura. Esses dois campos, junto com o nome do titular, completam uma transacao CNP (Card Not Present), mas nao fornecem sinal de autorizacao ate o emissor responder.
Armazenar PAN completo, CVV ou trilha magnetica em client-side ou logs nao criptografados viola o PCI-DSS v4.0, padrao mantido pelo PCI Security Standards Council (Visa, Mastercard, Amex, Discover, JCB). Fintechs modernas evitam o problema via tokenizacao: Stripe, Mercado Pago e Adyen substituem o PAN por token de uso unico ou escopo limitado, de forma que o lojista nunca toque em dado sensivel.
EMV, 3D Secure e SCA do PSD2
O EMV e o padrao de chip-and-PIN (Europay, Mastercard, Visa) que substituiu a tarja magnetica para transacoes presenciais. O 3D Secure 2.x adiciona camada de autenticacao frictionless em fluxos CNP; sob PSD2 europeu, implementa Strong Customer Authentication (SCA), exigindo dois fatores entre conhecimento, posse e inerencia. No Brasil, a regulacao de open finance do Bacen empurra emissores para step-up biometrico equivalente.
Bibliotecas e cartoes de teste
card-validator(Braintree, npm) — deteccao de bandeira + Luhn usada no Drop-in UI.creditcards(npm) — Luhn puro + helpers de formato.- PAN de teste Stripe:
4242 4242 4242 4242passa no Luhn, bandeira = Visa. - Adyen / Mercado Pago publicam PANs de teste por bandeira nos dashboards.
Alerta de anti-pattern: nao rode Luhn enquanto o usuario ainda digita — vai piscar "invalido" ate o ultimo digito. Valide apenas em blur, em colagem, ou quando o comprimento bater com o esperado para a bandeira detectada.
FAQ
Da para detectar a bandeira so pelo BIN? Sim. Os 6 (agora 8) primeiros digitos identificam bandeira e emissor quando comparados com uma base BIN. Bibliotecas de deteccao ja trazem as faixas comuns; para Elo e Hipercard pode ser necessaria lista atualizada, ja que essas tabelas crescem anualmente.
O CVV pode trafegar em URL ou QR code? Nao. O PCI-DSS proibe armazenar CVV apos a autorizacao e emiti-lo por canal nao criptografado e nao conforme. Tokens sao o veiculo certo para pagamentos recorrentes.
Tokens substituem o PAN ponta a ponta? Sim. Stripe, Mercado Pago e Adyen emitem tokens com escopo que referenciam o PAN salvo apenas dentro do cofre deles. Seu backend guarda o token; o PAN nunca entra no seu banco, reduzindo drasticamente o escopo PCI-DSS.
Passar no Luhn significa que o cartao e real? Nao. O Luhn so previne erro de digitacao. Cerca de 10% das sequencias aleatorias de 16 digitos passam no mod-10 por acaso — so a chamada de autorizacao confirma cartao real e ativo.
O PAN de teste 4242 4242 4242 4242 e seguro para commitar? Sim. E um cartao publico de teste do Stripe que so funciona em modo test e nunca cobra dinheiro. Cartoes reais nunca podem ir para o git nem para logs compartilhados.
Ferramentas Relacionadas
Validador de CPF
Valide CPFs instantaneamente pelo algoritmo oficial da Receita Federal, sem enviar dados para nenhum servidor. Gratuito e sem cadastro.
Validador de CPF em Lote
Valida uma lista de CPFs (um por linha) e mostra quais são válidos e quais são inválidos. Sem envio para servidores.
Validador de CNPJ em Lote
Valida uma lista de CNPJs (um por linha) e mostra resumo: válidos, inválidos e total. Sem envio para servidores.
Como validar um número de cartão
Antes de mandar um número de cartão para o gateway, vale uma checagem rápida que pega a maioria dos erros de digitação: o algoritmo de Luhn. Ele soma os dígitos com um peso alternado e confere se o total fecha certo. Este validador roda esse cálculo e ainda identifica a bandeira a partir do prefixo do número.
É o tipo de verificação que faz sentido no próprio formulário, dando retorno imediato ao usuário sem precisar de uma chamada ao servidor. Lembre-se de que o Luhn confirma apenas que o número é bem formado — ele não diz se o cartão existe, tem saldo ou está dentro da validade; isso só a operadora sabe. A ferramenta aceita o número com ou sem espaços.
A validação é feita inteiramente no navegador e nenhum dado é enviado para fora do seu dispositivo. Mesmo assim, a recomendação geral continua valendo: evite digitar cartões reais em sites em que você não confia.