Las tarjetas de crédito
La especificación para el número de tarjeta de crédito es gobernada por la International Standards Organization (ISO/IEC 7812-1:1993) y el American National Standards Institute (ANSI X4.13).

Mayor Industry Identifier (MII)
MII | Asignación |
---|---|
1, 2 | Aerolíneas (Diners Club enRoute) |
3 |
Viaje y entretenimiento (American Express, Diner's Club, JCB y Carte Blanche)
|
4 | Banca y finanzas (Visa, Switch, y Electron) |
5 | Banca y finanzas (Mastercard y Bankcard) |
6 | Merchandising y finanzas (Discover Card, Laser, Solo, Switch y China UnionPay) |
7 | Petroleo |
8 | Telecomunicaciones |
9 | Asignación Nacional |
Algunos tipos de tarjetas:
- Visa: 4xxxxxx
- Mastercard: 5xxxxx
- Discover: 6011xx, 644xxx, 65xxxx
- American Express: 3xxxx, 37xxxx
- Diner's Club y Carte Blanche: 300xxx-305xxx, 36xxxx, 38xxxx
Tamaño del número de tarjeta:
- Visa y Visa Electron: 13 o 16
- Mastercard: 16
- Discover: 16
- American Express: 15
- Diner's Club (incluyendo enRoute, International, Blanche): 14
- Maestro: 12 a 19 (multinacional tarjeta de débito)
- Laser: 16 a 19 (Ireland Debit Card)
- Switch: 16, 18 o 19 (United Kingdom Debit Card)
Issuer Identification Number (IIN) or Bank Identification Number (BIN)
Los 6 primeros dígitos del número de la tarjeta de crédito (incluyendo el dígito inicial MII ) forman el Issuer Identification Number o IIN. EL IIN también es mencionado el Bank Identification Number o BIN. Estos dígitos identifican cual es la organización que publicó la tarjeta de crédito.
Número de cuenta
Los 7 dígitos (menos el checksum) indican el identificador de cuenta individual. La longitud máxima de un número de la tarjeta de crédito es 19 dígitos. Desde 6 dígitos iniciales de un número de la tarjeta de crédito son el identificador de emisor, y el dígito final es el dígito de comprobación, esto quiere decir que la longitud máxima del campo de número de cuenta es 19 menos 7, 12 dígitos en total. Cada emisor por lo tanto tiene un billón de números de cuenta posibles.
Checksum
El dígito final de su tarjeta de crédito es un código de control o checkdigit, parecido a la suma de verificación o checksum.
El algoritmo de Luhn, conocido por el calculo de códigos de verificación modulo 10, puede ser usado para validar números de cuenta.
El algoritmo fue diseñado para proteger de errores accidentales pero no ataques maliciosos.
El algoritmo descubrirá casi cualquier error en un dígito.
Obtener información de la tarjeta mediante C#
Fuente: https://www.binlist.net/
Uso mediante solicitudes HTTP GET a http://www.binlist.net/{format}/{bin}
Formatos soportados csv, xml o json.
Ejemplos:
Código en C# (Aplicación de consola):
public class CreditCardInformation
{
public string bin { get; set; }
public string brand { get; set; }
public string sub_brand { get; set; }
public string country_code { get; set; }
public string country_name { get; set; }
public string bank { get; set; }
public string card_type { get; set; }
public string card_category { get; set; }
public string latitude { get; set; }
public string longitude { get; set; }
}
class Program
{
static void Main(string[] args)
{
var creditCardInformation = GetCreditCardInformation("431940");
foreach(var property in creditCardInformation.GetType().GetProperties())
{
Console.WriteLine("{0} = '{1}';", property.Name, (string)property.GetValue(creditCardInformation, null));
}
Console.ReadLine();
}
private static CreditCardInformation GetCreditCardInformation(string number)
{
string jsonText = string.Empty;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("https://www.binlist.net/json/{0}", number));
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
jsonText = reader.ReadToEnd();
}
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Deserialize<CreditCardInformation>(jsonText);
}
}
Comentarios
Publicar un comentario