BBAN italiano - standard di comunicazione delle coordinate bancarie
Sommario
Introduzione
In questo articolo vengono presentati il nuovo standard
di comunicazione delle coordinate bancarie nazionali in vigore dall'1/01/2003,
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
modificare 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 Roberto Forcher e Armando Accettulli per
la discussione che ha permesso creare la sezione delle domande.
Ronni Desideri ha fornito
la versione VBA per Access dell'algoritmo.
Che cos'è il BBAN
Il BBAN (Basic Bank Account Number) è lo standard
di comunicazione delle coordinate bancarie nazionali.
Questo standard permette, all'ordinante o alla banca del
destinatario del bonifico, di verificare la correttezza del
dato grazie alla presenza del carattere di controllo. Per
l'Italia la struttura delle coordinate bancarie è
stata indicata dall'ABI (Associazione Bancaria Italiana).
Il BBAN ha una lunghezza di 23 caratteri, non può
contenere né spazi né caratteri speciali, come
trattino o barra, è composto di numeri e di lettere
maiuscole, secondo il seguente schema:
Campo |
Descrizione |
Posizione |
Composizione |
Esempio |
CIN |
carattere di controllo |
0 |
una lettera |
Q |
ABI |
codice della banca destinataria |
da 1 a 5 |
cinque cifre |
01234 |
CAB |
codice della filiale destinataria |
da 6 a 10 |
cinque cifre |
12345 |
Conto |
numero del conto bancario |
da 11 a 22 |
dodici tra lettere e cifre |
000000753XYZ |
Il primo campo del BBAN è il carattere di controllo
dell'esatta scrittura dei successivi 22 caratteri. Seguono
i codici a cinque cifre ABI e CAB. Il numero del conto
bancario è allineato a destra, ed è riempito di
zeri a sinistra per occupare tutto lo spazio di dodici
caratteri.
Nei sistemi applicativi attuali il BBAN può essere
registrato nei campi CIN, ABI, CAB e nel campo del conto
corrente.
Algoritmo di controllo del BBAN
Il BBAN deve essere una stringa di 23 caratteri, con
le posizioni numerate da 0 a 22.
Deve contenere solo lettere maiuscole dell'alfabeto
latino da A a Z e cifre da 0 a
9 . Inoltre, la posizione 0 può essere
occupata esclusivamente da una lettera, mentre le
posizioni da 1 a 10 esclusivamente da cifre.
Ogni carattere è convertito in un codice da 0 a
25 secondo la seguente regola. La cifra è
trasformata nel numero corrispondente, ad esempio
7 in 7. La lettera A si converte in 0,
B in 1, ecc., Z si converte in 25.
Viene calcolata la somma di controllo per le
posizioni da 1 a 22, in modo diverso per i posti pari e
quelli dispari. Ogni posizione pari contribuisce alla
somma con il proprio codice calcolato nel punto
precedente dell'algoritmo. Ogni posizione dispari
contribuisce con una funzione del proprio codice,
descritta nella seguente tabella:
Codice |
Contributo |
0 |
1 |
1 |
0 |
2 |
5 |
3 |
7 |
4 |
9 |
5 |
13 |
6 |
15 |
7 |
17 |
8 |
19 |
9 |
21 |
10 |
2 |
11 |
4 |
12 |
18 |
13 |
20 |
14 |
11 |
15 |
3 |
16 |
6 |
17 |
8 |
18 |
12 |
19 |
14 |
20 |
16 |
21 |
10 |
22 |
22 |
23 |
25 |
24 |
24 |
25 |
23 |
Dividendo la somma di controllo per 26, si ottiene il
resto che deve coincidere con il codice del carattere
nella posizione 0.
Esempi di controllo del codice BBAN
Esempio 1
Prendiamo in esame la stringa Q0123412345000000753XYZ .
Si seguano i passi dell'algoritmo nella seguente tabella:
Posizione |
Carattere |
Codice |
Contributo |
0 |
|
Q |
16 |
|
1 |
dispari |
0 |
0 |
1 |
2 |
pari |
1 |
1 |
1 |
3 |
dispari |
2 |
2 |
5 |
4 |
pari |
3 |
3 |
3 |
5 |
dispari |
4 |
4 |
9 |
6 |
pari |
1 |
1 |
1 |
7 |
dispari |
2 |
2 |
5 |
8 |
pari |
3 |
3 |
3 |
9 |
dispari |
4 |
4 |
9 |
10 |
pari |
5 |
5 |
5 |
11 |
dispari |
0 |
0 |
1 |
12 |
pari |
0 |
0 |
0 |
13 |
dispari |
0 |
0 |
1 |
14 |
pari |
0 |
0 |
0 |
15 |
dispari |
0 |
0 |
1 |
16 |
pari |
0 |
0 |
0 |
17 |
dispari |
7 |
7 |
17 |
18 |
pari |
5 |
5 |
5 |
19 |
dispari |
3 |
3 |
7 |
20 |
pari |
X |
23 |
23 |
21 |
dispari |
Y |
24 |
24 |
22 |
pari |
Z |
25 |
25 |
La stringa è composta di 23 caratteri, contiene
solo lettere maiuscole Q , X , Y , Z e cifre.
Al CIN Q corrisponde il codice 16
coincidente con il resto della divisione della somma di
controllo 146 per 26. Quindi questo codice BBAN è corretto.
Esempio 2
Analizziamo ora Q 01234 12345 000000753XYZ .
La lunghezza è di 26 caratteri, quindi è errata.
Inoltre, questa stringa contiene alcuni spazi.
Esempio 3
La stringa Q012341234500000753/XYZ contiene un
carattere speciale / , quindi è errata.
Esempio 4
Consideriamo la stringa B0123412345000000753XYZ .
Questo esempio è identico al primo, ad eccezione del CIN B .
A questo carattere corrisponde il codice 1 che non coincide
con il resto della divisione della somma di controllo per 26.
Quindi il codice di controllo è errato.
Programma per controllare il BBAN
Qui di seguito si trovano una maschera di controllo
e l'esempio del programma
che realizza l'algoritmo di controllo delle coordinate bancarie.
Per verificare l'esattezza delle coordinate bancarie,
inserite la stringa nel seguente campo e cliccate sul pulsante Verifica .
Domande più frequenti e risposte
-
Ci servirebbe sapere l'algoritmo per il calcolo
del CIN bancario, avendo a disposizione CAB, ABI e
numero del conto corrente (12 caratteri).
Seguendo i passi 3, 4 e 5 dell'algoritmo
si ricava il codice di controllo (un numero da 0 a 25) dalle posizioni 1-22
del BBAN (cioè dalla stringa di ABI, CAB e numero del conto concatenati).
È sufficiente convertire questo codice in CIN (lettera da A a Z).
Nel primo esempio viene ottenuto il codice 16 al quale corrisponde il CIN Q.
Non ritengo molto utile ricavare CIN da ABI, CAB e
conto dalle coordinate bancarie del vecchio formato (si
veda la domanda più avanti).
-
Quando diventa obbligatorio l'utilizzo dello standard BBAN?
In Italia lo standard BBAN è in vigore dall'1/01/2003.
Dal 16/06/2003 è diventato obbligatorio l'uso del numero del conto solo
alfanumerico, di lunghezza 12 e riempito da sinistra con gli zeri.
A breve termine sarà obbligatorio l'uso del CIN (carattere di controllo).
Da quel momento si potrà dire che lo standard BBAN è obbligatorio.
-
Nel nostro database abbiamo le coordinate
bancarie dei clienti nel vecchio formato: quasi tutte senza CIN
e il numero del conto corrente contiene barre ed altri simboli speciali.
Come possiamo convertire automaticamente le coordinate bancarie
dal vecchio formato nel BBAN?
In nessun modo. Bisogna richiedere ai clienti le
coordinate bancarie nel nuovo formato.
È l'Istituto di credito che ha la competenza di fornire le nuove coordinate.
Alcune banche infatti non si limitano ad eliminare le barre e trattini dal numero
del conto riempendolo con gli zeri a sinistra, ma sostituiscono qualche cifra.
-
Esiste un esempio di un numero di conto corrente per il quale,
dalla nostra applicazione, dal suo programma e da vari siti internet bancari,
il CIN di verifica risulta essere L, mentre la banca destinataria del versamento,
nonché il titolare del conto e la nostra banca che effettua il versamento
affermano che il codice è I.
Non è la prima volta che mi vengono segnalate anomalie di questo tipo.
Ho notato che il BBAN e il rispettivo IBAN formalmente errati diventano corretti
sostituendo un carattere (non necessariamente nel CIN) con uno che gli somiglia
come scrittura, ad esempio 8 con B.
Anche nel vostro esempio, secondo me, esiste una confusione tra
l (L minuscolo di Livorno) e I (I maiuscolo di Imola).
Secondo me in alcune banche il codice BBAN viene prodotto o copiato a mano.
|