International Bank Account Number

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis ISO 13616)
Aller à : navigation, rechercher

ISO 13616 L'International Bank Account Number (IBAN), est une norme internationale pour numéroter les comptes bancaires. Elle permet l'identification exacte du compte et de l'établissement bancaire, ce qui facilite les virements.

Elle est instituée par l'ISO 13616, « Banque et services financiers connexes — Numéro de compte bancaire international » (IBAN) élaborée par l'Organisation internationale de normalisation (ISO) et le Comité Européen des Standards Bancaires (ECBS) devenu Conseil européen des paiements (ECP).

Cette norme remonte à 1997 et fut plusieurs fois révisée, notamment en 2003 et 2007.

La norme spécifie les éléments du numéro de compte bancaire du bénéficiaire de paiements transfrontaliers. Elle permet une identification homogène des comptes bancaires dans tous les pays, identifie de manière unique un compte bancaire quel que soit l'endroit où il est tenu. Elle est utilisée pour faciliter le traitement automatisé des paiements transfrontaliers.

Bien qu'un IBAN identifie autant un numéro de compte que l'agence de ce compte, les banques européennes demandent l'utilisation conjointe du Bank Identifier Code (BIC) et de l'IBAN pour identifier les bénéficiaires des virements européens. Les États-Unis n'ont majoritairement pas adopté cette exigence.

Composition[modifier | modifier le code]

Composition de l'IBAN
2 lettres 2 chiffres 30 positions
CP CC BBAN


L'IBAN comprend 34 caractères au maximum et a une longueur, fixe dans chaque pays, supérieure à 14 caractères.

Sous forme écrite, l'IBAN est précédé du sigle « IBAN » et est scindé en groupes de quatre caractères séparés par un espace. Tandis que sous sa forme électronique, le sigle « IBAN » n'est pas affiché au début et les caractères ne sont pas espacés.

Exemples[modifier | modifier le code]

  • Allemagne (22 caractères) Format IBAN : DEkk BBBB BBBB CCCC CCCC CC
B = codes banque et groupe de comptes (Bankleitzahl/BLZ), C = numéro de compte
  • Andorre (24) Format IBAN : ADkk BBBB SSSS CCCC CCCC CCCC
B = code banque, S = code groupe de comptes, C = numéro de compte
B = code banque, C = numéro de compte, K = clef
  • Autriche (20) Format IBAN : ATkk BBBB BCCC CCCC CCCC
B = code banque, C = numéro de compte, K = clef
  • Belgique (16) Format IBAN : BEkk BBBC CCCC CCKK
B = code banque, C = numéro de compte, K = clef
B = code banque, S = code groupe de comptes, C = numéro de compte, K = clef
  • Brésil (29) Format IBAN : BRkk BBBB BBBB SSSS SCCC CCCC CCCI P [1]
B = code banque, S = code guichet, C = numéro de compte, I = type de compte, P = position du compte
  • Bulgarie (22) Format IBAN : BGkk BBBB SSSS DDCC CCCC CC
B = code banque alphabétique (quatre premiers caractères du code SWIFT), S = code guichet, D = type de compte (numérique), C = n° de compte alphanumérique. Mis en place le 5 juin 2006.
  • Croatie (21) Format IBAN : HRkk BBBB BBBC CCCC CCCC C
B = code banque, C = numéro de compte
  • Chypre (28) Format IBAN : CYkk BBBS SSSS CCCC CCCC CCCC CCCC
B = code banque, S = code groupe de comptes, C = numéro de compte
  • Danemark (18) Format IBAN : DKkk BBBB CCCC CCCC CC
B = code banque, C = numéro de compte
  • Espagne (24) Format IBAN : ESkk BBBB GGGG KKCC CCCC CCCC
B = Code banque, G = code guichet, K = clef, C = n° de compte
  • Estonie (20) Format IBAN : EEkk BBBB CCCC CCCC CCCK
B = code banque, C = numéro de compte, K = clef
Même format que les comptes danois à l'exception du code pays.
  • Finlande (18) Format IBAN : FIkk BBBB BBCC CCCC CK
B = codes banque, guichet et type de compte, C = numéro de compte, K = clef.
  • France (27) Format IBAN : FRkk BBBB BGGG GGCC CCCC CCCC CKK
B = code banque, G = code guichet, C = numéro de compte, K = clef
Note: le BBAN correspond au RIB. Si ce dernier ne comporte que des chiffres, l'IBAN commence par FR76 suivi du RIB scindé en groupes de quatre caractères (voir la section Exemples ci dessous).
  • Gibraltar (23) Format IBAN : GIkk BBBB CCCC CCCC CCCC CCC
B = Premiers caractères du SWIFT BIC, C = numéro de compte
B = code banque alphabétique, S = code groupe de comptes (en général code guichet), C = numéro de compte
  • Grèce (27) Format IBAN : GRkk BBB BBBB CCCC CCCC CCCC CCCC
K = clef, B = code banque et code guichet, C = numéro de compte
  • Groenland (18) Format IBAN : GLkk CCCC CCCC CCCC CC
