Ogni IBAN ha due cifre di controllo subito dopo il codice paese, calcolate con il MOD-97. Molti paesi aggiungono cifre di controllo proprie dentro il BBAN, il numero di conto nazionale. Quasi sempre sono più vecchie dell'IBAN: le banche le usavano per intercettare gli errori di battitura nei numeri di conto nazionali prima che l'IBAN esistesse, e l'IBAN le ha mantenute quando ha racchiuso quei numeri.
Due livelli di controllo
Prendi l'IBAN francese di esempio FR14 2004 1010 0505 0001 3M02 606. Il 14 dopo FR sono le cifre di controllo dell'IBAN. Le ultime due cifre, 06, sono la clé RIB, il controllo nazionale francese. Proteggono cose diverse:
| Cifre di controllo dell'IBAN | Cifre di controllo nazionali | |
|---|---|---|
| Dove | Posizioni 3 e 4, in ogni IBAN | Dentro il BBAN, in un punto stabilito da ogni paese |
| Metodo | MOD 97-10 (ISO/IEC 7064), uguale ovunque | Una regola nazionale, diversa da paese a paese |
| Cosa coprono | Tutto l'IBAN, codice paese compreso | Di solito codice banca, codice filiale e numero di conto |
| Chi le definisce | La norma ISO 13616 | La banca centrale o l'associazione bancaria del paese |
I due livelli sono indipendenti. Un IBAN può avere cifre di controllo MOD-97 corrette e fallire comunque il controllo nazionale, per esempio quando qualcuno ha racchiuso in un IBAN un numero nazionale scritto male e solo dopo ha calcolato le cifre di controllo dell'IBAN. Succede anche il contrario: cambia una cifra di un IBAN valido e il controllo MOD-97 fallisce, anche se il controllo nazionale è ancora superato.
I metodi principali
I controlli nazionali sembrano diversi, ma la maggior parte appartiene a poche famiglie.
Cifre finali MOD 97
Diversi paesi chiudono il BBAN con due cifre calcolate con MOD 97-10, lo stesso metodo delle cifre di controllo dell'IBAN, applicato alle cifre che le precedono. Funzionano così Portogallo (le cifre di controllo del NIB), Slovenia, Serbia, Montenegro, Macedonia del Nord, Bosnia ed Erzegovina, Kosovo e Timor Est.
Le chiavi RIB
La clé RIB francese è 97 meno il resto della divisione per 97 di 89 × codice banca + 15 × codice filiale + 3 × numero di conto. Prima del calcolo le lettere del numero di conto diventano cifre (A e J valgono 1, B, K e S valgono 2, e così via). La chiave rende l'intero numero nazionale divisibile per 97. Francia e Monaco la condividono, mentre Tunisia e Mauritania usano chiavi RIB con lo stesso scopo: l'intero numero di conto è divisibile per 97.
Il CIN italiano
Italia e San Marino mettono una lettera di controllo, il CIN, all'inizio del BBAN. Copre i 22 caratteri che la seguono: il codice ABI della banca, il codice CAB della filiale e il numero di conto. I caratteri in posizione dispari vengono convertiti con una tabella, quelli in posizione pari mantengono il loro valore semplice (le cifre valgono se stesse, le lettere da A = 0 a Z = 25). La somma divisa per 26 dà un resto da 0 a 25, che diventa una lettera dalla A alla Z.
Le cifre di controllo spagnole
Un codice di conto spagnolo (CCC, Código Cuenta Cliente) ha due cifre di controllo tra il codice filiale e il numero di conto. La prima controlla il codice banca e il codice filiale, la seconda il numero di conto di 10 cifre. Ognuna è una somma pesata con i pesi 1, 2, 4, 8, 5, 10, 9, 7, 3, 6: si divide per 11 e si sottrae il resto da 11. Un risultato di 11 diventa 0 e uno di 10 diventa 1. Vedi il formato spagnolo.
Somme pesate
Molti paesi moltiplicano ogni cifra per un peso, sommano i prodotti e tengono il resto:
- Belgio: le ultime due cifre sono le prime dieci cifre modulo 97 (97 al posto di 0).
- Norvegia: MOD 11 con i pesi 5, 4, 3, 2, 7, 6, 5, 4, 3, 2. I numeri di conto che richiederebbero il valore 10 non vengono mai assegnati.
- Finlandia: l'algoritmo di Luhn, lo stesso usato per i numeri delle carte.
- Estonia: il metodo 7-3-1, con i pesi 7, 3, 1 ripetuti da destra.
- Ungheria: due cifre con i pesi 9, 7, 3, 1, una per il codice banca e filiale e una per il numero di conto.
- Polonia: una cifra alla fine del codice di banca e filiale di 8 cifre, con i pesi 3, 9, 7, 1.
- Albania: una cifra dopo il codice banca e filiale, con i pesi 9, 7, 3, 1.
- Repubblica Ceca e Slovacchia: il prefisso del conto e il numero di conto devono dare ciascuno una somma pesata divisibile per 11.
- Croazia: ISO 7064 MOD 11,10, una volta per il codice banca e una per il numero di conto.
- Costa Rica: l'ultima cifra del numero di conto del cliente, con i pesi da 1 a 9 e poi da 1 a 7, modulo 11.
- Russia: la chiave di controllo della Banca di Russia, con i pesi 7, 1, 3 sulla parte finale del codice banca BIK e sul numero di conto.
Paese per paese
La tabella elenca tutti i paesi di cui questo sito calcola il controllo nazionale, con le posizioni delle cifre di controllo nell'IBAN. Segui il link di un paese per aprire il suo generatore e il formato completo.
| Paese | Posizioni | Metodo | Cifre di controllo IBAN | Fonte |
|---|---|---|---|---|
| Albania | 12 | Pesi 9, 7, 3, 1 (mod 10) | Dipendono dal conto | Bank of Albania, Decision No. 26 of 4.5.2022 |
| Belgio | 15–16 | Prime 10 cifre mod 97 | Dipendono dal conto | Febelfin / National Bank of Belgium |
| Bosnia ed Erzegovina | 19–20 | MOD 97-10 |
BA39
|
Centralna banka Bosne i Hercegovine |
| Costa Rica | 22 | Pesi da 1 a 9 (mod 11) | Dipendono dal conto | Banco Central de Costa Rica, Cuenta Cliente |
| Croazia | 11, 21 | ISO 7064 MOD 11,10 | Dipendono dal conto | Hrvatska narodna banka, Narodne novine 13/2025 |
| Estonia | 20 | 7-3-1 (mod 10) | Dipendono dal conto | Estonian Banking Association (Pangaliit) |
| Finlandia | 18 | Luhn (mod 10) | Dipendono dal conto | Finance Finland (Finanssiala) |
| Francia | 26–27 | Clé RIB (mod 97) | FR76 quando il numero di conto ha solo cifre | CFONB, RIB standard (Banque de France) |
| Italia | 5 | Lettera di controllo CIN (mod 26) | Dipendono dal conto | ABI, coordinate bancarie (Banca d'Italia) |
| Kosovo | 19–20 | MOD 97-10 |
XK05
|
Central Bank of the Republic of Kosovo (BQK) |
| Macedonia del Nord | 18–19 | MOD 97-10 |
MK07
|
National Bank of the Republic of North Macedonia |
| Mauritania | 26–27 | Chiave RIB (mod 97) |
MR13
|
Banque Centrale de Mauritanie, Instruction 16/GR/2008 |
| Monaco | 26–27 | Clé RIB (mod 97) | MC58 quando il numero di conto ha solo cifre | CFONB, RIB standard (Banque de France) |
| Montenegro | 21–22 | MOD 97-10 |
ME25
|
Centralna banka Crne Gore |
| Norvegia | 15 | MOD 11 | Dipendono dal conto | Bits AS / Finans Norge |
| Polonia | 12 | Pesi 3, 9, 7, 1 (mod 10) | Dipendono dal conto | Narodowy Bank Polski |
| Portogallo | 24–25 | MOD 97-10 |
PT50
|
Banco de Portugal, NIB |
| Repubblica Ceca | 14, 24 | MOD 11 pesato | Dipendono dal conto | Česká národní banka, vyhláška č. 169/2011 Sb. |
| Russia | 22 | Chiave di controllo, pesi 7, 1, 3 | Dipendono dal conto | Bank of Russia, Procedure No. 515 of 8.9.1997 |
| San Marino | 5 | Lettera di controllo CIN (mod 26) | Dipendono dal conto | Banca Centrale della Repubblica di San Marino (ABI standard) |
| Serbia | 21–22 | MOD 97-10 |
RS35
|
Narodna banka Srbije |
| Slovacchia | 14, 24 | MOD 11 pesato | Dipendono dal conto | Národná banka Slovenska, opatrenie č. 8/2009 |
| Slovenia | 18–19 | MOD 97-10 |
SI56
|
Banka Slovenije, Uradni list RS 85/2016 |
| Spagna | 13–14 | Cifre di controllo (mod 11) | Dipendono dal conto | Consejo Superior Bancario, Código Cuenta Cliente (AEB/CECA) |
| Timor Est | 22–23 | MOD 97-10 |
TL38
|
Banco Central de Timor-Leste |
| Tunisia | 23–24 | Chiave RIB (mod 97) |
TN59
|
Banque Centrale de Tunisie |
| Ungheria | 12, 28 | Pesi 9, 7, 3, 1 (mod 10) | Dipendono dal conto | Magyar Nemzeti Bank, 35/2017. (XII. 14.) MNB rendelet |
Per alcuni altri paesi, come Burundi, Gibuti e São Tomé e Príncipe, anche gli esempi del registro fanno pensare a un controllo nazionale, ma non ne abbiamo trovato una descrizione ufficiale. Il generatore lascia quelle cifre casuali.
Cifre di controllo IBAN fisse
Con cifre finali MOD 97 o con una chiave RIB, il BBAN diviso per 97 dà sempre lo stesso resto, qualunque sia il conto. Siccome le cifre di controllo dell'IBAN dipendono solo da quel resto e dal codice paese, tutti gli IBAN validi di questi paesi hanno le stesse cifre di controllo: ogni IBAN portoghese inizia con PT50, ogni IBAN serbo con RS35 e ogni IBAN tunisino con TN59. Gli IBAN francesi con un numero di conto di sole cifre iniziano tutti con FR76. Le lettere in un numero di conto francese cambiano il risultato, ed è per questo che l'esempio del registro visto sopra inizia con FR14.
È una verifica rapida e utile quando leggi IBAN di questi paesi: se le cifre di controllo sono diverse, l'IBAN è sbagliato.
Un validatore dovrebbe controllarle?
Il MOD-97 intercetta già ogni singola cifra sbagliata e ogni scambio di due cifre vicine, quindi contro gli errori di battitura i controlli nazionali aggiungono poco. Servono in altri casi: un IBAN costruito a mano partendo da un numero nazionale sbagliato, o un IBAN inventato da qualcuno che ha calcolato solo le cifre MOD-97.
Prima di aggiungerli al tuo validatore:
- Ogni paese ha bisogno del suo algoritmo, e ognuno deve seguire esattamente la regola ufficiale. Un'implementazione sbagliata rifiuta gli IBAN di clienti reali, il che è peggio che non controllare affatto.
- Testa ogni algoritmo con esempi nel formato reale, come l'esempio del registro che trovi nella pagina di ogni paese.
- Rendi preciso il messaggio di errore. "Le cifre di controllo nazionali non tornano" aiuta l'utente più di "IBAN non valido".
Il nostro validatore IBAN verifica le cifre di controllo nazionali dove la regola è nota, e lo dice quando non lo è. La libreria open source iban-check copre i controlli strutturali e il MOD-97.
Fare test con le cifre di controllo nazionali
Il generatore calcola le cifre di controllo nazionali per tutti i paesi della tabella qui sopra, in entrambe le modalità, realistica e completamente casuale, quindi i validatori che le verificano accettano gli IBAN generati. Per un test negativo, cambia una delle cifre di controllo nazionali e ricalcola le cifre di controllo dell'IBAN: l'IBAN supera così il MOD-97 ma non il controllo nazionale. Quando le cifre di controllo dell'IBAN sono sbagliate, il validatore ti suggerisce quelle giuste. IBAN di test per sviluppatori e QA descrive gli altri livelli che un validatore controlla.
Fonti
- IBAN Registry di SWIFT, Release 102 (giugno 2026): la struttura del BBAN di ogni paese e gli esempi usati in questo articolo.
- ISO/IEC 7064: i sistemi di caratteri di controllo MOD 97-10 e MOD 11,10.
- Banca nazionale ceca, IBAN: il decreto 169/2011 Coll. sul numero di conto ceco e il suo controllo.
- 35/2017. (XII. 14.) MNB rendelet, allegato 1: il numero di conto ungherese e le sue cifre di controllo.
- Le fonti nazionali indicate nella tabella: banche centrali, associazioni bancarie e le norme che pubblicano.