Tout IBAN porte deux chiffres de contrôle juste après le code pays, calculés avec MOD-97. Beaucoup de pays ajoutent leurs propres chiffres de contrôle à l'intérieur du BBAN, le numéro de compte national. La plupart sont plus anciens que l'IBAN : les banques s'en servaient pour repérer les fautes de frappe dans les numéros de compte nationaux avant que l'IBAN n'existe, et l'IBAN les a conservés en reprenant ces numéros.
Deux niveaux de contrôle
Prenons l'IBAN français d'exemple FR14 2004 1010 0505 0001 3M02 606. Le 14 qui suit FR correspond aux chiffres de contrôle de l'IBAN. Les deux derniers chiffres, 06, forment la clé RIB, le contrôle national français. Ils ne protègent pas la même chose :
| Chiffres de contrôle de l'IBAN | Clé de contrôle nationale | |
|---|---|---|
| Emplacement | Positions 3 et 4, dans tout IBAN | Dans le BBAN, à un endroit fixé par chaque pays |
| Méthode | MOD 97-10 (ISO/IEC 7064), la même partout | Une règle nationale, différente d'un pays à l'autre |
| Ce qui est contrôlé | Tout l'IBAN, code pays compris | En général le code banque, le code guichet et le numéro de compte |
| Qui fixe la règle | La norme ISO 13616 | La banque centrale ou l'association bancaire du pays |
Les deux niveaux sont indépendants. Un IBAN peut avoir des chiffres de contrôle MOD-97 corrects et échouer quand même au contrôle national, par exemple quand quelqu'un a placé dans un IBAN un numéro national mal saisi, puis calculé les chiffres de contrôle de l'IBAN. L'inverse arrive aussi : changez un chiffre d'un IBAN valide et le contrôle MOD-97 échoue, même si le contrôle national passe encore.
Les principales méthodes
Les contrôles nationaux ont l'air très différents, mais la plupart appartiennent à quelques grandes familles.
Les terminaisons MOD 97
Plusieurs pays terminent le BBAN par deux chiffres calculés avec MOD 97-10, la même méthode que pour les chiffres de contrôle de l'IBAN, appliquée aux chiffres qui les précèdent. C'est le cas du Portugal (les chiffres de contrôle du NIB), de la Slovénie, de la Serbie, du Monténégro, de la Macédoine du Nord, de la Bosnie-Herzégovine, du Kosovo et du Timor oriental.
Les clés RIB
La clé RIB française vaut 97 moins le reste de la division par 97 de 89 × code banque + 15 × code guichet + 3 × numéro de compte. Les lettres du numéro de compte sont d'abord converties en chiffres (A et J valent 1, B, K et S valent 2, et ainsi de suite). La clé rend le numéro national entier divisible par 97. La France et Monaco la partagent, et la Tunisie et la Mauritanie utilisent des clés RIB qui visent le même but : un numéro de compte entier divisible par 97.
Le CIN italien
L'Italie et Saint-Marin placent une lettre de contrôle, le CIN, au début du BBAN. Elle couvre les 22 caractères qui la suivent : le code banque ABI, le code guichet CAB et le numéro de compte. Les caractères en position impaire sont convertis à l'aide d'un tableau, ceux en position paire gardent leur valeur simple (un chiffre vaut lui-même, les lettres vont de A = 0 à Z = 25). La somme divisée par 26 laisse un reste de 0 à 25, qui devient une lettre de A à Z.
Les chiffres de contrôle espagnols
Un code de compte espagnol (CCC, Código Cuenta Cliente) contient deux chiffres de contrôle entre le code guichet et le numéro de compte. Le premier contrôle le code banque et le code guichet, le second le numéro de compte à 10 chiffres. Chacun part d'une somme pondérée, avec les poids 1, 2, 4, 8, 5, 10, 9, 7, 3, 6 : on divise cette somme par 11 et on soustrait le reste de 11. Un résultat de 11 devient 0, et un résultat de 10 devient 1. Voir le format espagnol.
Les sommes pondérées
Beaucoup de pays multiplient chaque chiffre par un poids, additionnent les produits et gardent le reste :
- Belgique : les deux derniers chiffres sont les dix premiers chiffres modulo 97 (97 à la place de 0).
- Norvège : MOD 11 avec les poids 5, 4, 3, 2, 7, 6, 5, 4, 3, 2. Les numéros de compte qui demanderaient la valeur 10 ne sont jamais attribués.
- Finlande : l'algorithme de Luhn, celui des numéros de carte bancaire.
- Estonie : la méthode 7-3-1, avec les poids 7, 3, 1 répétés en partant de la droite.
- Hongrie : deux chiffres avec les poids 9, 7, 3, 1, l'un pour le code banque et le code guichet, l'autre pour le numéro de compte.
- Pologne : un chiffre à la fin du code d'établissement à 8 chiffres, poids 3, 9, 7, 1.
- Albanie : un chiffre après le code banque et le code guichet, poids 9, 7, 3, 1.
- République tchèque et Slovaquie : le préfixe de compte et le numéro de compte doivent chacun donner une somme pondérée divisible par 11.
- Croatie : ISO 7064 MOD 11,10, une fois pour le code banque et une fois pour le numéro de compte.
- Costa Rica : le dernier chiffre du numéro de compte client, poids de 1 à 9 puis de 1 à 7, modulo 11.
- Russie : la clé de contrôle de la Banque de Russie, poids 7, 1, 3 sur la fin du code banque BIK et sur le numéro de compte.
Pays par pays
Le tableau liste tous les pays dont ce site calcule la clé nationale, avec la position de ses chiffres dans l'IBAN. Suivez le lien d'un pays pour ouvrir son générateur et son format complet.
| Pays | Positions | Méthode | Chiffres de contrôle IBAN | Source |
|---|---|---|---|---|
| Albanie | 12 | Poids 9, 7, 3, 1 (mod 10) | Variables selon le compte | Bank of Albania, Decision No. 26 of 4.5.2022 |
| Belgique | 15–16 | 10 premiers chiffres mod 97 | Variables selon le compte | Febelfin / National Bank of Belgium |
| Bosnie-Herzégovine | 19–20 | MOD 97-10 |
BA39
|
Centralna banka Bosne i Hercegovine |
| Costa Rica | 22 | Poids de 1 à 9 (mod 11) | Variables selon le compte | Banco Central de Costa Rica, Cuenta Cliente |
| Croatie | 11, 21 | ISO 7064 MOD 11,10 | Variables selon le compte | Hrvatska narodna banka, Narodne novine 13/2025 |
| Espagne | 13–14 | Chiffres de contrôle DC (mod 11) | Variables selon le compte | Consejo Superior Bancario, Código Cuenta Cliente (AEB/CECA) |
| Estonie | 20 | 7-3-1 (mod 10) | Variables selon le compte | Estonian Banking Association (Pangaliit) |
| Finlande | 18 | Luhn (mod 10) | Variables selon le compte | Finance Finland (Finanssiala) |
| France | 26–27 | Clé RIB (mod 97) | FR76 si le numéro de compte ne contient que des chiffres | CFONB, RIB standard (Banque de France) |
| Hongrie | 12, 28 | Poids 9, 7, 3, 1 (mod 10) | Variables selon le compte | Magyar Nemzeti Bank, 35/2017. (XII. 14.) MNB rendelet |
| Italie | 5 | Lettre de contrôle CIN (mod 26) | Variables selon le compte | ABI, coordinate bancarie (Banca d'Italia) |
| Kosovo | 19–20 | MOD 97-10 |
XK05
|
Central Bank of the Republic of Kosovo (BQK) |
| Macédoine du Nord | 18–19 | MOD 97-10 |
MK07
|
National Bank of the Republic of North Macedonia |
| Mauritanie | 26–27 | Clé RIB (mod 97) |
MR13
|
Banque Centrale de Mauritanie, Instruction 16/GR/2008 |
| Monaco | 26–27 | Clé RIB (mod 97) | MC58 si le numéro de compte ne contient que des chiffres | CFONB, RIB standard (Banque de France) |
| Monténégro | 21–22 | MOD 97-10 |
ME25
|
Centralna banka Crne Gore |
| Norvège | 15 | MOD 11 | Variables selon le compte | Bits AS / Finans Norge |
| Pologne | 12 | Poids 3, 9, 7, 1 (mod 10) | Variables selon le compte | Narodowy Bank Polski |
| Portugal | 24–25 | MOD 97-10 |
PT50
|
Banco de Portugal, NIB |
| République tchèque | 14, 24 | MOD 11 pondéré | Variables selon le compte | Česká národní banka, vyhláška č. 169/2011 Sb. |
| Russie | 22 | Clé de contrôle, poids 7, 1, 3 | Variables selon le compte | Bank of Russia, Procedure No. 515 of 8.9.1997 |
| Saint-Marin | 5 | Lettre de contrôle CIN (mod 26) | Variables selon le compte | Banca Centrale della Repubblica di San Marino (ABI standard) |
| Serbie | 21–22 | MOD 97-10 |
RS35
|
Narodna banka Srbije |
| Slovaquie | 14, 24 | MOD 11 pondéré | Variables selon le compte | Národná banka Slovenska, opatrenie č. 8/2009 |
| Slovénie | 18–19 | MOD 97-10 |
SI56
|
Banka Slovenije, Uradni list RS 85/2016 |
| Timor oriental | 22–23 | MOD 97-10 |
TL38
|
Banco Central de Timor-Leste |
| Tunisie | 23–24 | Clé RIB (mod 97) |
TN59
|
Banque Centrale de Tunisie |
Pour quelques autres pays, comme le Burundi, Djibouti et Sao Tomé-et-Principe, les exemples du registre laissent penser qu'il existe aussi un contrôle national, mais nous n'en avons pas trouvé de description officielle. Le générateur laisse ces chiffres aléatoires.
Des chiffres de contrôle IBAN fixes
Avec une terminaison MOD 97 ou une clé RIB, le BBAN laisse toujours le même reste quand on le divise par 97, quel que soit le compte. Comme les chiffres de contrôle de l'IBAN ne dépendent que de ce reste et du code pays, tous les IBAN valides de ces pays ont les mêmes chiffres de contrôle : tous les IBAN portugais commencent par PT50, tous les IBAN serbes par RS35 et tous les IBAN tunisiens par TN59. Les IBAN français dont le numéro de compte ne contient que des chiffres commencent tous par FR76. Des lettres dans un numéro de compte français changent le résultat : c'est pourquoi l'exemple du registre cité plus haut commence par FR14.
C'est une vérification rapide et pratique quand vous lisez des IBAN de ces pays : d'autres chiffres de contrôle signifient que l'IBAN est faux.
Un validateur doit-il les vérifier ?
Le contrôle MOD-97 détecte déjà toute erreur sur un seul chiffre et toute inversion de deux chiffres voisins : les clés nationales apportent donc peu contre les fautes de frappe. Elles servent dans d'autres cas : un IBAN construit à la main à partir d'un numéro national erroné, ou un IBAN inventé dont l'auteur n'a calculé que les chiffres MOD-97.
Avant de les ajouter à votre propre validateur :
- Chaque pays demande son propre algorithme, et chacun doit suivre exactement la règle officielle. Une implémentation erronée rejette les IBAN de vrais clients, ce qui est pire que de ne rien vérifier.
- Testez chaque algorithme avec des exemples au format réel, comme l'exemple du registre affiché sur chaque page pays.
- Gardez un message d'erreur précis. « La clé de contrôle nationale ne correspond pas » aide davantage un utilisateur que « IBAN invalide ».
Notre validateur d'IBAN vérifie les clés nationales partout où la règle est connue, et le signale quand elle ne l'est pas. La bibliothèque open source iban-check couvre les contrôles de structure et le MOD-97.
Tester avec les clés nationales
Le générateur calcule la clé nationale de chaque pays du tableau ci-dessus, dans les deux modes, réaliste et entièrement aléatoire : les validateurs qui la vérifient acceptent donc les IBAN générés. Pour un test négatif, modifiez l'un des chiffres de la clé nationale et recalculez les chiffres de contrôle de l'IBAN : l'IBAN passe alors le contrôle MOD-97 mais échoue au contrôle national. Le validateur propose les bons chiffres de contrôle IBAN quand ils sont faux. L'article IBAN de test pour les développeurs et la QA présente les autres niveaux de contrôle d'un validateur.
Sources
- Registre IBAN de SWIFT, version 102 (juin 2026) : la structure du BBAN de chaque pays et les exemples utilisés plus haut.
- ISO/IEC 7064 : les systèmes de caractères de contrôle MOD 97-10 et MOD 11,10.
- Banque nationale tchèque, IBAN : le décret 169/2011 sur le numéro de compte tchèque et son contrôle.
- 35/2017. (XII. 14.) MNB rendelet, annexe 1 : le numéro de compte hongrois et ses chiffres de contrôle.
- Les sources nationales citées dans le tableau : banques centrales, associations bancaires et normes qu'elles publient.