Codice di controllo IBAN: il calcolo mod 97 passo per passo
Le due cifre dopo il codice paese, il 60 in IT60 X054 2811 1010 0000 0123 456, sono il codice di controllo dell’IBAN. Si calcolano con il metodo mod 97 della norma ISO 13616 e servono a scoprire gli errori di battitura prima che il bonifico parta. Qui trovi il calcolo completo su un IBAN italiano, il modo di farlo a mano e cosa il controllo scopre e non scopre.
Dove sono le cifre di controllo
In ogni IBAN, di qualunque paese, le posizioni 3 e 4 sono le cifre di controllo. Possono valere da 02 a 98: 00, 01 e 99 non sono ammessi, anche se un controllo superficiale li farebbe passare (il motivo è spiegato più sotto). Non vanno confuse con i controlli nazionali che alcuni paesi hanno dentro la parte nazionale, come il CIN italiano, la clé RIB francese o i DC spagnoli.
- PaeseIT
- Cifre di controllo60
- CINX
- ABI05428
- CAB11101
- Numero di conto000000123456
Verificare un IBAN in tre passi
Usiamo l’esempio ufficiale del registro SWIFT per l’Italia, IT60 X054 2811 1010 0000 0123 456, scritto senza spazi.
- Sposta i primi quattro caratteri in fondo. IT60X0542811101000000123456 diventa X0542811101000000123456IT60.
- Sostituisci ogni lettera con un numero: A = 10, B = 11 e così via fino a Z = 35. Qui X = 33, I = 18, T = 29. Si ottiene 330542811101000000123456182960.
- Calcola il resto della divisione per 97. Se il resto è 1, l’IBAN supera il controllo. In questo caso il resto è 1.
Spostare i primi quattro caratteri in fondo serve a mettere le cifre di controllo alla fine del numero, dove il calcolo le tratta come un’aggiunta al resto dell’IBAN. Convertire le lettere in numeri serve a ottenere un numero da dividere: per questo una lettera conta come due cifre.
Come fare la divisione a mano
Un numero di 30 cifre non entra in una normale calcolatrice, e un foglio di calcolo perde precisione oltre le 15 cifre. Il trucco è dividere a pezzi: si calcola il resto delle prime 9 cifre, lo si scrive davanti alle 7 cifre successive e si ripete fino alla fine.
| Passo | Numero da dividere | Resto della divisione per 97 |
|---|---|---|
| 1 | 330542811 | 82 |
| 2 | 821010000 | 60 |
| 3 | 600012345 | 27 |
| 4 | 276182960 | 1 |
Ogni volta il resto precedente (82, 60, 27) diventa l’inizio del numero successivo. Il risultato finale, 1, è lo stesso che si ottiene dividendo il numero intero. È anche il modo in cui lo calcola il nostro codice: una cifra alla volta, senza mai lavorare con numeri troppo grandi.
Calcolare le cifre di controllo da zero
Per creare un IBAN si parte dalla parte nazionale, si segue lo stesso procedimento con 00 al posto delle cifre di controllo e si sottrae il resto da 98:
- Si scrive X0542811101000000123456IT00.
- Convertendo le lettere si ottiene 330542811101000000123456182900.
- Il resto della divisione per 97 è 38.
- 98 − 38 = 60. Se il risultato ha una sola cifra si aggiunge uno zero davanti, per esempio 07.
Il Calcolo IBAN fa esattamente questo, dopo aver calcolato il CIN italiano da ABI, CAB e numero di conto. Il resto può andare da 0 a 96, quindi 98 meno il resto va da 02 a 98: è per questo che un IBAN calcolato correttamente non ha mai 00, 01 o 99.
Perché 00, 01 e 99 sono vietati
Le cifre di controllo sono le ultime due cifre del numero da dividere. Se si aggiunge o si toglie 97, il resto della divisione per 97 non cambia. Quindi 00 dà lo stesso resto di 97, 01 lo stesso di 98 e 99 lo stesso di 02. Un IBAN con 01 al posto di 98 supererebbe il semplice controllo mod 97.
La norma esclude questi tre valori, e la nostra verifica li rifiuta. Nei test abbiamo costruito apposta IBAN tedeschi con 00, 01 e 99 che superano il mod 97, e controllato che vengano segnalati come errati.
Quali errori vengono scoperti
Abbiamo messo alla prova il controllo sugli esempi ufficiali di tutti i 89 paesi del registro. Ogni carattere è stato sostituito, uno alla volta, con ogni altra cifra e lettera; ogni coppia di caratteri è stata scambiata; abbiamo tolto e aggiunto caratteri. Il risultato:
- Tutti gli errori che la ISO 13616 garantisce di scoprire sono stati scoperti: una cifra sostituita da un’altra cifra, una lettera da un’altra lettera, un carattere non ammesso in quella posizione, due cifre o due lettere vicine scambiate, un carattere in meno o in più.
- Gli altri errori, che la norma non garantisce: una cifra sostituita da una lettera (o il contrario) in un campo che ammette entrambe, oppure due caratteri lontani scambiati. Ne viene scoperto circa il 99,6 %.
Il motivo del secondo caso è semplice. Una lettera diventa due cifre (X = 33), una cifra resta una cifra. Se in un campo misto una cifra viene sostituita da una lettera, il numero da dividere si allunga di una cifra e il controllo perde la sua garanzia: resta solo la probabilità, in teoria circa 1 su 97, che il resto sia 1 per caso.
Il caso italiano: il CIN copre il punto debole
Il numero di conto italiano ha 12 caratteri e può contenere lettere. È proprio il tipo di campo in cui il mod 97 da solo ha un punto debole. Ecco tre IBAN che si ottengono cambiando un solo carattere del conto nell’esempio ufficiale e che superano il controllo mod 97:
- IT60 X054 2811 1010 E000 0123 456: uno zero diventato E. Il CIN corretto sarebbe B.
- IT60 X054 2811 1010 000W 0123 456: uno zero diventato W. Il CIN corretto sarebbe S.
- IT60 X054 2811 1010 0000 T123 456: uno zero diventato T. Il CIN corretto sarebbe Q.
In tutti e tre i casi il quinto carattere è ancora X e non corrisponde più al CIN calcolato: la verifica segnala l’errore. È il vantaggio dei due controlli indipendenti dell’IBAN italiano. Come si calcola il CIN, con le tabelle dei valori pari e dispari, è spiegato in Codice ABI, CAB e CIN.
Un errore di battitura classico, invece, il mod 97 lo prende da solo. Se scrivi 465 invece di 456 alla fine dell’esempio, il resto diventa 50 invece di 1, e anche il CIN non torna più: dovrebbe essere Y.
Cosa il codice di controllo non può dire
- Se il conto esiste. Un IBAN può essere corretto nel calcolo e non corrispondere a nessun conto aperto.
- A chi appartiene il conto. L’IBAN valido di un’altra persona supera ogni controllo. Per questo nell’area euro le banche confrontano il nome del beneficiario con l’IBAN prima del bonifico, dal 9 ottobre 2025.
- Se la banca usa regole proprie. In Germania, per esempio, alcune banche convertono il numero di conto con regole particolari: un IBAN calcolato può essere corretto nel calcolo e diverso da quello della banca.
Per qualunque pagamento conta l’IBAN che la banca indica sull’estratto conto o nell’app. Il controllo serve a non sbagliare a copiarlo.
Funziona nel tuo browser. Quello che scrivi non viene inviato né salvato.
Controlla solo formato e cifre di controllo. Non conferma che il conto esista né chi ne sia il titolare. Fonte: registro IBAN di SWIFT, aggiornato al 17 settembre 2026. · Note legali
Incolla un IBAN nella Verifica IBAN: vedi le parti, l’esito del mod 97 e, per Italia e San Marino, quello del CIN. Il formato di ogni paese, con l’esempio ufficiale, è nella tabella lunghezza IBAN per paese.
Domande frequenti
Perché il resto deve essere proprio 1?
Perché le cifre di controllo sono costruite così: si calcola il resto con 00 e lo si sottrae da 98. Rimettendo nel numero il risultato, il resto diventa 1. Nell’esempio italiano il resto con 00 è 38, e 98 − 38 = 60.
Tutti i conti della stessa banca hanno le stesse cifre di controllo?
No. Le cifre dipendono da tutti i caratteri, compreso il numero di conto. Due conti della stessa filiale hanno in genere cifre di controllo diverse.
Posso fare il calcolo in un foglio di calcolo?
Non con una sola formula sul numero intero, che ha circa 30 cifre e supera la precisione del programma. Funziona il calcolo a pezzi mostrato sopra: 9 cifre, poi resto più 7 cifre, fino alla fine.