FreeToGenerate.com

Le modulo 97 attrape tout caractère mal saisi et toute paire intervertie, à n’importe quelle distance. Un zéro en tête est la seule chose qu’il ne voit pas.

Les clés de contrôle sont valides

Pays
Royaume-Uni · Au registre ISO 13616
Longueur
22
Longueur du registre
22 · Correspond au registre.
En format imprimé
GB33 BUKB 2020 1555 5555 55

Instantané du registre : Release 99, décembre 2024.

Ce qu’un IBAN valide ne vous dit pas

Seulement que les caractères sont cohérents entre eux, c’est-à-dire que la personne qui les a saisis ne s’est probablement pas trompée. Cela ne dit rien sur l’ouverture effective du compte, son titulaire ou sa capacité à recevoir de l’argent. Cela relève de la banque qui tient les registres, et aucune arithmétique n’y répond.

Aussi disponible en : English · Español · Português · العربية

Vérificateur d’IBAN

Contrôlez les clés d’un IBAN, voyez ce qu’implique le reste du numéro et découvrez exactement quelle erreur passe au travers.

Qu’est-ce qu’un vérificateur d’IBAN ?

L’IBAN est le format international du numéro de compte bancaire : deux lettres pour le pays, deux clés de contrôle, puis ce que le pays emploie sur son territoire. Les clés sont la partie intéressante. Elles se calculent à partir de tous les autres caractères, si bien qu’une seule saisie fautive fait tomber le compte à faux, et l’erreur est attrapée avant que le virement ne parte où que ce soit.

Un vérificateur d’IBAN exécute cette arithmétique. On déplace les quatre premiers caractères à la fin, on remplace chaque lettre par un nombre où A vaut 10 et Z vaut 35, on lit l’ensemble comme un seul très long entier et on prend le reste modulo 97. Un IBAN valide laisse un reste de 1. C’est tout l’algorithme, il est spécifié sous le nom ISO 7064 MOD 97-10, et il ne réclame aucune base de données.

Ce dernier point mérite qu’on s’y arrête, car il décide de ce que cette page peut promettre honnêtement. Contrôler les clés relève de l’arithmétique pure et ne se trompe jamais. Tout le reste, à savoir le pays auquel appartient un code ou la longueur qu’y doit avoir un IBAN, provient d’un registre publié qui évolue avec le temps. L’outil garde les deux choses séparées et vous dit laquelle est laquelle.

Comment l’utiliser

  1. Collez un IBAN, avec ou sans espaces. Les espaces et les tirets sont ignorés et les minuscules acceptées : un IBAN recopié d’une facture par blocs de quatre convient tel quel. Il n’y a rien à sélectionner ni de pays à choisir au préalable, le pays se lit sur les deux premières lettres.
  2. Lisez le verdict. Le panneau indique si les clés sont valides. Lorsqu’elles ne le sont pas, il affiche les deux chiffres qu’impliquent les autres caractères, ce qui désigne le plus souvent la faute directement. En dessous figurent le pays, la longueur, et la longueur que le registre donne pour ce pays.
  3. Regardez la ligne de longueur, pas seulement le verdict. Les clés et la longueur attrapent des erreurs différentes, et la ligne de longueur est la seule chose qui attrape celle décrite plus bas. Si le code pays ne figure pas dans l’instantané, l’outil le dit au lieu de déclarer l’IBAN invalide.

Ce qu’il attrape, compté et non répété

On dit d’ordinaire que le modulo 97 attrape à peu près tout. Plutôt que de le répéter, nous l’avons mesuré. En prenant des IBAN valides couvrant toute la plage de longueurs légales et en les abîmant une erreur à la fois, 229 779 erreurs conservant la longueur ont été testées : tout caractère remplacé par un autre de même nature, et toute paire intervertie à n’importe quelle distance et pas seulement entre voisins. Aucune n’est passée.

Cela vaut d’être placé à côté des deux schémas modulo 10 que ce site a déjà mesurés de la même façon. L’algorithme de Luhn, qui protège les cartes bancaires et les IMEI, laisse passer 2,20 % des inversions de voisins, toujours la même paire, le 0 et le 9. L’ISBN-13 en laisse passer 10,21 %, avec cinq paires distinctes. Le modulo 97 n’en laisse passer aucune, et contrairement aux deux autres sa garantie ne s’arrête pas aux caractères voisins.

La raison tient à l’arithmétique et non à la chance. Chaque position du numéro porte un poids, et ces poids sont les puissances de 10 modulo 97. Comme 10 est une racine primitive modulo 97, ces puissances parcourent 96 valeurs distinctes avant de se répéter : dans un IBAN réel, deux positions ne partagent donc jamais un poids. Et comme 97 est premier et supérieur à l’écart entre deux caractères quelconques, toute modification déplace le reste. Les deux propriétés sont nécessaires, aucune ne suffit seule.

Il existe bel et bien un horizon, et il est net. Deux caractères séparés d’exactement 96 positions de chiffre partagent un poids, et les intervertir est réellement invisible, ce que nous avons vérifié directement. Mais l’IBAN le plus long qu’autorise la norme fait 34 caractères, et quand bien même ils seraient tous des lettres, cela ne ferait que 66 chiffres. Le schéma a un angle mort que l’IBAN est trop court pour atteindre.

