Passer au contenu

Générateur et Validateur IBAN - Données Bancaires de Test

Générez des IBAN de test valides ou validez des IBAN existants instantanément. Prend en charge 10 pays européens avec validation MOD 97. Parfait pour les tests et le développement de logiciels financiers.

Générateur et Validateur IBAN

Calculateur de chargement...
📚

Documentation

Générateur et Validateur de Code IBAN

Ce que fait cet outil

Tester des logiciels financiers sans données de compte bancaire réel ? Vous aurez besoin de formats IBAN valides qui passent les vérifications de validation. Cet outil génère des IBAN aléatoires qui suivent les formats spécifiques à chaque pays et valide les existants en utilisant la norme ISO 13616.

Voici le problème pratique qu'il résout : lors de la création de systèmes de paiement ou d'applications bancaires, vous avez besoin de données de test qui ne failliront pas à la validation mais ne risquent pas d'exposer de vrais numéros de compte. Une erreur courante des développeurs est de créer des IBAN "fictifs" qui ne passent pas l'algorithme de vérification MOD 97, provoquant l'échec des tests pour de mauvaises raisons.

L'outil gère deux tâches principales :

  • Générateur : Crée des IBAN structurellement valides pour tous les pays pris en charge. Chaque numéro généré passe les mêmes vérifications de validation que votre système de production.
  • Validateur : Vérifie la structure IBAN, les chiffres de contrôle et le formatage spécifique au pays. Utile pour déboguer pourquoi un IBAN est rejeté.

Les IBAN (numéros de compte bancaire internationaux) standardisent la façon dont les banques identifient les comptes à travers les frontières. Chacun contient un code pays, deux chiffres de contrôle calculés via MOD 97, et un numéro de compte bancaire de base (BBAN) qui varie selon le pays. Ce qui le rend complexe, c'est que l'Allemagne utilise 22 caractères tandis que la France en nécessite 27, et la structure interne diffère complètement.

Comment fonctionnent les IBAN

Structure et format des IBAN