Même format que les comptes danois à l'exception du code pays
  • Hongrie (28) Format IBAN : HUkk BBBG GGGK CCCC CCCC CCCC CCCK
B = code banque, G = code guichet, C = numéro de compte, K = clef
  • Islande (26) Format IBAN : ISkk BBBB SSCC CCCC XXXX XXXX XX
B = code banque, S = type de compte, C = n° de compte, X = numéro d'identification unique du titulaire de compte délivré par le Bureau des statistiques.
  • Irlande (22) Format IBAN : IEkk AAAA BBBB BBCC CCCC CC
A = Premiers caractères du code SWIFT), B = code groupe de comptes, C = n° de compte.
  • Italie (27) Format IBAN : ITkk ABBB BBCC CCCX XXXX XXXX XXX
A = clef (système italien), B = code banque, C = code guichet (CAB), X = n° de compte.
  • Lettonie (21) Format IBAN : LVkk BBBB CCCC CCCC CCCC C
B = Premiers caractères du code SWIFT), C = n° de compte.
B = code banque, C = numéro de compte
  • Lituanie (20) Format IBAN : LTkk BBBB BCCC CCCC CCCC
B = code banque, C = numéro de compte
  • Luxembourg (20) Format IBAN : LUkk BBBB CCCC CCCC CCCC
B = code banque, C = numéro de compte
  • Macédoine (19) Format IBAN : MKkk BBBC CCCC CCCC CKK
B = code banque, C = numéro de compte, K = clef
  • Malte (31) Format IBAN : MTkk BBBB SSSS SCCC CCCC CCCC CCCC CCC
B = premiers caractères du code SWIFT), S = code groupe de comptes, C = numéro de compte
  • Monaco (27) Format IBAN : MCkk BBBB BGGG GGCC CCCC CCCC CKK
Même format que les comptes français à l'exception du code pays
  • Pays-Bas (18) Format IBAN : NLkk BBBB CCCC CCCC CC
B = code banque, C = n° de compte.
  • Norvège (15) Format IBAN : NOkk BBBB CC CCCCC
B = code banque, C = n° de compte, K = clef
  • Pologne (28) Format IBAN : PLkk BBBB BBBk CCCC CCCC CCCC CCCC
B = code banque (positions 1 à 3) et code groupe de comptes ou code guichet, C = n° de compte, kk = clefs.
  • Portugal (25) Format IBAN : PTkk BBBB BBBB CCCC CCCC CCCK K
B = code banque (positions 1 à 4) et code guichet, C = numéro de compte, K = clef
B = code banque, S = code groupe de comptes, C = numéro de compte
  • Roumanie (24) Format IBAN : ROkk BBBB CCCC CCCC CCCC CCCC
B = code banque, C = code guichet et n° de compte.
  • Saint-Marin (27) Format IBAN : SMkk ABBB BBCC CCCX XXXX XXXX XXX
Même format que les comptes italiens à l'exception du code pays
  • Serbie (22) Format IBAN : RSkk BBBC CCCC CCCC CCCC CC
B = code banque, C = numéro de compte
B = code banque, C = numéro de compte
  • Slovaquie (24) Format IBAN : SKkk BBBB CCCC CCCC CCCC CCCC
B = code banque, C = numéro de compte
  • Slovénie (19) Format IBAN : SIkk BB BBB CCCCCCCC KK
B = code banque (2 premières positions) et code guichet, C = code compte, K = clef
  • Suède (24) Format IBAN : SEkk BBBB CCCC CCCC CCCC CCCC
B = Code banque, C = n° de compte
  • Suisse (21) Format IBAN : CHkk BBBB BCCC CCCC CCCC C
B = code banque, C = numéro de compte
  • Turquie (26) Format IBAN : TRkk BBBB BRCC CCCC CCCC CCCC CC
B = code banque, R = "0" pour tous les comptes, C = code guichet et n° de compte. Utilisé à partir du 1er septembre 2005[2].
  • Tunisie (24) Format IBAN  : TNkk BBBB BCCC CCCC CCCC CCCC
B = code banque, C = numéro de compte


