Bases · IBAN & BIC

IBAN & BIC pour GiroCode – Guide complet

L'IBAN est l'élément central de tout GiroCode. Ce guide explique sa structure, son fonctionnement, la validation par l'algorithme Mod-97 et le rôle du BIC dans les paiements SEPA modernes.

Qu'est-ce qu'un IBAN ?

L'IBAN (International Bank Account Number – Numéro de compte bancaire international) est un standard international de numérotation des comptes bancaires développé par l'Organisation internationale de normalisation (ISO) et le Comité européen de normalisation bancaire (CENB). Il a été introduit dans le cadre de la modernisation des paiements internationaux afin de remplacer les systèmes nationaux disparates par un format unique et universellement reconnaissable.

Avant l'IBAN, chaque pays avait son propre format de numéro de compte, rendant les virements transfrontaliers complexes, coûteux et sujets aux erreurs. L'IBAN standardise cette information en ajoutant un préfixe pays et des chiffres de contrôle au numéro de compte national existant.

Structure de l'IBAN français

L'IBAN français a une longueur fixe de 27 caractères :

  • FR – Code pays (2 lettres)
  • 76 – Chiffres de contrôle (2 chiffres)
  • 12345 – Code banque (5 chiffres)
  • 67890 – Code guichet (5 chiffres)
  • 12345678901 – Numéro de compte (11 chiffres)
  • 85 – Clé RIB (2 chiffres)

Exemple d'IBAN français complet : FR7612345678901234567890185

Structure de l'IBAN allemand

L'IBAN allemand a une longueur de 22 caractères :

  • DE – Code pays
  • 89 – Chiffres de contrôle
  • 370400440 – Code bancaire (Bankleitzahl, 8 chiffres)
  • 0532013000 – Numéro de compte (10 chiffres)

Exemple : DE89370400440532013000

L'IBAN expliqué étape par étape

Étape 1 : Le code pays

Les deux premières lettres d'un IBAN correspondent au code ISO 3166-1 alpha-2 du pays de la banque. Par exemple, FR pour la France, DE pour l'Allemagne, ES pour l'Espagne, IT pour l'Italie, NL pour les Pays-Bas. Ce code identifie non seulement le pays mais aussi le format de l'IBAN qui suit.

Étape 2 : Les chiffres de contrôle (algorithme Mod-97)

Les deux chiffres qui suivent le code pays sont les chiffres de contrôle IBAN. Ils sont calculés selon l'algorithme Mod-97 (modulo 97) et permettent de vérifier que l'IBAN entier est syntaxiquement correct. Ce système de contrôle permet de détecter environ 97 % des erreurs de saisie typiques.

Le calcul des chiffres de contrôle fonctionne de la manière suivante :

  1. Déplacer les 4 premiers caractères à la fin de l'IBAN
  2. Remplacer chaque lettre par sa valeur numérique (A=10, B=11, ..., Z=35)
  3. Calculer le reste de la division entière par 97
  4. Pour un IBAN valide, le résultat doit être 1 (et non pas 0)

Exemple de validation IBAN : FR7612345678901234567890185

  1. Déplacer les 4 premiers caractères : 12345678901234567890185FR76
  2. Remplacer les lettres : F=15, R=27 → 1234567890123456789018515276
  3. Calculer : 1234567890123456789018515276 mod 97 = 1

Étape 3 : Le BBAN (Basic Bank Account Number)

Le reste de l'IBAN après le code pays et les chiffres de contrôle est le BBAN (Basic Bank Account Number). Il correspond au numéro de compte national, reformaté selon les règles du pays concerné. Sa structure et sa longueur varient d'un pays à l'autre.

Qu'est-ce qu'un BIC ?

Le BIC (Bank Identifier Code), également connu sous le nom de code SWIFT, est un code d'identification unique attribué à chaque banque. Il est utilisé pour identifier les établissements financiers dans les transactions internationales et les systèmes de messagerie interbancaire.

Structure du BIC

Un BIC peut avoir 8 ou 11 caractères :

  • Code banque (4 lettres) : Identifiant unique de la banque. Exemple : SOGE pour Société Générale
  • Code pays (2 lettres) : Code ISO du pays. Exemple : FR pour la France
  • Code location (2 caractères) : Indique la localisation du siège social ou de l'unité principale. Exemple : PP
  • Code branche (3 caractères, optionnel) : Identifie une agence spécifique. Si absent ou remplacé par XXX, fait référence au siège principal

Exemples de BIC : SOGEFRPPXXX (Société Générale France), BNPAFRPPXXX (BNP Paribas France), DEUTDEDBXXX (Deutsche Bank Allemagne)

Où trouver son BIC ?