Les IBAN peuvent comporter jusqu'à 34 caractères alphanumériques, bien que la plupart des pays européens utilisent 22-27. Chaque IBAN se décompose en trois parties :

  1. Code pays : Deux lettres provenant de la norme ISO 3166-1 alpha-2 (DE pour l'Allemagne, GB pour le Royaume-Uni)
  2. Chiffres de contrôle : Deux chiffres calculés qui valident l'ensemble de l'IBAN en utilisant MOD 97
  3. Numéro de compte bancaire de base (BBAN) : La partie spécifique au pays contenant :
    • Identifiant bancaire (parfois appelé numéro de routage ou code bancaire)
    • Identifiant de succursale (au Royaume-Uni, appelé code de tri)
    • Numéro de compte
    • Parfois des chiffres de contrôle nationaux supplémentaires

Prenons un IBAN allemand comme exemple. Le modèle DE2!n8!n10!n signifie :

  • DE = code pays
  • 2!n = deux chiffres de contrôle numériques
  • 8!n = code bancaire de huit chiffres (Bankleitzahl)
  • 10!n = numéro de compte de dix chiffres (Kontonummer)

Ce qui surprend les gens, c'est à quel point ces formats varient entre les pays :

PaysLongueurStructureExemple
Allemagne (DE)22DE2!n8!n10!nDE89370400440532013000
Royaume-Uni (GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
France (FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
Espagne (ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
Italie (IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456

Algorithme de validation des IBAN

La validation des IBAN repose sur l'algorithme MOD 97 défini dans ISO 7064. Voici ce qui se passe réellement lors de la validation d'un IBAN :

  1. Déplacer les quatre premiers caractères (code pays et chiffres de contrôle) à la fin
  2. Remplacer chaque lettre par des nombres : A=10, B=11, jusqu'à Z=35
  3. Calculer le modulo 97 de la chaîne de nombres obtenue
  4. Les IBAN valides produisent toujours un reste exactement égal à 1

Mathématiquement : Numeˊro IBANmod97=1\text{Numéro IBAN} \bmod 97 = 1

Pourquoi MOD 97 spécifiquement ? Il détecte presque toutes les erreurs courantes : erreurs de chiffre unique, chiffres inversés, même la plupart des erreurs de saisie impliquant des caractères ressemblants. En pratique, j'ai constaté qu'il détecte environ 99,9 % des erreurs de saisie accidentelles, ce qui explique pourquoi il est devenu la norme internationale.

Une particularité à connaître : lors de la génération des IBAN, on calcule les chiffres de contrôle en commençant par "00", en exécutant l'algorithme, puis en utilisant 98 moins le reste. Cela garantit que l'IBAN final sera validé correctement.

Fonctionnalités de l'Outil

Générateur IBAN

Générez des IBANs de test qui passent la validation sans utiliser de vrais numéros de compte :

  • Sélection du Pays : Prend en charge 10 pays européens majeurs (Allemagne, Royaume-Uni, France, Espagne, Italie, Pays-Bas, Suisse, Autriche, Belgique, Pologne)
  • Conformité de Format : Chaque IBAN généré correspond à la structure officielle du pays et passe la validation MOD 97
  • Génération en Un Clic : Aucune configuration nécessaire — sélectionnez simplement un pays et générez
  • Copier dans le Presse-papiers : Un seul clic copie l'IBAN complet pour le coller dans vos tests
  • Décomposition Visuelle : Affichage avec code couleur montrant le code pays, les chiffres de contrôle et les détails bancaires séparément

Le processus de génération :

  1. Sélectionne le modèle de format spécifique au pays
  2. Remplit des chiffres/lettres aléatoires dans la partie BBAN
  3. Calcule les chiffres de contrôle en utilisant MOD 97
  4. Assemble et valide l'IBAN complet

Conseil pro : Lors de l'alimentation de bases de données de test, générez des IBANs de plusieurs pays pour tester les scénarios transfrontaliers. Les systèmes de paiement réels ont souvent des cas limites spécifiques à certains pays.

Validateur IBAN

Vérifiez la structure IBAN et détectez les problèmes de formatage avant la production :

  • Vérification de Format : Vérifie les exigences de longueur et de structure spécifiques à chaque pays
  • Validation MOD 97 : Exécute l'algorithme complet de vérification des chiffres
  • Décomposition des Composants : Montre exactement comment l'IBAN se divise en code pays, chiffres de contrôle, code bancaire et numéro de compte
  • Messages d'Erreur Spécifiques : Au lieu de messages génériques "invalide", vous verrez précisément ce qui ne va pas
  • Formatage Automatique : Gère les IBANs avec ou sans espaces — le formatage se fait automatiquement

Les vérifications de validation se déroulent dans l'ordre :

  1. Reconnaissance du code pays (est-il pris en charge ?)
  2. Vérification de la longueur (nombre de caractères correct pour ce pays ?)
  3. Validation du type de caractère (nombres où attendus, lettres où autorisées)
  4. Calcul du chiffre de contrôle MOD 97 (les calculs sont-ils corrects ?)

Scénario courant : Votre API reçoit un IBAN saisi par un utilisateur avec un espacement incohérent. Utilisez le validateur pour le normaliser avant traitement — il supprime automatiquement les espaces et vous montre le format approprié.

Guide Étape par Étape

Génération d'un IBAN

  1. Accéder à l'Onglet Générateur : Cliquez sur l'onglet "Générateur" (sélectionné par défaut)
  2. Sélectionner un Pays : Choisissez le pays souhaité dans le menu déroulant
  3. Générer l'IBAN : Cliquez sur le bouton "Générer IBAN"
  4. Afficher le Résultat : L'IBAN généré apparaîtra ci-dessous avec une répartition visuelle de ses composants
  5. Copier dans le Presse-papiers : Cliquez sur le bouton "Copier dans le presse-papiers" pour copier l'IBAN en vue de son utilisation ailleurs

Validation d'un IBAN

  1. Accéder à l'Onglet Validateur : Cliquez sur l'onglet "Validateur"
  2. Saisir un IBAN : Tapez ou collez un IBAN dans le champ de saisie
    • Les espaces et la mise en forme seront automatiquement gérés
    • L'outil accepte les IBAN formatés (avec des espaces) et non formatés
  3. Afficher les Résultats de Validation : L'outil validera automatiquement l'IBAN lors de la saisie
  4. Vérifier les Détails : Pour les IBAN valides, une répartition des composants sera affichée
  5. Examiner les Erreurs : Pour les IBAN invalides, des messages d'erreur spécifiques aideront à identifier le problème

Cas d'utilisation et applications réelles

Développement et test de logiciels

Test d'API : Lors de la création de tests d'intégration de paiement, vous avez besoin d'IBAN qui passent la validation sans déclencher de transactions réelles. Générez un lot d'IBAN de test pour votre suite de tests automatisés, en vous assurant que la gestion des erreurs fonctionne correctement pour différents formats de pays.

Validation de formulaire : Testez un flux de paiement ? Utilisez le validateur pour vérifier que votre validation frontend correspond aux exigences backend. Un problème fréquent est d'accepter un format IBAN que votre processeur de paiement rejettera plus tard—détecter cela pendant le développement évite la frustration des clients.

Test de cas limites : La plupart des développeurs testent avec un ou deux formats de pays. Que se passe-t-il lorsqu'un client suisse avec un IBAN de 21 caractères utilise votre système conçu autour des IBAN allemands de 22 caractères ? Générez différents formats de pays pour tester la résilience de vos longueurs de champ et de votre logique de validation.

Test de régression : Après avoir mis à jour votre bibliothèque de validation IBAN, exécutez des IBAN de test générés à travers les anciennes et nouvelles versions. Toute divergence indique des changements cassants qui pourraient affecter la production.

Développement d'applications financières

Systèmes de paiement : Lors de la création de fonctionnalités de virement international, vous rencontrerez des scénarios où la structure de l'IBAN détermine le comportement de routage. Les IBAN des Pays-Bas (qui incluent des lettres dans le BBAN) révèlent des bugs que les IBAN allemands entièrement numériques ne détecteront pas.

Logiciel bancaire : L'analyse des IBAN pour extraire les codes bancaires et les identificateurs de succursale nécessite une logique spécifique au pays. Générez des IBAN pour chaque pays pris en charge pour vérifier que votre algorithme d'analyse identifie correctement ces composants.

Vérification de conformité : Les réglementations financières exigent souvent de valider les IBAN avant traitement. Utilisez cet outil pour créer des cas de test prouvant que votre système rejette les chiffres de contrôle invalides et les formats incorrects—essentiel pour les pistes d'audit.

Éducation et documentation

Éducation aux normes bancaires : Les étudiants apprenant les systèmes de paiement internationaux bénéficient de la visualisation des structures IBAN réelles. Générez des exemples de plusieurs pays pour illustrer comment la standardisation fonctionne dans différents systèmes bancaires.

Documentation d'API : Au lieu d'utiliser des IBAN potentiellement réels dans vos documents techniques, générez des exemples clairs. Une documentation avec des phrases comme "Utilisez IBAN DE89370400440532013000 pour les tests" indique immédiatement aux développeurs qu'il s'agit de valeurs de test sûres.

Opérations de données

Peuplement de base de données : Les environnements de développement et de staging ont besoin de données de test réalistes. Générez des IBAN diversifiés pour peupler votre base de données avec des profils clients internationaux représentatifs sans problèmes de confidentialité.

Anonymisation de données : Migration de la production vers le staging ? Remplacez les IBAN réels par des IBAN générés qui maintiennent la validité du format pour les tests tout en supprimant les informations sensibles. Essentiel pour la conformité RGPD dans les environnements de développement.

Alternatives et Quand les Utiliser

Différents outils conviennent à différents besoins. Voici une comparaison honnête :

API Bancaires Commerciales (par exemple, Stripe, Adyen)

Meilleures pour la validation en production par rapport aux registres bancaires réels. Ces services vérifient si un IBAN correspond à un compte actif réel, pas seulement si le format est correct.

Utiliser quand : Vous devez vérifier qu'un IBAN existe et peut recevoir des paiements, pas seulement qu'il est structurellement valide.

Limitations : Coûte de l'argent (tarification typiquement par appel d'API), nécessite un travail d'intégration, et vous avez toujours besoin d'IBANs de test pour le développement—c'est là que cet outil intervient.

Bibliothèques de Langages de Programmation (ibantools, iban.js, python-stdnum)

Meilleures pour la validation intégrée dans votre code d'application. Des bibliothèques comme ibantools pour JavaScript ou python-stdnum pour Python fournissent des fonctions de validation et de génération.

Utiliser quand : Vous avez besoin d'un accès programmatique dans le cadre de votre validation de build ou d'exécution.

Limitations : Nécessite un effort de développement pour l'intégration, et vous avez toujours besoin d'un moyen rapide de tester manuellement des IBANs spécifiques pendant le débogage. C'est là qu'un outil web est plus rapide que l'écriture de scripts de test.

Registre IBAN de SWIFT

Le registre IBAN officiel maintenu par SWIFT répertorie tous les formats de pays et les règles de validation. C'est la source faisant autorité.

Utiliser quand : Vous implémentez le support IBAN à partir de zéro et avez besoin des spécifications officielles.

Limitations : C'est de la documentation, pas un outil. Vous devriez toujours construire ou trouver quelque chose pour générer et valider réellement des IBANs sur la base de ces spécifications.

Validateurs Bancaires Officiels

De nombreuses banques nationales fournissent des validateurs spécifiques à un pays (par exemple, Bundesbank pour les IBANs allemands). Ceux-ci sont très précis pour leur pays spécifique.

Utiliser quand : Vous ne travaillez que dans un seul pays et avez besoin de détails de validation au niveau bancaire.

Limitations : Concentration sur un seul pays. Si vous construisez des systèmes de paiement internationaux, vous auriez besoin de validateurs pour chaque pays.

Quand Cet Outil Fait Sens

Utilisez cet outil quand vous avez besoin de tests rapides, sans configuration et sans intégration d'API. Il est particulièrement utile pendant le développement et le débogage lorsque vous devez générer immédiatement des données de test valides ou vérifier pourquoi un IBAN spécifique échoue à la validation. Il ne remplacera pas les bibliothèques de validation de niveau production dans votre base de code, mais il est plus rapide que l'écriture de scripts de test jetables.

Questions fréquemment posées

Qu'est-ce qu'un IBAN et pourquoi est-ce important ?

IBAN signifie International Bank Account Number—un format standardisé créé par l'Organisation internationale de normalisation (ISO) pour réduire les erreurs dans les paiements transfrontaliers. Avant les IBAN, chaque pays utilisait son propre format de numéro de compte, ce qui conduisait à des erreurs fréquentes et des transferts échoués. Les IBAN ajoutent des codes pays et des chiffres de contrôle pour détecter les erreurs avant le mouvement de l'argent.

Quelle est la précision des IBAN générés ?

Les IBAN générés sont mathématiquement corrects et passent l'algorithme de validation MOD 97 défini dans la norme ISO 13616. Ils suivent les structures spécifiques à chaque pays. Cependant, ils sont créés aléatoirement et ne correspondent pas à des comptes bancaires réels—c'est le but. Ils sont sûrs pour les tests précisément parce qu'ils ne toucheront pas accidentellement un compte réel.

Quels pays cet outil prend-il en charge ?

Actuellement 10 pays européens : Allemagne, Royaume-Uni, France, Espagne, Italie, Pays-Bas, Suisse, Autriche, Belgique et Pologne. Ils couvrent les formats IBAN les plus courants que vous rencontrerez dans les systèmes de paiement européens. Besoin d'un autre pays ? Le formulaire de commentaires est le meilleur moyen de demander des ajouts.

Puis-je utiliser des IBAN générés pour des transferts d'argent réels ?

Absolument pas. Ce sont des IBAN de test uniquement. Ils passent la validation de format mais ne sont pas connectés à des comptes bancaires réels. Les utiliser pour des transactions réelles entraînera des échecs ou des rejets de paiement. Ils sont destinés uniquement au développement, aux tests et à des fins éducatives.

Comment fonctionne réellement la validation IBAN ?

Le validateur effectue quatre vérifications en séquence :

  1. Code pays : Est-ce un code à deux lettres reconnu ?
  2. Longueur : Correspond-elle à la longueur requise pour ce pays ? (Allemagne = 22, Royaume-Uni = 22, France = 27, etc.)
  3. Types de caractères : Les lettres et les chiffres sont-ils aux positions correctes selon le format du pays ?
  4. Vérification MOD 97 : La somme de contrôle mathématique est-elle égale à 1 selon la norme ISO 7064 ?

Si une vérification échoue, vous verrez un message d'erreur spécifique expliquant ce qui ne va pas.

Les espaces ont-ils de l'importance dans les IBAN ?

Pas pour la validation. Les IBAN sont généralement affichés avec des espaces (groupes de quatre) pour la lisibilité, mais les espaces sont cosmétiques. DE89 3704 0044 0532 0130 00 et DE89370400440532013000 sont identiques pour la validation. L'outil gère automatiquement les deux formats.

Mes données sont-elles envoyées à un serveur ou stockées quelque part ?

Non. Tout s'exécute dans votre navigateur en utilisant JavaScript. Aucune donnée IBAN ne quitte votre machine, ne touche un serveur ou n'est stockée nulle part. Vous pouvez le vérifier en ouvrant les outils de développement du navigateur et en regardant l'onglet réseau—vous ne verrez aucune requête lors de la génération ou de la validation des IBAN.

Que faire si je dois valider un IBAN d'un pays non répertorié ?

L'outil ne prend actuellement en charge que les 10 pays du menu déroulant. L'ajout de plus nécessite l'implémentation des règles de format spécifiques à chaque pays. Si vous avez besoin d'une validation pour des pays comme la Norvège, la Suède ou d'autres, faites-le-nous savoir via le formulaire de commentaires—nous priorisons les ajouts en fonction de la demande.

Pourquoi un IBAN correctement formaté échouerait-il à la validation ?

Raisons les plus courantes :

  • Chiffres de contrôle incorrects : Même un seul chiffre erroné fait échouer le test MOD 97
  • Fautes de frappe : Caractères inversés ou chiffres erronés n'importe où dans l'IBAN
  • Longueur incorrecte : Caractères manquants ou supplémentaires pour ce pays
  • Caractères non valides : Lettres là où seuls des chiffres sont autorisés, ou vice versa
  • Pays non pris en charge : Le code pays existe mais n'est pas dans notre liste de supports

Le message d'erreur vous indiquera spécifiquement ce qui ne va pas.

Comment puis-je signaler des bugs ou demander des fonctionnalités ?

Utilisez le formulaire de commentaires en bas de page. Les rapports de bugs spécifiques avec des exemples d'IBAN sont les plus utiles. Pour les demandes de fonctionnalités, expliquer votre cas d'utilisation aide à prioriser ce qui sera développé ensuite.

Quelle est la différence entre IBAN et les codes SWIFT/BIC ?

Les IBAN identifient des comptes bancaires spécifiques, tandis que les codes SWIFT/BIC identifient des banques ou des succursales bancaires. Pensez-y ainsi : le code SWIFT vous indique quelle banque, l'IBAN vous indique quel compte dans cette banque. Pour les transferts internationaux, vous avez souvent besoin des deux—le code SWIFT achemine vers la banque correcte, puis l'IBAN achemine vers le compte spécifique.

Puis-je valider un IBAN sans connaître le pays ?

Oui, car les deux premières lettres de chaque IBAN sont le code pays. Le validateur lit ces deux premiers caractères pour déterminer quel format de pays appliquer. C'est pourquoi la détection du pays se fait automatiquement lorsque vous collez un IBAN—pas besoin de sélectionner manuellement le pays.

Existe-t-il des formats IBAN pour des pays hors d'Europe ?

Oui, mais en moins grand nombre. Bien que l'IBAN ait pris naissance en Europe et y soit le plus adopté, des pays comme l'Arabie Saoudite, les EAU, le Brésil et d'autres l'ont adopté. Cet outil se concentre actuellement sur les formats européens car ils représentent la grande majorité des transactions transfrontalières. Le Registre IBAN de SWIFT maintient la liste complète.

Comment lire et décoder un IBAN

Vous êtes-vous déjà demandé ce que signifie un IBAN comme DE89370400440532013000 ? Voici comment décoder n'importe quel IBAN :

Étape 1 : Code du pays (2 premiers caractères)

  • DE = Allemagne
  • Indique les règles de format du pays

Étape 2 : Chiffres de contrôle (2 caractères suivants)

  • 89 = somme de contrôle calculée
  • Ces chiffres vérifient que l'IBAN entier est valide en utilisant MOD 97

Étape 3 : Code bancaire (varie selon le pays)

  • 37040044 dans les IBAN allemands = identifiant bancaire de 8 chiffres
  • Différents pays utilisent différentes longueurs (le Royaume-Uni utilise 4 caractères)

Étape 4 : Numéro de compte (caractères restants)

  • 0532013000 = le numéro de compte réel dans cette banque
  • La longueur et le format dépendent du pays

Les différents pays organisent différemment la partie BBAN. Les IBAN britanniques incluent un code de succursale de 6 chiffres entre le code bancaire et le numéro de compte. Les IBAN français combinent le code bancaire, le code de succursale et le numéro de compte avec une clé de contrôle. Comprendre ces différences est crucial lors de l'analyse des IBAN de manière programmatique.

Erreurs courantes de validation IBAN et comment les corriger

Lors de la mise en œuvre de la validation IBAN, vous rencontrerez fréquemment ces problèmes :

Erreur "Chiffres de contrôle invalides"

Cause : Le calcul MOD 97 ne donne pas 1. Soit les chiffres de contrôle sont incorrects, soit il y a une erreur ailleurs dans l'IBAN.

Correction : Relancez la validation après avoir corrigé les fautes de frappe. Un seul caractère erroné n'importe où dans l'IBAN provoque un échec des chiffres de contrôle. C'est intentionnel — cela permet de détecter les erreurs de saisie.

Erreur "Longueur incorrecte pour le pays"

Cause : L'IBAN a trop ou trop peu de caractères pour son code pays.

Correction : Vérifiez que le code pays correspond au pays prévu. Les IBAN allemands font toujours 22 caractères, les IBAN britanniques 22, les français 27. Des caractères manquants ou supplémentaires indiquent une troncature ou des données incorrectes.

Erreur "Caractères invalides"

Cause : Présence de caractères qui ne devraient pas apparaître à cet endroit — comme des lettres là où seuls des chiffres sont autorisés.

Correction : Vérifiez le format spécifique au pays. Par exemple, les IBAN allemands sont entièrement numériques après le code pays et les chiffres de contrôle, tandis que les IBAN britanniques incluent 4 lettres pour le code bancaire.

Erreur "Code pays non pris en charge"

Cause : Les deux premières lettres ne sont pas un code pays reconnu, ou ne sont pas prises en charge par votre validateur.

Correction : Vérifiez l'orthographe du code pays. Les erreurs courantes incluent l'utilisation de UK au lieu de GB, ou EN au lieu des codes pays. Cet outil prend en charge 10 pays européens ; les validateurs de production devraient prendre en charge tous les pays du registre SWIFT.

Format vs Existence de compte

Distinction importante : la validation confirme qu'un IBAN est structurellement correct, pas qu'il correspond à un compte bancaire réel. Un IBAN peut passer tous les contrôles de validation sans pour autant correspondre à un compte bancaire existant. Pour les systèmes de paiement en production, vous avez besoin de vérifications supplémentaires au-delà de la validation de format.

Mise en œuvre technique pour les développeurs

Si vous intégrez la prise en charge de l'IBAN dans votre application, voici des exemples de code éprouvés dans plusieurs langages. Ces implémentations gèrent les cas limites que vous rencontrerez en production :

Validation IBAN

1function validateIban(iban) {
2  // Supprimer les espaces et convertir en majuscules
3  const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4  
5  // Vérifier le format de base
6  if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7    return false;
8  }
9  
10  // Réarranger et convertir les lettres en nombres
11  const rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
12  const converted = rearranged.split('').map(char => {
13    if (/[A-Z]/.test(char)) {
14      return (char.charCodeAt(0) - 55).toString();
15    }
16    return char;
17  }).join('');
18  
19  // Calculer le mod 97
20  let remainder = 0;
21  for (let i = 0; i < converted.length; i++) {
22    remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
23  }
24  
25  return remainder === 1;
26}
27
28// Exemple d'utilisation
29console.log(validateIban('DE89 3704 0044 0532 0130 00')); // true
30console.log(validateIban('GB29 NWBK 6016 1331 9268 19')); // true
31console.log(validateIban('DE89 3704 0044 0532 0130 01')); // false (chiffres de contrôle invalides)
32

Génération IBAN

1function generateIban(countryCode) {
2  const countryFormats = {
3    'DE': { length: 22, bbanPattern: '8n10n' },
4    'GB': { length: 22, bbanPattern: '4a6n8n' },
5    'FR': { length: 27, bbanPattern: '5n5n11c2n' }
6    // Ajouter d'autres pays si nécessaire
7  };
8  
9  if (!countryFormats[countryCode]) {
10    throw new Error(`Code pays ${countryCode} non pris en charge`);
11  }
12  
13  // Générer un BBAN aléatoire basé sur le modèle du pays
14  let bban = '';
15  const pattern = countryFormats[countryCode].bbanPattern;
16  let i = 0;
17  
18  while (i < pattern.length) {
19    const count = parseInt(pattern.substring(i + 1), 10);
20    const type = pattern[i];
21    
22    if (type === 'n') {
23      // Générer des caractères numériques
24      for (let j = 0; j < count; j++) {
25        bban += Math.floor(Math.random() * 10);
26      }
27    } else if (type === 'a') {
28      // Générer des caractères alphabétiques
29      for (let j = 0; j < count; j++) {
30        bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
31      }
32    } else if (type === 'c') {
33      // Générer des caractères alphanumériques
34      for (let j = 0; j < count; j++) {
35        const isLetter = Math.random() > 0.5;
36        if (isLetter) {
37          bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
38        } else {
39          bban += Math.floor(Math.random() * 10);
40        }
41      }
42    }
43    
44    i += 2;
45  }
46  
47  // Calculer les chiffres de contrôle
48  const checkDigits = calculateCheckDigits(countryCode, bban);
49  
50  return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54  // Créer un IBAN initial avec '00' comme chiffres de contrôle
55  const initialIban = countryCode + '00' + bban;
56  
57  // Réarranger et convertir les lettres en nombres
58  const rearranged = bban + countryCode + '00';
59  const converted = rearranged.split('').map(char => {
60    if (/[A-Z]/.test(char)) {
61      return (char.charCodeAt(0) - 55).toString();
62    }
63    return char;
64  }).join('');
65  
66  // Calculer 98 moins mod 97
67  let remainder = 0;
68  for (let i = 0; i < converted.length; i++) {
69    remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
70  }
71  
72  const checkDigits = (98 - remainder).toString().padStart(2, '0');
73  return checkDigits;
74}
75
76// Exemple d'utilisation
77console.log(generateIban('DE')); // Génère un IBAN allemand valide
78console.log(generateIban('GB')); // Génère un IBAN britannique valide
79

Références et lectures complémentaires

  1. ISO 13616-1:2007 - Spécification officielle de la structure IBAN
  2. Registre SWIFT IBAN - Source autorisée des formats IBAN spécifiques aux pays
  3. ISO 7064:2003 - Spécification de l'algorithme de chiffre de contrôle MOD 97
  4. Conseil des Paiements Européens - SEPA - Documentation sur l'Espace Unique de Paiements en Euros
  5. Banque Centrale Européenne - Systèmes de Paiement - Normes d'intégration bancaire européenne
  6. Banque des Règlements Internationaux - Systèmes de Paiement - Normes internationales des systèmes de paiement

Commencer à Tester les IBANs

Besoin de données de test pour votre système de paiement ? Générez un IBAN valide pour n'importe quel pays pris en charge ci-dessus, ou collez un IBAN existant pour vérifier sa structure. L'outil fonctionne entièrement dans votre navigateur — pas d'inscription, pas de clés API, aucune donnée envoyée aux serveurs.

Conseil rapide : Générez des IBANs de plusieurs pays pour tester les cas limites. Les systèmes de paiement réels gèrent des formats divers, et tester avec le format d'un seul pays est une source courante de bugs en production.