title: Basic Bank Account Number
text: # Basic Bank Account Number
  
  Le Basic Bank Account Number (BBAN, litt. « numéro de compte bancaire basique ») ou relevé d'identité bancaire (RIB), en France, ou encore spécimen de chèque (Québec) est une suite de chiffres délivré par la banque et qui indique de manière unique un compte bancaire au niveau national. Il est remis à un débiteur ou un créancier dans le but d'opérer des virements bancaires ou des prélèvements bancaires à partir de ce compte. Ces éléments sont souvent présents sur les chèques (chéquier).
  
  ## Remplacement du RIB par l'IBAN
  
  ### En France
  
  La notion de RIB a été officiellement abolie avec le passage au format SEPA. Néanmoins ce terme est encore largement utilisée pour désigner l'IBAN (International Bank Account Number) qui permet d'identifier un compte à l'international. Aujourd'hui les comptes bancaires français disposent du relevé d'identité bancaire qui comporte : l'IBAN, le RIB et le BIC. En Europe, l'IBAN est suffisant pour opérer des opérations bancaires SEPA (prélèvement et virement).
  
  En France, l'IBAN est inscrit sur le relevé de compte du compte en question.
  
  ### Législation
  
  La réglementation SEPA entraîne l'impossibilité d'utiliser le RIB pour des opérations bancaires, l'IBAN étant nécessaire et suffisant. Les virements et prélèvements nationaux et européens sont soumis aux mêmes frais et aux mêmes droits et devoirs. Il est également possible d'utiliser l'IBAN d'un autre pays européen dans son propre pays.
  
  Les établissements de crédit (BNP Paribas, Société générale, Crédit agricole…), les établissements de paiement (Nickel par exemple) ainsi que les établissements de monnaie électronique (Paypal, Treezor…) ont la faculté de délivrer des IBAN.
  
  ## Composition
  
  Composition du BBAN :
  
  | 3 à 12 positions | 3 à 12 positions | 3 à 12 positions | 3 à 12 positions | 3 à 12 positions | 3 à 12 positions | 3 à 12 positions | 3 à 12 positions | 3 à 12 positions | 3 à 12 positions | 3 à 12 positions | 3 à 12 positions | 8 à 20 positions | 8 à 20 positions | 8 à 20 positions | 8 à 20 positions | 8 à 20 positions | 8 à 20 positions | 8 à 20 positions | 8 à 20 positions | 8 à 20 positions | 8 à 20 positions | 8 à 20 positions | 8 à 20 positions |
  | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
  | IID | IID | IID | IID | IID | IID | IID | IID | IID | IID | IID | IID | BAN | BAN | BAN | BAN | BAN | BAN | BAN | BAN | BAN | BAN | BAN | BAN |
  
  * IID : identification de l’établissement financier
  * BAN : numéro de compte bancaire
  
  Il n'a pas plus de 30 positions. Chaque pays a la responsabilité de définir le format de son BBAN.
  
  ## Exemples
  
  * France et Monaco (23 caractères) Format : BBBBBGGGGGCCCCCCCCCCCKK
  
         B = code banque (5 chiffres), G = code guichet (5 chiffres), C = numéro de compte (11 chiffres et/ou lettres), K = clé RIB (2 chiffres entre 01 et 97)
  * Belgique (12 chiffres) Format : BBBCCCCCCCKK
  
         B = code banque (3 chiffres), C = numéro de compte (7 chiffres), KK = BBBCCCCCCC modulo 97 (si égal à 0, KK = 97)
  * Allemagne (18 chiffres) Format BBBBBBBBCCCCCCCCCC
  
         B = code banque (8 chiffres), C = numéro de compte (10 chiffres. Si moins, compléter à gauche avec des 0)
         Nota: le numéro de compte allemand (C) contient une clé de contrôle, mais sa position et son calcul diffèrent d'une banque à l'autre. Il existe plus de 100 méthodes différentes de calcul de la clé en Allemagne (source : de:Kontonummer)
  
  ## Clé RIB
  
  Clé = 97 − ([concaténation de banque, guichet, compte] * 100 modulo 97). Cette clé est proche de celle du numéro de Sécurité sociale français, à la différence qu'il n'est pas centuplé. Si le compte comporte des lettres (banques françaises Banque postale et Crédit lyonnais), remplacer la lettre par son index de 1 à 9 dans l'alphabet ($A=1,\ \ldots ,\ I=9,\ J=1,\$etc.) en laissant un saut entre R et S ($R=9,\ S=2$).
  
  ## Le chéquier
  
  Le relevé d'identité bancaire, sur le carnet de chèque, est composé de :
  
  * l'International Banking Account Number (IBAN), numéro de compte à la norme internationale ISO n° 13616
  * le Bank Identification Code (BIC), identifiant de l'établissement financier (la banque) à la norme internationale ISO n° 9362
  * le nom et l'adresse du titulaire du compte, en date d'établissement du carnet de chèque (les chèques restant valides après déménagement)
  * le nom de l'établissement financier (la banque) et du guichet de domiciliation (l'agence bancaire)
  
  ## Vérification du RIB
  
  ### Algorithme
  
  La validité d'un RIB se calcule grâce à la clé de celui-ci.
  
  La première étape consiste à remplacer les lettres présentes par des chiffres pour faciliter le calcul.
  
  Tableau de transformation des caractères :
  
  | Caractère | Chiffre représentant |
  | - | - |
  | 0 | 0 |
  | 1, A, J | 1 |
  | 2, B, K, S | 2 |
  | 3, C, L, T | 3 |
  | 4, D, M, U | 4 |
  | 5, E, N, V | 5 |
  | 6, F, O, W | 6 |
  | 7, G, P, X | 7 |
  | 8, H, Q, Y | 8 |
  | 9, I, R, Z | 9 |
  
  Pour faire la transformation, il suffit de se placer en base 36 (base 10 + 26 lettres) et d'appliquer le calcul suivant sur chaque caractère (transformé en nombre currentCharValue) puis de remplacer le sélectionné par le nombre donné :
  
  ${\text{currentCharValue}}+2^{\frac {{\text{currentCharValue}}-10}{9}}{\pmod {10}}$
  
  L'étape suivante (facultative) consiste à décomposer le code et multiplier chaque partie par une constante et en faire la somme. Enfin, le code est correct si le nombre obtenu (soit par simple concaténation de nos différentes parties, soit par décomposition) est congru à 0 modulo 97.
  
  ${\text{bankCode}}*89+{\text{counter}}*15+{\text{account}}*3+{\text{key}}\equiv 0{\pmod {97}}$
  
  ### Vérification du RIB en C#
  
  La fonction check_rib retourne vrai ou faux en fonction de la validité des informations.
  
  Algorithme de clé RIB | developpez.com
  
  ### Vérification du RIB en Perl
  
  Avec :
  
  * $cbanque : code de la banque
  * $cguichet : code du guichet
  * $nocompte : numéro de compte
  * $clerib : clé rib
  
  ### Vérification du RIB en PHP
  
  La fonction check_rib retourne vrai ou faux en fonction de la validité des informations.
  
  ### Vérification du RIB en Ruby
  
  Avec :
  
  * rib : le RIB complet sans espace à passer à la méthode.
  
  ### Vérification du RIB en SQL
  
  Cette vérification permet de valider la saisie de l'utilisateur, qui renseigne à l'exécution de la requête SQL les codes Banque, Guichet et numéro de compte, ou de lui demander une nouvelle saisie.
  
  ### Vérification du RIB en SQL pour Oracle
  
  Cette vérification permet de vérifier un grand nombre de RIB, dans une table RIB_payment
  
  saisie au préalable, et en relation avec une table des personnes (personnes physiques ou personnes morales).
  
  La requête contrôle le IBAN (on peut facilement le construire à partir du RIB).
  
  ### Vérification du RIB en VBA
  
  Ce code fonctionne sous Excel, l'abréviation « VBE » étant la contraction de VBA pour Excel.
  
  Ces fonctions permettent de vérifier la validité d'un RIB
  
  Il faut insérer ces deux fonctions dans un module dans visual basic editor (EXCEL ou ACCESS) et faire l'appel depuis :
  
  1. Excel :
  
  Où A1, A2, A3 et A4 doivent contenir les 4 valeurs composant le RIB (RIB_Banque, RIB_Guichet, RIB_Compte, RIB_Cle)
  
  2. Access :
  
  Où RIB_Banque, RIB_Guichet, RIB_Compte, RIB_Cle sont les noms des zones de texte qui doivent contenir le RIB et TESTRIB est le nom de la zone de texte qui devra afficher le résultat du test.
  
  ## Conversion du RIB en IBAN
  
  ### Algorithme
  
  * Créer un IBAN temporaire, composé du code du pays : FR pour la France, suivi de " 00 " et du " code RIB "
  * Déplacer les 4 premiers caractères de l’IBAN vers la droite du numéro.
  * Convertir les lettres en chiffres, selon le principe "A" vaut "10" ... "Z" vaut "35".
  * Calculer le modulo 97 et retrancher le reste de 98. Si le résultat comporte un seul chiffre, insérer un zéro devant.
  
  Insérer le résultat ainsi obtenu à la position 3 de l’IBAN temporaire créé dans l’étape 1.
  
  ### Conversion du RIB en IBAN en Python
  
  Avec :
  
  * rib : le RIB complet sans espace à passer à la méthode.
  
  ### Conversion du RIB en IBAN en Ruby
  
  Avec :
  
  * rib : le RIB complet sans espace à passer à la méthode.
  
  ### Conversion du RIB en IBAN en VBA
  
  Ce code fonctionne sous Excel, l'abréviation « VBE » étant la contraction de VBA pour Excel.
  
  