Come Funziona la Validazione IBAN (e Come Trovare un Errore Prima di un Bonifico)
Un IBAN si convalida con un calcolo aritmetico, non con un elenco di conti esistenti: si riorganizza la stringa, si trasformano le lettere in numeri e si verifica che il risultato diviso per 97 dia resto 1. Se il resto è diverso da 1, in quell’IBAN c’è sicuramente un errore di battitura, anche se a occhio sembra plausibile.
Cosa contiene davvero un IBAN
Un IBAN (International Bank Account Number) non è una sequenza casuale di lettere e numeri: ogni blocco ha un significato preciso.
- Codice paese: due lettere ISO 3166-1, ad esempio
DEper la Germania oITper l’Italia. - Cifre di controllo: due cifre subito dopo il codice paese, calcolate con il metodo MOD-97 che vediamo tra poco.
- BBAN (Basic Bank Account Number): il resto della stringa, che contiene codice banca, eventuale codice filiale e numero di conto. Il formato del BBAN cambia da paese a paese: in Italia comprende anche un CIN alfabetico, in Germania è puramente numerico.
Una confusione frequente è mettere sullo stesso piano IBAN e BIC/SWIFT. Sono due cose diverse: il BIC identifica la banca (è come il nome dell’istituto scritto in codice), mentre l’IBAN identifica il singolo conto corrente all’interno di quella banca. Per un bonifico SEPA di solito basta l’IBAN, ma per bonifici extra-UE le banche spesso chiedono ancora il BIC accanto.
Va detto anche un’altra cosa, perché è la fonte di più equivoci: un IBAN che supera il checksum è matematicamente ben formato, ma questo non dimostra che il conto esista davvero o che appartenga alla persona che te lo ha fornito. Solo la banca ricevente, nel momento in cui elabora il bonifico, può confermare che il conto è attivo e intestato a chi dici tu. Il controllo che vediamo qui serve a scartare in anticipo gli errori di trascrizione, non a verificare l’identità del beneficiario.
Il checksum MOD-97, passo dopo passo
Prendiamo l’IBAN tedesco DE89 3704 0044 0532 0130 00, l’esempio che viene usato quasi ovunque nella documentazione ISO 13616 perché è compatto e facile da seguire a mano.
Passo 1: rimuovi gli spazi e sposta i primi 4 caratteri in fondo.
I primi quattro caratteri sono DE89. Il resto della stringa, senza spazi, è 370400440532013000. Mettendo DE89 dopo, si ottiene:
370400440532013000DE89
Passo 2: converti ogni lettera in un numero.
La regola è A=10, B=11, C=12 e così via fino a Z=35. Quindi D diventa 13 ed E diventa 14. La stringa riorganizzata si trasforma in un numero a 24 cifre:
370400440532013000131489
Passo 3: calcola il resto della divisione per 97.
Ecco il calcolo riassunto in tabella, con il criterio richiesto dalla norma:
| Passaggio | Valore |
|---|---|
| Stringa originale | DE89 3704 0044 0532 0130 00 |
| Riorganizzata (primi 4 caratteri in fondo) | 370400440532013000DE89 |
| Lettere convertite in numeri (D=13, E=14) | 370400440532013000131489 |
| Numero mod 97 | 1 |
| Esito | Valido (la norma ISO 13616 richiede resto = 1) |
Il resto è esattamente 1, quindi l’IBAN è valido. Se preferisci vederlo cifra per cifra invece che come un unico numero enorme, puoi scorrere la stringa da sinistra a destra applicando la formula resto = (resto * 10 + cifra) mod 97 a ogni passaggio: il risultato finale, dopo aver processato tutte e 24 le cifre, è comunque 1.
Ora vediamo cosa succede con un solo errore di battitura. Immagina di dover ricopiare l’IBAN a mano e di sbagliare l’ultima cifra, scrivendo DE89 3704 0044 0532 0130 01 invece di ...0130 00 (uno 0 finale diventato 1). Ripetendo esattamente gli stessi tre passaggi:
| Passaggio | Valore |
|---|---|
| Stringa con errore | DE89 3704 0044 0532 0130 01 |
| Riorganizzata | 370400440532013001DE89 |
| Convertita | 370400440532013001131489 |
| Numero mod 97 | 28 |
| Esito | Non valido (resto ≠ 1) |
Una sola cifra sbagliata basta a far saltare il checksum: il resto passa da 1 a 28, e uno strumento di validazione segnala l’IBAN come errato ancora prima che il bonifico venga inviato. Questo è esattamente il motivo per cui il MOD-97 esiste: quasi ogni cifra digitata male, invertita o omessa cambia il resto e viene intercettata subito, invece di scoprirla giorni dopo perché il bonifico è tornato indietro o è finito sul conto sbagliato.
Controlla il tuo IBAN
Incolla un IBAN qui sotto per vedere il checksum applicato in tempo reale, senza fare i calcoli a mano:
Errori comuni
Pensare che qualsiasi stringa plausibile sia un IBAN valido. La lunghezza totale non è libera: ogni paese ha una lunghezza fissa, definita insieme al formato del BBAN. La Germania usa 22 caratteri, la Francia e l’Italia ne usano 27, mentre la Norvegia ha l’IBAN più corto in assoluto, con soli 15 caratteri.
| Paese | Codice | Lunghezza IBAN |
|---|---|---|
| Germania | DE | 22 |
| Francia | FR | 27 |
| Italia | IT | 27 |
| Norvegia | NO | 15 |
Una stringa che rispetta il formato generale (due lettere seguite da numeri) ma ha la lunghezza sbagliata per quel paese non è un IBAN valido, indipendentemente dal checksum.
Confondere l’IBAN con il codice BIC/SWIFT. Sono due identificatori diversi che a volte servono entrambi per lo stesso bonifico internazionale: l’IBAN individua il conto, il BIC individua la banca. Copiare il BIC al posto dell’IBAN (o viceversa) nel campo sbagliato di un modulo di bonifico è un errore più comune di quanto sembri, soprattutto quando entrambi i codici arrivano insieme in un’email o su una fattura.
Credere che un checksum superato dimostri che il conto esiste. Come accennato sopra, il MOD-97 verifica solo che il numero sia matematicamente coerente con le regole della norma. Non contatta nessuna banca, non consulta nessun database di conti reali. Un IBAN inventato ma costruito con attenzione al checksum può risultare “valido” per lo strumento pur non corrispondendo a nessun conto esistente.
Confondere lettere e numeri simili quando si ricopia a mano. La O maiuscola e lo 0, oppure la I maiuscola, la l minuscola e l’1, si assomigliano molto in certi caratteri tipografici. Nella parte BBAN di diversi paesi le lettere sono perfettamente legittime (non è un errore di per sé usarle), quindi il problema non è che compaiano lettere: è che ricopiandole a mano è facile scambiarne una con il numero che le somiglia, ed è proprio questo tipo di errore che il checksum è pensato per intercettare.
Domande frequenti
Cos’è il MOD-97? È il metodo di controllo definito dalla norma ISO 7064 (mod 97-10) e adottato dalla norma ISO 13616 per gli IBAN. Consiste nel riorganizzare l’IBAN spostando i primi quattro caratteri in fondo, convertire le lettere in numeri e verificare che il numero risultante, diviso per 97, dia resto 1.
Se il checksum è corretto, vuol dire che il conto esiste ed è intestato alla persona giusta? No. Il checksum verifica solo la struttura matematica del numero, non l’esistenza del conto né l’identità del titolare. Quella verifica può farla solo la banca ricevente al momento dell’elaborazione del bonifico. Per questo, quando l’importo è rilevante, molte banche offrono anche un controllo di corrispondenza tra IBAN e nome del beneficiario prima di confermare il pagamento.
Perché ogni paese ha una lunghezza IBAN diversa? Perché ogni paese ha definito il proprio formato di BBAN prima che l’IBAN diventasse uno standard internazionale, includendo campi diversi (codice filiale, codice di controllo interno, lunghezza del numero di conto storico) a seconda di come erano già organizzati i sistemi bancari nazionali. L’IBAN aggiunge solo il prefisso paese e le due cifre di controllo sopra un formato nazionale già esistente, quindi eredita quella variabilità.
Questo controllo individua davvero ogni possibile errore di digitazione? Nella pratica sì, per la stragrande maggioranza dei casi: un singolo carattere sbagliato, due cifre invertite per errore, una cifra omessa o duplicata quasi sempre cambiano il resto della divisione per 97 e vengono scartati. Ma non è una garanzia matematica assoluta al 100%: in teoria esiste un errore sistematico (ad esempio lo scambio di posizione tra due cifre che, per una coincidenza aritmetica, lascia invariato il resto) che potrebbe passare inosservato. Questi casi sono estremamente rari nella pratica quotidiana, ed è comunque buona norma controllare anche il nome del beneficiario prima di confermare un bonifico importante.