Méthode de calcul des clefs de contrôle[3][modifier | modifier le code]

  1. Créer un IBAN artificiel, composé du code du pays (ISO 3166), suivi de "00" et du BBAN (sans caractères autres qu'alphanumériques).
    Un BBAN belge comme 510-0075470-61 devient BE00510007547061
  2. Déplacer les 4 premiers caractères de l'IBAN à la droite du numéro.
    Résultat : 510007547061BE00
  3. Convertir les lettres en chiffres, selon la règle suivante. Chaque lettre est remplacée par les deux chiffres du nombre obtenu en ajoutant 9 à son rang dans l'alphabet. On obtient 10 pour A, 11 pour B… et 35 pour Z.
    Résultat : 510007547061111400
  4. Appliquer le MOD 97-10 (cf. ISO 7064).
    Calculer le modulo 97, c'est-à-dire le reste de la division du résultat précédent par 97, et retrancher ce reste de 98. Si le résultat comporte un seul chiffre, le faire précéder du chiffre zéro.
  5. Insérer le résultat ainsi obtenu à la position 3 de l'IBAN artificiel créé dans l'étape préalable (en remplacement des 2 zéros)  :
    98 - 36 = 62, d'où IBAN = BE62510007547061

Cette méthode de calcul d'un IBAN à partir d'un BBAN est identique pour tous les pays.

Algorithme de vérification de l'IBAN[modifier | modifier le code]

  1. Enlever les caractères indésirables (espaces, tirets)
  2. Déplacer les 4 premiers caractères à droite
  3. Remplacer les lettres par des chiffres au moyen d'une table de conversion (A=10, B=11, C=12 etc.)
  4. Diviser le nombre ainsi obtenu par 97.
  5. Si le reste n'est pas égal à 1 l'IBAN est incorrect : Modulo de 97 égal à 1

Exemples[modifier | modifier le code]

30002 04227 0000 0633 12D 56

  1. GB87BARC20658244971655
  2. BARC20658244971655GB87
  3. 1110271220658244971655161187
  4. 1110271220658244971655161187 Modulo 97 = 1

BE43068999999501

  1. BE43068999999501
  2. 068999999501BE43
  3. 068999999501111443
  4. 068999999501111443 Modulo 97 = 1

Les comptes français uniquement constitués de chiffres ont tous la même clef IBAN égale à 76. Cela est dû à la clef du RIB français qui est elle-même un modulo 97. La correspondance numérique des lettres étant différente entre le calcul de la clef RIB et le calcul de la clef IBAN, cela n'est pas vrai pour les comptes français qui comportent au moins une lettre.

Algorithmes de vérification[modifier | modifier le code]

en Python[modifier | modifier le code]

en Java[modifier | modifier le code]

vérification en C#[modifier | modifier le code]

en VB NET[modifier | modifier le code]

vérification en VBA ou VBE[modifier | modifier le code]

vérification en PHP[modifier | modifier le code]

en PHP (Simple)[modifier | modifier le code]

vérification en Bash[modifier | modifier le code]

en PHP avec REGEX[modifier | modifier le code]

Cela ne vérifie pas si l'IBAN est correct pour le pays (ex: FRANCE : longueur 27 caractères, ROYAUME-UNI : longueur 22 caractères…) Ne vérifie que le modulo 97 donne bien 1

en Javascript[modifier | modifier le code]

Cet algorithme n'applique qu'une vérification mathématique. La validité du code pays ou la longueur du code IBAN selon le pays n'est pas vérifiée. Quelques normalisations sont effectuées avant le traitement, pour accepter indifféremment les lettres majuscules et minuscules ainsi que les espaces.

en Awk[modifier | modifier le code]

Cet algorithme n'applique qu'une vérification mathématique. La validité du code pays ou la longueur du code IBAN selon le pays n'est pas vérifiée. Quelques normalisations sont effectuées avant le traitement, pour accepter indifféremment les lettres majuscules et minuscules ainsi que les espaces.

en Matlab[modifier | modifier le code]

Cet algorithme n'applique qu'une vérification mathématique (retourne true si la somme de contrôle est correcte). La validité du code pays ou la longueur du code IBAN selon le pays n'est pas vérifiée. Quelques normalisations sont effectuées avant le traitement, pour accepter indifféremment les lettres majuscules et minuscules ainsi que les espaces.

en WinDev[modifier | modifier le code]

Cet algorithme applique une vérification mathématique (retourne true si la somme de contrôle est correcte). La validité du code pays et la longueur du code IBAN selon le pays est vérifiée. Quelques normalisations sont effectuées avant le traitement, pour accepter indifféremment les lettres majuscules et minuscules ainsi que les espaces.

Une autre version, plus compacte. NB : il n'est pas nécessaire de vérifier la longueur spécifique au pays puisque, si elle n'est pas correcte, le modulo renverra de toutes façons 0 (zéro), ce qui suffit à invalider l'IBAN.

en Delphi7[modifier | modifier le code]

Cet algorithme applique une vérification mathématique (retourne true si la somme de contrôle est correcte). La validité du code pays et la longueur du code IBAN selon le pays n'est pas vérifiée. Il y a une vérification par expression régulière (http://regexpstudio.com/) avant le traitement mathématique, la méthode considère que la valeur passé en paramètre est un iban sans formatage.

en PL/SQL[modifier | modifier le code]

Cela ne vérifie pas si l'IBAN est correct pour le pays (ex: FRANCE : longueur 27 caractères, ROYAUME-UNI : longueur 22 caractères…) Ne vérifie que le modulo 97 donne bien 1

avec 4D[modifier | modifier le code]

Ce code vérifie que le modulo de l'IBAN passé en $1 vaut 1. Il ne doit y avoir que des chiffres et des lettres.

avec ABAL[modifier | modifier le code]

Ce code vérifie le modulo de l'IBAN passé en argument et retourne 0 si correct 1 si erreur de clé 30 si erreur de pays ou caractères invalides

avec MySQL[modifier | modifier le code]

Notes et références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

CFONB, « IBAN International Bank Account Number », CFONB - NORME EBS 2 0 4, CFONB,‎ 1996 (lire en ligne)