Tout code qui accepte, enregistre ou envoie des IBAN a besoin de données de test : validation de formulaires, parcours d'inscription, fixtures de base de données, intégrations de paiement, tests de charge. Les IBAN de vrais clients n'ont rien à faire dans un environnement de test, et les IBAN tapés à la main ont rarement des chiffres de contrôle corrects. Un IBAN de test, qu'on appelle parfois faux IBAN ou IBAN fictif, règle les deux problèmes : il passe la validation structurelle et aucune banque ne l'a jamais émis.
Ce que vérifie un validateur
La validation d'un IBAN se fait par couches. Chaque couche détecte des problèmes différents, et un IBAN de test n'en franchit que certaines.
| Contrôle | Ce qu'il vérifie | Un IBAN de test généré |
|---|---|---|
| Caractères | Uniquement des lettres et des chiffres, une fois les espaces supprimés | Passe |
| Pays | Les deux premières lettres désignent un pays qui utilise l'IBAN | Passe |
| Longueur | La longueur correspond à ce pays, par exemple 22 pour l'Allemagne | Passe |
| Schéma | Chaque position du BBAN contient le bon type de caractère (chiffre ou lettre) | Passe |
| Chiffres de contrôle | Le reste MOD-97 vaut 1 | Passe |
| Clés de contrôle nationales | Règles nationales à l'intérieur du BBAN, comme le CIN italien ou la clé RIB française | Passe dans les 27 pays dont nous calculons l'algorithme officiel ; ailleurs, clé aléatoire qui peut échouer |
| Annuaire bancaire | Le code banque existe | Passe pour les 84 pays dotés de vrais codes banque en mode réaliste, actif par défaut ; échoue en général dans les autres cas |
| Recherche du compte | Le compte existe et le nom correspond | Échoue |
Les deux derniers contrôles nécessitent des données fournies par les banques. Au Royaume-Uni, le service Confirmation of Payee compare le nom du titulaire du compte avec celui que le payeur a saisi ; dans la zone euro, la vérification du bénéficiaire fait de même avant un virement. Un IBAN aléatoire ne peut pas passer ces contrôles, et c'est normal. L'article Les clés de contrôle nationales de l'IBAN explique le niveau national pays par pays.
Les cinq premiers contrôles, ainsi que les clés nationales quand la règle est connue, ne nécessitent aucune donnée externe. Notre validateur d'IBAN les effectue dans votre navigateur et indique lequel échoue. Notre bibliothèque JavaScript open source iban-check effectue les cinq premiers selon le registre IBAN de SWIFT et renvoie un code d'erreur qui indique lequel a échoué. L'Algérie et le Maroc ne figurent pas dans le registre : elle rejette donc leurs IBAN. Elle est disponible sur npm sous le nom iban-check.
Les erreurs qui cassent le traitement des IBAN
Voici les bugs que l'on retrouve sans cesse dans le code qui gère des IBAN :
- Une seule longueur pour tous les pays. Les IBAN allemands comptent 22 caractères, mais les norvégiens 15 et les maltais 31. Validez la longueur pays par pays, pas avec un nombre fixe.
- Uniquement des chiffres après le code pays. Les IBAN néerlandais, britanniques et bien d'autres contiennent des lettres dans le BBAN (
NL91ABNA0417164300). Une regex qui n'accepte que des chiffres les rejette. - Enregistrer le format papier. Enregistrez les IBAN au format électronique, sans espaces et en majuscules, et n'ajoutez les espaces qu'à l'affichage.
- Traiter l'IBAN comme un nombre. Il contient des lettres et son BBAN peut commencer par des zéros. Stockez-le comme une chaîne de caractères.
- Dépassement d'entier dans le calcul MOD-97. Sauf pour la Norvège et la Belgique, le nombre converti dépasse ce que peut contenir un entier 64 bits (environ 19 chiffres) ; celui d'un IBAN allemand en compte 24. Utilisez une arithmétique en précision arbitraire, ou le calcul du reste par étapes présenté dans Comment fonctionnent les chiffres de contrôle de l'IBAN.
- Caractères invisibles issus du copier-coller. Les utilisateurs collent des IBAN avec des espaces insécables, des tabulations ou des retours à la ligne. Supprimez tous les blancs, pas seulement l'espace ordinaire.
- Saisie en minuscules. Les gens tapent
de89.... Convertissez en majuscules avant de valider.
Quel IBAN de test utiliser
Les IBAN de test aléatoires conviennent à la plupart des tests : validation de formulaires, fixtures, données d'amorçage, tests de charge et captures d'écran. Utilisez plusieurs pays, pas seulement le vôtre, pour mettre à l'épreuve la gestion des longueurs et des schémas ; les formats longs comme celui de Malte (31) et les formats courts comme celui de la Norvège (15) font de bons cas limites. Par défaut, le générateur est en mode réaliste : uniquement des chiffres et, quand il est disponible, le code banque d'une vraie banque, avec un numéro de compte aléatoire ; un code qui recherche la banque la trouve donc. Un tel IBAN n'a pas non plus été émis par une banque, mais il pourrait correspondre par hasard à un compte réel. Désactivez Réaliste pour des IBAN entièrement aléatoires : le code banque est alors aléatoire lui aussi, ce qui permet de tester une banque inconnue, et des lettres peuvent apparaître là où le format les autorise.
Les prestataires de paiement publient souvent leurs propres IBAN de test, qui déclenchent des résultats précis dans leur sandbox, comme un prélèvement réussi ou un prélèvement refusé. Quand vous testez de bout en bout le parcours d'un prestataire, utilisez les IBAN de sa documentation.
N'utilisez jamais l'IBAN d'une personne réelle dans des tests, des démos ou de la documentation, et n'envoyez jamais d'argent vers un IBAN généré. La probabilité qu'un IBAN aléatoire corresponde à un vrai compte est très faible, mais elle n'est pas nulle.
Des IBAN de test dans votre pipeline
Le générateur affiche un IBAN avec l'explication de chaque segment. Son option « Générer une liste » produit d'un coup de 5 à 100 IBAN d'un même pays, à copier ou à télécharger en CSV, JSON, SQL ou texte brut, avec une colonne par segment. Pour les tests automatisés :
- L'API REST renvoie jusqu'à 100 IBAN valides par requête pour n'importe quel pays pris en charge, et valide aussi des IBAN. Elle nécessite une clé API ; voir la documentation de l'API.
- Le serveur MCP public permet aux agents IA et aux assistants de code de générer et de valider des IBAN de test sans clé.
- Le téléchargement derrière « Générer une liste » est une simple URL sans clé : un script peut donc récupérer directement un fichier de fixtures (30 téléchargements par minute).
- Pour les tests qui doivent tourner hors ligne, générez une fois pour toutes un jeu d'IBAN et versionnez-le sous forme de fixtures.
# 50 IBAN néerlandais en CSV, sans clé
curl -o fixtures.csv "https://generaterandomiban.com/export/nl?format=csv&count=50"
# 5 IBAN depuis l'API, avec une clé
curl -H "X-API-Key: YOUR_KEY" \
"https://generaterandomiban.com/api/v1/generate/NL?count=5"
Sources
- Registre IBAN de SWIFT : la longueur et la structure du BBAN de chaque pays.
- ISO 13616-1:2020 : la structure de l'IBAN.
- ISO/IEC 7064 : la méthode de calcul des chiffres de contrôle MOD 97-10.
- Règlement (UE) 2024/886 : la vérification du bénéficiaire pour les virements en euros.