Clé RIB

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article adopte un point de vue régional ou culturel particulier et nécessite une internationalisation ().

Merci de l'améliorer ou d'en discuter sur sa page de discussion ! Vous pouvez préciser les sections à internationaliser en utilisant {{section à internationaliser}}.

En France, la clé RIB (RIB = Relevé d'identité bancaire) est constituée de 2 chiffres entre 01 et 97 qui complètent un numéro de compte bancaire. Elle permet, par un algorithme, de vérifier la validité du numéro de compte.

Algorithme de calcul de la clé RIB

Le numéro de compte bancaire au format RIB comporte 23 chiffres et peut se décomposer comme suit :

R = r 1 r 5 r 6 r 10 r 11 r 21 r 22 r 23 = B .10 18 + G .10 13 + C .10 2 + K B G C K {\displaystyle {\begin{matrix}R=&\underbrace {r_{1}\ldots {}r_{5}} &\underbrace {r_{6}\ldots {}r_{10}} &\underbrace {r_{11}\ldots {}r_{21}} &\underbrace {r_{22}r_{23}} &=B.10^{18}+G.10^{13}+C.10^{2}+K\\{}&B&G&C&K&\end{matrix}}}

B {\displaystyle B} est le code banque (5 chiffres), G {\displaystyle G} le code guichet (5 chiffres), C {\displaystyle C} le numéro de compte (11 signes), et K {\displaystyle K} la clé RIB (2 chiffres).

En réalité, le numéro de compte peut être composé à la fois de chiffres et de lettres. Afin d'appliquer l'algorithme de calcul, il faut donc, le cas échéant, convertir les lettres en chiffres selon la table de correspondance ci-dessous :

1 2 3 4 5 6 7 8 9
A B C D E F G H I
J K L M N O P Q R
S T U V W X Y Z

Alors, la clé K {\displaystyle K} est calculée de telle sorte que le reste de la division entière de R {\displaystyle R} par 97 soit nul et que K {\displaystyle K} soit compris entre 1 et 97, soit :

R 0 ( mod 97 ) a v e c 1 K 97 {\displaystyle R\equiv 0{\pmod {97}}\quad {\rm {avec\,}}1\leq K\leq 97}

En particulier, nous avons :

K ( B .10 18 + G .10 13 + C .10 2 ) ( mod 97 ) ( B .89 + G .15 + C .3 ) ( mod 97 ) {\displaystyle K\equiv -(B.10^{18}+G.10^{13}+C.10^{2}){\pmod {97}}\equiv -(B.89+G.15+C.3){\pmod {97}}}

Une formule simple pour calculer K {\displaystyle K} est alors :

K = 97 ( ( 89. B + 15. G + 3. C ) mod 97 ) {\displaystyle K=97-{\Big (}(89.B+15.G+3.C)\,{\bmod {\,}}97{\Big )}}

Exemple de calcul

Prenons par exemple le numéro de compte 12345123451234567891 A {\displaystyle 12345123451234567891A} .

Si on le décompose on a :

R = 12345 12345 1234567891 A r 22 r 23 = B .10 18 + G .10 13 + C .10 2 + K B G C K {\displaystyle {\begin{matrix}R=&\underbrace {12345} &\underbrace {12345} &\underbrace {1234567891A} &\underbrace {r_{22}r_{23}} &=B.10^{18}+G.10^{13}+C.10^{2}+K\\{}&B&G&C&K&\end{matrix}}}

La formule devient donc :

K = 97 ( ( 89 × 12345 + 15 × 12345 + 3 × 12345678911 ) mod 97 ) = 16 {\displaystyle K=97-{\Big (}(89\times 12345+15\times 12345+3\times 12345678911)\,{\bmod {\,}}97{\Big )}=16}

Le numéro de compte complet est donc 12345123451234567891 A 16 {\displaystyle 12345123451234567891A16} .

Algorithme de calcul qui fonctionne avec des entiers 32 bits

Le nombre qui pose problème est le numéro de compte, qui, à cause de ses onze chiffres, ne loge pas dans un entier 32 bits, encore moins lorsqu'il est multiplié par trois. La solution est de le séparer en deux nombres, le numéro de compte se décompose alors ainsi :

R = r 1 r 5 r 6 r 10 r 11 r 16 r 17 r 21 r 22 r 23 = B .10 18 + G .10 13 + D .10 7 + C .10 2 + K B G D C K {\displaystyle {\begin{matrix}R=&\underbrace {r_{1}\ldots {}r_{5}} &\underbrace {r_{6}\ldots {}r_{10}} &\underbrace {r_{11}\ldots {}r_{16}} &\underbrace {r_{17}\ldots {}r_{21}} &\underbrace {r_{22}r_{23}} &=B.10^{18}+G.10^{13}+D.10^{7}+C.10^{2}+K\\{}&B&G&D&C&K&\end{matrix}}}

La formule simple pour calculer K {\displaystyle K} devient :

K = 97 ( ( 89. B + 15. G + 76. D + 3. C ) ( mod 97 ) ) {\displaystyle K=97-{\Big (}(89.B+15.G+76.D+3.C){\pmod {97}}{\Big )}}

Elle est calculable à l'aide du type entier le plus courant dans nos systèmes actuels, c'est-à-dire l'entier 32 bits. Une implémentation en C serait :

int cle_RIB(int b, int g, int d, int c)
{
    return 97 - ((89 * b + 15 * g + 76 * d + 3 * c) % 97);
}

Vérifier un RIB avec une formule dans un tableur

Avec la liste des chiffres du RIB écrite en A1 (avec ou sans la clé elle-même : 21 ou 23 caractères indifféremment) :

 =97-MOD(CONCATENER(MOD(CONCATENER(MOD(STXT(A1;1;7);97);STXT(A1;8;8));97);STXT(A1;16;6))&"00";97)

Et sa version pour vérifier les numéros de comptes comportant des lettres (on substitue les lettres par le chiffre correspondant -voir ci-dessus-) :

 =97-MOD(CONCATENER(MOD(CONCATENER(MOD(STXT(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(MAJUSCULE(A1);"A";"1");"B";"2");"C";"3");"D";"4");"E";"5");"F";"6");"G";"7");"H";"8");"I";"9");"J";"1");"K";"2");"L";"3");"M";"4");"N";"5");"O";"6");"P";"7");"Q";"8");"R";"9");"S";"2");"T";"3");"U";"4");"V";"5");"W";"6");"X";"7");"Y";"8");"Z";"9");1;7);97);STXT(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(MAJUSCULE(A1);"A";"1");"B";"2");"C";"3");"D";"4");"E";"5");"F";"6");"G";"7");"H";"8");"I";"9");"J";"1");"K";"2");"L";"3");"M";"4");"N";"5");"O";"6");"P";"7");"Q";"8");"R";"9");"S";"2");"T";"3");"U";"4");"V";"5");"W";"6");"X";"7");"Y";"8");"Z";"9");8;8));97);STXT(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(MAJUSCULE(A1);"A";"1");"B";"2");"C";"3");"D";"4");"E";"5");"F";"6");"G";"7");"H";"8");"I";"9");"J";"1");"K";"2");"L";"3");"M";"4");"N";"5");"O";"6");"P";"7");"Q";"8");"R";"9");"S";"2");"T";"3");"U";"4");"V";"5");"W";"6");"X";"7");"Y";"8");"Z";"9");16;6))&"00";97)
  • icône décorative Portail de la finance