Votre BIC figure généralement sur :

  • Votre relevé de compte bancaire
  • La page d'informations de compte de votre application bancaire
  • Le site web officiel de votre banque (section « Coordonnées bancaires »)
  • Votre RIB (Relevé d'Identité Bancaire) pour les banques françaises

Le BIC est-il obligatoire pour un GiroCode ?

Optionnel depuis la migration SEPA 2016

La réponse courte est : non, pas pour la plupart des cas d'usage.

Depuis le 1er février 2016, date de la migration SEPA complète en Europe, le BIC n'est plus obligatoire pour les virements SEPA intra-européens. Les banques sont désormais capables d'identifier l'établissement financier du bénéficiaire uniquement à partir de l'IBAN, en utilisant des bases de données centralisées de correspondance IBAN-BIC.

Dans la norme EPC v002 (la version actuelle), le champ BIC (ligne 5 du payload) est donc optionnel. Notre générateur de GiroCode vous permet de renseigner le BIC si vous le souhaitez, mais ne l'exige pas.

Quand le BIC est-il encore nécessaire ?

Malgré la règle générale, il existe des situations où le BIC reste utile ou même nécessaire :

  • Virements vers des pays hors zone euro : Pour certains virements vers des pays qui font partie de la zone SEPA mais n'utilisent pas l'euro (comme la Suède, la Pologne, la Hongrie, la République tchèque, etc.), certaines banques peuvent encore exiger le BIC.
  • Compatibilité avec les anciens systèmes : Certaines applications bancaires plus anciennes ou systèmes de traitement intermédiaires peuvent ne pas avoir implémenté la résolution automatique IBAN-BIC. Dans ces cas, fournir le BIC assure une compatibilité maximale.
  • Virements urgents (SEPA Instant) : Pour les virements instantanés SEPA, certaines banques recommandent d'inclure le BIC pour éviter tout délai de traitement.

Recommandation pratique

Si vous connaissez votre BIC, incluez-le dans votre GiroCode – cela ne coûte rien et améliore la compatibilité. Si vous ne le connaissez pas, laissez ce champ vide : le GiroCode fonctionnera correctement dans la grande majorité des cas.

Validation IBAN expliquée

Pourquoi valider l'IBAN avant de créer un GiroCode ?

Une simple erreur dans l'IBAN peut avoir des conséquences graves :

  • Virement rejeté : Si l'IBAN mal saisi ne correspond à aucun compte existant, le virement sera rejeté par la banque, souvent avec des frais supplémentaires.
  • Virement vers un mauvais compte : Dans le pire des cas, si l'IBAN incorrectement saisi correspond par hasard à un compte existant (d'une autre personne), le virement sera effectué vers le mauvais destinataire. Récupérer l'argent peut être long et compliqué.
  • Délais et coûts : Les erreurs d'IBAN causent des retards de paiement et potentiellement des frais bancaires.

L'algorithme Mod-97 étape par étape

Voici comment fonctionne la validation Mod-97 d'un IBAN, en détail :

  1. Normaliser l'IBAN : Supprimer tous les espaces et mettre en majuscules. FR76 1234 5678... FR7612345678...
  2. Réorganiser : Déplacer les 4 premiers caractères (code pays + chiffres de contrôle) à la fin. FR7612345678901234567890185 12345678901234567890185FR76
  3. Convertir les lettres : Remplacer chaque lettre par sa valeur numérique (A=10, B=11, C=12, ..., Z=35). F=15, R=27 1234567890123456789018515276
  4. Calculer le reste : Diviser le grand nombre obtenu par 97 et calculer le reste.
  5. Vérifier : Si le reste est 1, l'IBAN est valide. Si c'est une autre valeur, l'IBAN contient une erreur.

Exemple de code JavaScript pour la validation IBAN

/**
 * Valide un IBAN selon l'algorithme Mod-97
 * @param {string} iban - L'IBAN à valider (avec ou sans espaces)
 * @returns {boolean} true si l'IBAN est valide
 */
function validateIBAN(iban) {
  // Supprimer les espaces et mettre en majuscules
  const cleaned = iban.replace(/\s/g, '').toUpperCase();

  // Vérifier la longueur minimale
  if (cleaned.length < 5) return false;

  // Vérifier que le format commence par 2 lettres puis 2 chiffres
  if (!/^[A-Z]{2}[0-9]{2}/.test(cleaned)) return false;

  // Réorganiser: déplacer les 4 premiers caractères à la fin
  const rearranged = cleaned.slice(4) + cleaned.slice(0, 4);

  // Convertir les lettres en chiffres
  const numeric = rearranged.split('').map(char => {
    const code = char.charCodeAt(0);
    if (code >= 65 && code <= 90) {
      return (code - 55).toString(); // A=10, B=11, ..., Z=35
    }
    return char;
  }).join('');

  // Calculer Mod-97 sur de grands nombres
  // (JavaScript ne supporte pas nativement les très grands entiers en BigInt)
  let remainder = 0;
  for (const digit of numeric) {
    remainder = (remainder * 10 + parseInt(digit)) % 97;
  }

  return remainder === 1;
}