La seule chose qu’il ne peut pas voir

Les erreurs qui changent la longueur sont une autre affaire, et la garantie n’y tient plus. Perdre ou ajouter un caractère échappe environ une fois sur 97, ce que prévoit exactement un modulo de 97 et ce que nous avons mesuré : 0,98 %. C’est le bruit de fond de toute somme de contrôle, et on ne descend pas en dessous sans ajouter des clés.

Un cas, pourtant, ne doit rien au hasard. Un zéro en tête est totalement invisible pour l’arithmétique, parce que placer un zéro devant un nombre ne change pas sa valeur. En ajouter ou en retirer un au début du numéro de compte a laissé l’IBAN valide 616 fois sur 616 lors de notre balayage : pas une fois sur 97, mais à chaque fois. Beaucoup de pays émettent des numéros de compte commençant par un zéro, ce n’est donc pas une hypothèse d’école.

C’est exactement pour cela que l’outil contrôle la longueur. Les clés et la longueur ne sont pas deux façons de faire le même travail : la longueur est la seule chose qui vous sépare de la seule erreur que l’arithmétique est structurellement incapable de remarquer. Lorsque le numéro que vous collez commence par un zéro, l’outil le signale et vous renvoie à la ligne de longueur.

C’est aussi pour cela que la longueur ne prime jamais sur le verdict. Les longueurs par pays viennent du registre ISO 13616, dont SWIFT est l’autorité d’enregistrement, et l’instantané employé ici est la Release 99 de décembre 2024, forte de 89 codes pays. La comparer à une copie du registre vieille de dix ans donne 30 pays ajoutés et aucun retiré, ce qui laisse croire à une table qui, au pire, resterait incomplète. Mais une longueur a changé elle aussi : le Costa Rica est passé de 21 caractères à 22 en 2017. Un outil qui rejetterait un IBAN parce que sa propre table n’est pas d’accord aurait déclaré invalide tout nouveau compte costaricien tant qu’il n’aurait pas été mis à jour. Ici, c’est donc la somme de contrôle qui tranche, et la table se contente d’y ajouter une observation.

Limites honnêtes

Beaucoup de pays intègrent leurs propres clés à l’intérieur du numéro de compte, sous celle de l’IBAN. La France emploie une clé RIB ; celle de la Belgique est elle-même un modulo 97 sur les dix premiers chiffres du compte, ce que nous avons vérifié sur un IBAN belge publié ; l’Espagne, l’Italie, la Norvège et les Pays-Bas en utilisent chacun une autre. Cet outil n’en contrôle aucune, si bien qu’un IBAN peut passer ici tout en restant mal formé pour son propre pays. Seul un contrôle conçu pour ce pays peut le dire.

Un IBAN valide ne dit rien non plus de l’existence du compte. Il signifie que les caractères sont cohérents entre eux, donc que la personne qui les a saisis ne s’est probablement pas trompée. Il ne signifie pas que le compte a été ouvert, qu’il appartient à quelqu’un en particulier ou qu’il peut recevoir de l’argent, et aucune arithmétique portant sur le numéro lui-même n’établit quoi que ce soit de tel. Seule la banque qui tient les registres le sait, et toute page prétendant vérifier un compte sans en contacter une fait exactement ce que fait celle-ci.

Il n’y a pas non plus d’identification de la banque. Les caractères qui suivent le code pays encodent bien un établissement et souvent un guichet, mais les résoudre suppose un annuaire qui n’est pas entièrement public et qui bouge au gré des fusions et des scissions, et une copie périmée serait fausse avec assurance. L’outil rapporte ce qu’il peut déduire et s’arrête là.

Un dernier point utile si vous comparez les outils : une douzaine de codes à deux lettres que d’autres validateurs affichent ne sont pas des pays IBAN. Åland emploie le format finlandais sous FI, et onze territoires français d’outre-mer emploient le format français sous FR, si bien qu’aucune banque n’émet de compte commençant par ces codes, quand bien même l’arithmétique en accepterait un sans broncher. Vingt-deux autres pays, dont le Maroc, l’Algérie, l’Iran et le Sénégal, ont en revanche des formats réellement en usage absents du registre ISO ; ceux-là sont signalés plutôt que masqués ou acceptés en silence.

Pourquoi est-ce gratuit ?

Parce que c’est un reste. Aucun serveur dans la boucle et rien à télécharger : tout le contrôle s’exécute dans votre navigateur, et rien de ce que vous collez n’est envoyé, journalisé ni conservé où que ce soit. Sur une page où l’on colle des numéros de compte bancaire, cela compte plus qu’ailleurs, et c’est précisément pourquoi l’arithmétique a été choisie de manière à ne réclamer aucune consultation.

Il n’y a donc ni compte, ni inscription, ni rien de réservé. Le moteur et les 209 vérifications qui l’attestent se trouvent dans le dépôt, à côté de la page, y compris les balayages derrière chacun des chiffres cités plus haut.