Un outil de test sécurisé pour les développeurs de systèmes de paiement et les professionnels QA. Tous les numéros de test sont non fonctionnels et réservés aux environnements de développement.

4 min de lecture Par Namso Gen
Comprendre les numéros BIN : guide pour les développeurs

Comprendre les numéros BIN : guide pour les développeurs

Qu'est-ce qu'un numéro BIN/IIN ?

Les numéros d'identification bancaire (BIN) ou numéros d'identification de l'émetteur (IIN) sont les 6 à 8 premiers chiffres d'un numéro de carte de paiement qui identifient l'établissement émetteur de la carte. Ces numéros sont essentiels au traitement des paiements, à la détection de la fraude et au routage des transactions.

Structure d'un numéro BIN

Décomposition du format standard

Position Longueur Rôle Exemple
1 1 chiffre Major Industry Identifier (MII) 4 (banque)
2-6 5 chiffres Établissement émetteur 12345
7-8 2 chiffres BIN étendu (facultatif) 67

Valeurs du Major Industry Identifier (MII)

Chiffre MII Secteur
0 Attribution ISO/TC 68
1 Compagnies aériennes
2 Compagnies aériennes/Finance
3 Voyage/Divertissement
4 Banque/Finance
5 Banque/Finance
6 Commerce de détail
7 Pétrole/Autre
8 Santé/Télécommunications
9 Attribution nationale

Plages de BIN courantes par réseau de carte

Plages de BIN principales

bin_ranges = {
    'Visa': ['4'],
    'Mastercard': ['51-55', '2221-2720'],
    'American Express': ['34', '37'],
    'Discover': ['6011', '644-649', '65'],
    'JCB': ['3528-3589'],
    'UnionPay': ['62']
}

Implémentation d'une recherche de BIN

def validate_bin(card_number):
    bin_number = card_number[:6]
    
    # Validation de base
    if not bin_number.isdigit():
        return False
        
    # Identification du réseau
    if card_number.startswith('4'):
        network = 'Visa'
    elif any(card_number.startswith(str(i)) for i in range(51, 56)):
        network = 'Mastercard'
    elif card_number.startswith(('34', '37')):
        network = 'American Express'
    else:
        network = 'Unknown'
        
    return {
        'bin': bin_number,
        'network': network,
        'length': len(card_number),
        'valid': len(card_number) in [13, 15, 16, 19]
    }

Propriétés des données BIN

Champs de réponse BIN standard

Champ Description Exemple
scheme Réseau de la carte "visa"
country Pays émetteur "US"
type Type de carte "credit"
category Catégorie de carte "platinum"
issuer Banque émettrice "CHASE"
length Longueur du numéro de carte 16

Règles de validation basées sur le BIN

Longueur du numéro de carte par réseau

Réseau Longueurs valides
Visa 13, 16, 19
Mastercard 16
American Express 15
Discover 16, 19
UnionPay 16-19

Exemple d'intégration

const binValidator = {
  checkBIN: function(cardNumber) {
    const bin = cardNumber.substring(0, 6);
    const length = cardNumber.length;
    
    // Vérification simple du format
    if (!/^\d{6}/.test(bin)) {
      return {
        valid: false,
        error: 'Invalid BIN format'
      };
    }
    
    // Détection du réseau
    const network = this.detectNetwork(bin);
    
    // Validation de la longueur
    const isValidLength = this.validateLength(length, network);
    
    return {
      valid: isValidLength,
      network: network,
      bin: bin,
      cardLength: length
    };
  },
  
  detectNetwork: function(bin) {
    // Logique de détection du réseau
    if (/^4/.test(bin)) return 'visa';
    if (/^5[1-5]/.test(bin)) return 'mastercard';
    if (/^3[47]/.test(bin)) return 'amex';
    return 'unknown';
  }
};

Considérations de sécurité

  1. Protection des données

    • Ne stockez jamais les numéros de carte complets
    • Chiffrez les données BIN en transit
    • Limitez l'accès aux données BIN
  2. Exigences de conformité

    • Conformité PCI DSS pour le stockage des BIN
    • Politiques de conservation des données
    • Mise en œuvre du contrôle d'accès
  3. Optimisation des performances

    • Mettez en cache les résultats des recherches de BIN
    • Implémentez une limitation de débit (rate limiting)
    • Utilisez des recherches de BIN en lot

Bonnes pratiques pour le traitement des BIN

Pratique Objectif Mise en œuvre
Mise en cache Réduire les appels API Stocker les données BIN en mémoire
Validation Éviter les erreurs Vérifier le format avant traitement
Surveillance Détecter les problèmes Journaliser les schémas de recherche de BIN

Ce guide fournit l'essentiel pour travailler avec les numéros BIN dans les systèmes de traitement des paiements. Utilisez-le pour améliorer la validation des paiements, la détection de la fraude et le routage des transactions dans vos applications.

Articles connexes