Définition
L'IBAN (International Bank Account Number) est l'identifiant unique et international d'un compte bancaire, défini par la norme ISO 13616.
Sa longueur varie selon les pays (de 15 à 34 caractères), mais son rôle est partout le même : permettre à n'importe quelle banque d'acheminer un paiement vers le bon compte sans ambiguïté.
Anatomie d'un IBAN français
Un IBAN français fait 27 caractères. Exemple : FR76 3000 6000 0112 3456 7890 189
FR— code pays (2 lettres, ISO 3166).76— clé de contrôle internationale (2 chiffres, algorithme MOD 97-10).30006— code banque (5 chiffres).00001— code guichet (5 chiffres).12345678901— numéro de compte (11 caractères).89— clé RIB nationale (2 chiffres).
Les 23 derniers caractères constituent l'ancien RIB français : l'IBAN, c'est le RIB préfixé du code pays et de la clé de contrôle internationale.
Longueurs d'IBAN par pays
Quelques repères :
- Allemagne : 22 caractères (
DE89 3704 0044 0532 0130 00). - France, Espagne, Italie : 27 caractères.
- Belgique : 16 caractères.
- Suisse : 21 caractères.
- Malte : 31 caractères (le plus long en zone SEPA).
D'où l'erreur d'intégration la plus fréquente : prévoir un champ de 27 caractères en croyant que c'est universel. Il faut prévoir 34 caractères au maximum.
Validation : MOD 97-10
L'algorithme est simple :
- Déplacer les 4 premiers caractères à la fin de la chaîne.
- Remplacer chaque lettre par sa position dans l'alphabet + 9 (A=10, B=11, … Z=35).
- Calculer le résultat modulo 97.
- Si le résultat vaut 1, l'IBAN est structurellement valide.
Attention : structurellement valide ne veut pas dire compte existant. C'est la VoP qui vérifie en plus que le nom correspond au titulaire et que le compte est actif.
IBAN vs BIC
- IBAN — identifie le compte (et indirectement la banque via les codes pays et banque).
- BIC — identifie la banque (son code SWIFT).
Depuis 2016, le BIC n'est plus obligatoire en SEPA : l'IBAN seul suffit, la banque destinataire pouvant en être déduite. Le BIC reste utile pour les virements hors SEPA ou comme champ de cohérence dans certaines API.
Ce que l'IBAN ne fait pas
- Ne révèle pas le nom du titulaire : c'est le rôle de la VoP.
- Ne garantit pas que le compte est actif : un IBAN valide peut correspondre à un compte fermé.
- N'est pas confidentiel au sens strict : il transite dans tout virement, mais reste sensible (risque de prélèvements frauduleux si le mandat n'est pas vérifié).
- N'est pas un RIB : le RIB est le format national français qui réunit IBAN, BIC, titulaire et adresse sous forme imprimable.
Dans l'écosystème PSD2
L'IBAN est l'identifiant clé de toutes les API DSP2 : debtorAccount du PAO, creditorAccount du PR dans STET et Berlin Group, obligatoire dans toute requête de virement.
Exemples concrets
- Champ de formulaire :
maxlength=34, suppression des espaces et passage en majuscules côté front, validation MOD 97-10 côté serveur avant l'appel API. L'erreur classique : ne valider que la longueur. - Affichage : grouper par blocs de 4 caractères séparés par des espaces — standard ISO et bien plus lisible.
- Bibliothèques :
iban(npm),python-stdnum,iban4j(Java) gèrent validation et formatage — ne jamais réimplémenter MOD 97-10 à la main. - Wise, Revolut, N26 : leurs IBAN clients sont souvent belges ou lituaniens (agrément local). Parfaitement valides en SEPA pour un client français, même si certains employeurs les refusent encore — une pratique illégale au sens du règlement SEPA.
- IBAN virtuels : Treezor, Swan ou Stripe Treasury génèrent des IBAN virtuels rattachés à un compte parent, pour tracer par client ou par usage — très utilisé pour la collecte.
- Sécurité : ne jamais logger un IBAN en clair ; à traiter comme une donnée sensible.