// Tests :
console.log(validateIBAN('FR76 1234 5678 9012 3456 7890 185')); // true
console.log(validateIBAN('DE89 3704 0044 0532 0130 00'));         // true
console.log(validateIBAN('FR76 1234 5678 9012 3456 7890 186')); // false (chiffre erroné)
console.log(validateIBAN('XX00 0000 0000 0000 0000 000'));       // false (pays inexistant)

Erreurs courantes de saisie IBAN

Les erreurs les plus fréquentes lors de la saisie manuelle d'un IBAN sont :

  • Transposition de chiffres : Inverser deux chiffres consécutifs (...1234... devient ...2134...)
  • Chiffres répétés : Doubler un chiffre par erreur (...1234... devient ...11234...)
  • Confusion O/0 et I/1 : Confondre la lettre O et le chiffre 0, ou la lettre I et le chiffre 1 (bien que les IBAN n'utilisent théoriquement pas ces caractères ambigus)
  • Mauvais code pays : Saisir le mauvais préfixe (par exempleBE au lieu de FR)

Formats IBAN par pays

Voici un tableau récapitulatif des formats IBAN pour les principaux pays de la zone SEPA :

PaysCodeLongueurExemple
FranceFR27FR7612345678901234567890185
AllemagneDE22DE89370400440532013000
AutricheAT20AT611904300235473201
SuisseCH21CH5604835012345678009
EspagneES24ES9121000418450200051332
ItalieIT27IT60X0542811101000000123456
Pays-BasNL18NL91ABNA0417164300
BelgiqueBE16BE68539007547034
PortugalPT25PT50000201231234567890154
LuxembourgLU20LU280019400644750000

Sécurité de l'IBAN dans le GiroCode

Est-il sûr de partager son IBAN ?

L'IBAN est une donnée semi-publique. Il figure déjà sur les chèques, les RIB (relevés d'identité bancaire) et les factures. Le partager pour recevoir des virements ne présente pas de risque intrinsèque, car un IBAN seul ne permet que de recevoir des paiements, pas d'en initier.

Cependant, il faut être conscient que votre IBAN peut être utilisé pour des prélèvements SEPA (débit direct). Si quelqu'un obtient votre IBAN et votre nom, il pourrait théoriquement initier un prélèvement non autorisé – bien que la réglementation SEPA offre une protection : vous avez le droit de contester tout prélèvement non autorisé dans un délai de 13 mois et d'être remboursé immédiatement.

GiroCode et confidentialité

Un GiroCode contient votre IBAN, votre nom et éventuellement votre montant de facturation. Si vous publiez ce code QR publiquement (sur un site web, par exemple), toute personne peut en extraire ces informations. Pour les factures envoyées à des clients spécifiques, ce n'est généralement pas un problème. Mais pour un code QR utilisé dans un contexte public, soyez conscient que l'IBAN sera visible par quiconque scanne le code.

IBAN pour virement vs. prélèvement

Il est important de comprendre la différence fondamentale :

  • Virement SEPA (SCT) : Vous donnez l'ordre de payer. Le GiroCode initie un virement depuis le compte du payeur vers votre compte. Vous êtes le bénéficiaire passif.
  • Prélèvement SEPA (SDD) : Vous autorisez quelqu'un d'autre à prélever de l'argent sur votre compte. Cela nécessite un mandat de prélèvement signé et ne peut pas être initié via un GiroCode.

En d'autres termes, un GiroCode ne peut jamais être utilisé pour prélever de l'argent sur le compte du payeur sans son consentement explicite. La confirmation dans l'application bancaire constitue ce consentement.

Utiliser GiroCode professionnellement – Recommandations logicielles

Quiconque souhaite utiliser des GiroCodes de manière professionnelle sur ses factures aura tôt ou tard besoin d'un bon logiciel de comptabilité ou de facturation. Créer des GiroCodes manuellement convient pour un usage occasionnel – mais pour une facturation régulière, une solution automatisée est rapidement rentable.

Nous recommandons deux outils éprouvés qui prennent en charge nativement les GiroCodes :

sevDesk

sevDesk est l'une des principales plateformes comptables allemandes pour les indépendants et les PME. Les factures avec GiroCode généré automatiquement peuvent être créées en quelques clics et envoyées directement par e-mail.

Tester sevDesk gratuitement *

FastBill

FastBill propose une plateforme de facturation simple et rapide. Avec FastBill, vous créez une facture professionnelle incluant un GiroCode en moins de deux minutes – directement dans le navigateur, sans installation.

Tester FastBill gratuitement *

* Lien affilié – Si vous achetez via ce lien, nous percevons une petite commission sans frais supplémentaires pour vous.

Pour un usage occasionnel, nous recommandons notre générateur de GiroCode gratuit – entièrement local, sans inscription.

* Divulgation affilié : Les liens marqués d'un * sont des liens affiliés. Si vous achetez via ces liens, nous percevons une petite commission – sans frais supplémentaires pour vous.