IBAN - standard di comunicazione delle coordinate bancarie internazionali
Sommario
Introduzione
In questo articolo vengono presentati il nuovo standard di comunicazione delle coordinate
bancarie internazionali, l'algoritmo di controllo delle coordinate
corredato da alcuni esempi, una
maschera per il controllo in linea
e il programma in JavaScript che
realizza l'algoritmo.
È disponibile anche la versione del programma
in PL/SQL di Oracle.
L'articolo è rivolto ai programmatori che devono
adattare i sistemi informativi aziendali in modo che tali
sistemi recepiscano questo nuovo standard. Sono graditi
commenti e domande che è possibile inviare al seguente indirizzo e-mail:
alexandre.rodichevski@chiappani.it.
In fondo a questa pagina si possono trovare le domande frequenti.
Si ringraziano i signori Loris Muraro, Franco Brigiotti, Riccardo Ragusa e Gianni Gori
per la discussione che ha permesso di creare la sezione delle domande e perfezionare l'algoritmo.
Il signor Alain Dumont (Belgio) ha prodotto una pagina HTML
con alcuni miglioramenti: IBAN viene introdotto in blocchi di 4 caratteri
(formato di stampa); il controllo viene effettuato per una lista di paesi.
Che cos'è l'IBAN
L'IBAN (International Bank Account Number) è lo standard di comunicazione
delle coordinate bancarie internazionali, proposto da ECBS
(European Committee for Banking Standards).
Questo standard permette, all'ordinante o alla
banca del destinatario del bonifico, di verificare la
correttezza del dato grazie alla presenza del numero di
controllo. L'IBAN ha una lunghezza che dipende dalla
nazione, con un massimo di 34 caratteri, non può
contenere né spazi né caratteri speciali, come
trattino o barra, è composto di numeri e di lettere
maiuscole, secondo il seguente schema:
Descrizione |
Posizione |
Composizione |
Esempio |
Sigla nazione |
0 e 1 |
due lettere |
IT |
Numero di controllo |
2 e 3 |
due cifre |
60 |
BBAN della nazione |
da 4 alla fine |
lettere e cifre |
Q0123412345000000753XYZ |
Le coordinate bancarie italiane occupano 27 caratteri:
sigla IT , due cifre di controllo e
BBAN italiano.
L'IBAN considerato fino a questo punto aveva il
formato elettronico o di base , così
chiamato per distinguere da quello di stampa .
Quest'ultima può contenere gli spazi per facilitare la lettura del dato,
come nell'esempio: IT60 Q012 3412 3450 0000 0753 XYZ .
Secondo una risoluzione dell'European Payments Council, dall'1 gennaio 2007 le banche europee richiedono,
per le operazioni di pagamento internazionali, l'indicazione dell'IBAN e del codice BIC (Bank Identifier Code) del beneficiario.
Algoritmo di controllo dell'IBAN
L'IBAN deve essere una stringa costituita di almeno 5 caratteri.
Deve contenere solo lettere maiuscole dell'alfabeto
latino da A a Z e cifre da 0 a 9 .
Inoltre, le posizioni 0 e 1 possono essere
occupate esclusivamente da una sigla valida ISO del
paese, mentre le posizioni 2 e 3 da un numero.
I primi quattro caratteri della stringa originale
vengono scambiati con il resto.
Ogni carattere è convertito in un codice da 0 a
35 secondo la seguente regola.
La cifra è trasformata nel numero corrispondente,
ad esempio 7 in 7.
La lettera A si converte in 10, B in 11, ecc., Z si converte in 35.
Dai numeri così ottenuti viene composta una nuova stringa numerica.
La stringa numerica viene interpretata ora come un numero.
Dividendolo per 97, si dovrebbe ottenere come resto 1.
Per facilitare la divisione dei numeri
eccessivamente lunghi, è possibile spezzare la
stringa numerica in parti più piccole e calcolare il
resto della divisione della prima parte per 97, poi
comporre nuova stringa numerica dal resto della divisione
e dal secondo pezzo e dividere questo numero per 97, etc.
Esempi di controllo dell'IBAN
Esempio 1
Prendiamo in esame la stringa IT60Q0123412345000000753XYZ .
Si seguano i passi dell'algoritmo:
È una stringa di 27 caratteri.
Contiene solo lettere maiuscole e cifre.
Le posizioni 0 e 1 sono occupate dalle lettere IT , mentre le
posizioni 2 e 3 sono costituite dal numero 60 .
Scambiando i primi quattro caratteri con il resto, si
ottiene Q0123412345000000753XYZIT60 .
Convertendo nella stringa numerica, a Q
corrisponde 26 , a 0 corrisponde 0 , a
1 corrisponde 1 , ecc.
Il risultato finale è 260123412345000000753333435182960 .
Spezziamo la stringa numerica in cinque parti da
almeno otto caratteri: 26012341 , 23450000 ,
00753333 , 43518296 e 0 .
Il resto della divisione di 26012341 per 97 è 45.
Il resto della divisione di 4523450000 per 97 è 15.
Il resto della divisione di 1500753333 per 97 è 82.
Il resto della divisione di 8243518296 per 97 è 68.
Il resto della divisione di 680 per 97 è 1.
Quindi il resto della divisione è 1.
Questo codice IBAN è corretto.
Esempio 2
Analizziamo ora IT60 Q012 3412 3450 0000 0753 XYZ .
Questa stringa contiene alcuni spazi (avendo il
formato di stampa), quindi l'IBAN è errato.
Esempio 3
La stringa IT60Q012341234500000753/XYZ contiene
un carattere speciale / , quindi l'IBAN è errato.
Esempio 4
Consideriamo la stringa IT63Q0123412345000000753XYZ .
Questo esempio è identico al primo, ad eccezione del numero di controllo 63 .
La stringa numerica è 260123412345000000753333435182963 .
Il resto della divisione di questo numero per 97 è 4.
Quindi l'IBAN è errato.
Programma per controllare l'IBAN
Qui di seguito si trovano una maschera di controllo
e l'esempio del programma
che realizza l'algoritmo di controllo
delle coordinate bancarie internazionali.
Per verificare l'esattezza delle coordinate bancarie,
inserite la stringa nel seguente campo e cliccate sul
pulsante Verifica .
Domande più frequenti e risposte
-
Come si fa a calcolare le due cifre di controllo
dell'IBAN?
Si forma un codice IBAN provvisorio composto di:
sigla della nazione, due zeri, codice BBAN. Viene
calcolato il resto della divisione come è
descritto nell'algoritmo.
Infine, gli zeri del codice di controllo vengono
sostituiti con (98 - resto) mod 97. Ad esempio, se il
resto è 0, il codice di controllo diventa 01, se
il resto è 1, il codice rimane 00, se il resto
è 2, il codice diventa 96.
A mio avviso, è inutile calcolare il codice di
controllo. Infatti, per controllare l'esattezza del
IBAN è sufficiente l'operazione inversa.
La formazione del codice IBAN invece è compito esclusivo
degli istituti di credito, come è descritto nel sito di ECBS.
-
Visto che il codice IBAN cambia la sua lunghezza
a seconda della nazione, per l'algoritmo di controllo
mi debbo comportare sempre allo stesso modo anche se il
codice è per esempio svizzero?
L'algoritmo di validazione dell'IBAN è uguale per tutte le nazioni.
Tuttavia, è possibile rafforzarlo controllando anche la lunghezza che dipende dalla nazione:
si veda l'esempio che ha prodotto il signor Alain Dumont (Belgio).
-
Possono esistere due codici di controllo IBAN
(ad esempio, 01 e 98) entrambi corretti?
Possono esistere casi in cui due codici
IBAN differenti solo nel codice di controllo siano
entrambi corretti. Questo è dovuto al fatto che
l'algoritmo di validazione mette il codice di controllo
alla fine della stringa numerica. I numeri che
finiscono con 00 o 97, 01 o 98, 02 o 99 hanno entrambi
lo stesso resto dividendo per 97.
Risorse
- IBAN nel sito di European Committee for Banking Standards.
http://www.ecbs.org/iban.htm
|