BBAN italiano – standard di comunicazione delle coordinate bancarie

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 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: arodichevski@gmail.com.

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:

CampoDescrizionePosizioneComposizioneEsempio
CINcarattere di controllo0una letteraQ
ABIcodice della banca destinatariada 1 a 5cinque cifre01234
CABcodice della filiale destinatariada 6 a 10cinque cifre12345
Contonumero del conto bancarioda 11 a 22dodici tra lettere e cifre000000753XYZ

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

  1. Il BBAN deve essere una stringa di 23 caratteri, con le posizioni numerate da 0 a 22.
  2. 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.
  3. 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.
  4. 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:
    CodiceContributo
    01
    10
    25
    37
    49
    513
    615
    717
    819
    921
    102
    114
    1218
    1320
    1411
    153
    166
    178
    1812
    1914
    2016
    2110
    2222
    2325
    2424
    2523
  5. 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:

PosizioneCarattereCodiceContributo
0Q16
1dispari001
2pari111
3dispari225
4pari333
5dispari449
6pari111
7dispari225
8pari333
9dispari449
10pari555
11dispari001
12pari000
13dispari001
14pari000
15dispari001
16pari000
17dispari7717
18pari555
19dispari337
20pariX2323
21dispariY2424
22pariZ2525

La stringa è composta di 23 caratteri, contiene solo lettere maiuscole QXYZ 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.

Domande più frequenti e risposte

  1. 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).

  2. 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.

  3. 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.

  4. 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.

Un commento su “BBAN italiano – standard di comunicazione delle coordinate bancarie

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *