Bin e padrões para validação de cartão de crédito.
Bandeira | Começa com | Máximo de número | Máximo de número cvc | Regex |
---|---|---|---|---|
Visa | 4 |
13,16 | 3 | ^4[0-9]{12}(?:[0-9]{3}) |
Mastercard | 5 |
16 | 3 | ^5[1-5][0-9]{14} |
Diners | 301,305,36,38 link |
14,16 | 3 | ^3(?:0[0-5]|[68][0-9])[0-9]{11} |
Elo | 636368, 438935, 504175, 451416, 636297,5067,4576,4011 |
16 | 3 | ^((((636368)|(438935)|(504175)|(451416)|(636297))\d{0,10})|((5067)|(4576)|(4011))\d{0,12}) |
Amex | 34,37 |
15 | 4 | ^3[47][0-9]{13} |
Discover | 6011,622,64,65 |
16 | 4 | ^6(?:011|5[0-9]{2})[0-9]{12} |
Aura | 50 |
16 | 3 | |
jcb | 35 |
16 | 3 | ^(?:2131|1800|35\d{3})\d{11} |
Hipercard | 38,60 |
13,16,19 | 3 | ^(606282\d{10}(\d{3})?)|(3841\d{15}) |
Os dados dos cartões: Elo, Hipercard desta tabela não são oficiais. Tentei diversas vezes falar com o pessoal dessas bandeiras afim de ter uma informação oficial, porém, é muito difícil falar com o setor técnico e as atendentes nem sabem o que é bin de cartão e nem sabem do que estou falando :(
Essa tabela foi montada através de coleta de dados de cartões reais. Onde o usuário colocava o número de cartão de crédito dele e quando não conseguíamos saber qual a banheira pedíamos para que o usuário selecionasse a bandeira. A partir deste momento coletávamos os primeiros dígitos do cartão.
Eu atualizei essa tabela até o mês de Agosto/2013. Não sei se teve atualizações desde então. De qualquer forma acredito que é uma boa tabela de referência e acredito que a busca pelo padrão continua pois deve ter cartões que ainda não estão em nenhum padrão.
Caso tenha alguma dúvida me mande um email: erikhq cpan org Quando tem um novo comentário aqui nesta gist eu não recebo notificação.
Caso você saiba de algum novo padrão ou viu algo de errado, por favor, ajude a manter essa tabela atualizada.
Existe este site também para cartões internacionais: http://bin-iin.com/
vlw