Cómo identificar el tipo de tarjeta de crédito según su número

Cómo identificar el tipo de tarjeta de crédito según su número

En los portales de eCommerce es muy común que a la hora de pagar, se solicite el tipo de tarjeta de crédito, el nombre y apellidos del titular de la tarjeta, el número de tarjeta, el mes y año de caducidad y el CVC.

El tipo de tarjeta, a parte poder ser usado para ciertas transacciones o funcionalidades internas de cada plataforma, también puede ser usado para validaciones de número de tarjeta y CVC.

Algunas diferencias de tarjetas de crédito según su tipo:

VISA:

Número de tarjeta (PAN) de 16 dígitos.

CVC de 3 caracteres.

Empiezan por 4NNNN…

AMEX:

Número de tarjeta (PAN) de 15 dígitos.

CVC de 4 caracteres.

Empiezan por 34NNNN,  37NNNN

¿Cómo identificar el tipo de tarjeta según su número?

La clave está en el Issuer Identification Number (IIN) del número de tarjeta (PAN).

El IIN está compuesto por los primeros dígitos del número de tarjeta (empezando por la izquierda).

Se podría resumir en:

  • VISA: 4NNNN
  • Mastercard: 51NNNN al  55NNNN  (51, 52, 53, 54, 55)
  • Discover: 6011NN, 644NNN, 65NNNN
  • AMEX: 34NNNN,  37NNNN
  • JCB: 2131, 1800, 35

Hay que terner en cuenta que ciertas tarjetas comerciales en realidad son de un tipo concreto. Por ejemplo, una tarjeta de crédito de IKEA que empiece por 54, tal y como podemos ver en la lista de arriba, será una MasterCard con un CVC de 3 caracteres.

Expresiones Regulares para detectar el tipo de tarjeta con su número:

A partir del número de tarjeta, podemos aplicar, en el lenguaje de programación que emplee tu plataforma, estas expresiones regulares:

Visa: ^4[0-9]{6,}$ Las Visas empiezan por 4.

MasterCard: ^5[1-5][0-9]{5,}|222[1-9][0-9]{3,}|22[3-9][0-9]{4,}|2[3-6][0-9]{5,}|27[01][0-9]{4,}|2720[0-9]{3,}$  Antes de 2016, los números de las MasterCard empezaban del  51 al 55, esto sólo detecta las tarjetas  MasterCard.  Hay otros tipos de tarjeta que emplean el sistema Mastercard que no están en este rango de IIN. En 2016 van a añadir nímeros al rango:  222100-272099.

American Express: ^3[47][0-9]{5,}$ AMEX – Los números de American Express empiezan por 34 o 37.

Diners Club: ^3(?:0[0-5]|[68][0-9])[0-9]{4,}$ Los de Diners Club empiezan van del 300 al 305, 36 o 38. Hay algunos que empiezan por 5 y tienen 16 dígitos. Estos casos aislados son joint ventures entre Dinners Club y MasterCard y deberían tratarse como MasterCard.

Discover: ^6(?:011|5[0-9]{2})[0-9]{3,}$ Discover empiezan por 6011 o 65.

JCB: ^(?:2131|1800|35[0-9]{3})[0-9]{3,}$ JCB empiezan por  2131, 1800 o 35.

Infografía de Detección de tipos de tarjeta:

Fuentes:

http://stackoverflow.com/questions/72768/how-do-you-detect-credit-card-type-based-on-number

http://www.regular-expressions.info/creditcard.html