| Calcolo e verifica del codice IBAN |
| con ricerca di informazioni sugli sportelli bancari |
| Copyright 2008 Giuliano Artico |
| Dipartimento di Matematica Pura e Applicata |
| Via Trieste 63, 35121 Padova, Italy |
| Scrivi all'autore - Tel. 049/8271409 |
Modulo per segnalazioni sul database degli sportelli bancari
Il programma IBAN.EXE serve principalmente per calcolare il codice IBAN italiano a partire dalle coordinate bancarie e per verificare la correttezza di un codice IBAN italiano già conosciuto. Si può anche controllare un elenco di dati di lunghezza arbitraria.
Come funzione accessoria, il programma IBAN.EXE offre la possibilità di eseguire la ricerca dei codici ABI e CAB, visualizzando le informazioni dello sportello corrispondente, o viceversa di cercare uno sportello, ad esempio conoscendone l'indirizzo o il numero di telefono. Queste ricerche sono basate sui dati contenuti nel file accluso IBAN.DAT (v. paragrafo 6).
La verifica del codice IBAN svolta con un applicativo autonomo, non collegato alla rete, ha il pregio di assicurare la totale riservatezza dei propri dati. Com'è noto, esistono svariati moduli on-line che svolgono egregiamente la stessa operazione. Si raccomanda di utilizzare solo servizi sicuri e qualificati, come ad esempio quelli offerti dalla propria banca, perché altrimenti si corre il rischio di esporre dati riservati ad un uso potenzialmente illecito da parte di sconosciuti.
Nota bene. Il programma IBAN.EXE può solo controllare la coerenza formale del codice IBAN, mentre l'assegnazione del numero di conto corrente e l'abbinamento di questo con l'intestatario sono funzioni riservate che riguardano unicamente il rapporto esistente fra l'interessato e la banca e non possono quindi essere verificate al di fuori di essa.
Si osservi che tale archivio autoestraente è generato con RAR in ambiente MS-DOS e che, se avviato in ambiente Windows, esso presuppone che il calcolatore funzioni con diritti di amministratore. Infatti, come impostazione normale, viene generata una nuova directory di nome IBAN nella radice dell'unità C:. Si può facilmente indicare una directory diversa scegliendo la voce Directory destinazione del menu iniziale presentato durante l'autoestrazione.
IBAN.EXE è un programma di tipo «console», cioè con interfaccia testuale. Il suo funzionamento richiede unicamente il file eseguibile IBAN.EXE che può essere avviato, indicando gli opportuni parametri, tanto in ambiente MS-DOS quanto in ambiente Windows, sia al prompt dei comandi sia nella finestra «Esegui». Conviene copiare il file IBAN.EXE in una cartella che sia inclusa nel path di sistema. Nella stessa cartella si deve pure copiare il file IBAN.DAT, qualora si intenda avvalersi delle funzioni di ricerca previste dal programma.
Gli altri file acclusi costituiscono la documentazione e non influiscono sul funzionamento.
Questo manuale, oltre alle istruzioni essenziali per l'uso del programma, contiene la descrizione degli algoritmi ufficiali usati per calcolare i codici di controllo presenti nel codice IBAN (CIN e check digit).
Per estrarre i file, una volta avviato l'archivio di installazione, basta premere due volte la freccia in giù, quindi il tasto Invio e infine il tasto Esc.
Comunque, per aggirare ogni ostacolo, è sufficiente avviare un software di archiviazione (WinRAR o WinZIP) e decomprimere con esso l'archivio di installazione. Se nel calcolatore è installato WinRAR, si può selezionare l'archivio da Risorse del computer, premere il tasto applicazioni (tasto destro del mouse) e quindi scegliere dal sottomenu WinRAR una delle voci di estrazione.
Le difficoltà suddette riguardano esclusivamente l'archivio di installazione: tutte le funzioni del programma IBAN.EXE sono interamente controllate da parametri da riga di comando, senza alcuna modalità interattiva.
Alcune opzioni regolano il formato dei risultati a schermo (v. i paragrafi 3.3 e 3.6). Tale uscita può essere reindirizzata verso un file o con il «piping».
Se non si indica alcun parametro, oppure se si specifica uno dei parametri «?» o «/H», viene presentata una schermata di aiuto.
Notare che, nell'immettere un codice da riga di comando, è possibile indicare spazi vuoti a piacere per migliorare la leggibilità di ciò che si sta scrivendo.
Per il formato dei dati immessi sono previste tre possibilità. In sintesi, la prima di esse serve per verificare la correttezza di un codice IBAN completo che già si conosce, mentre le altre due vanno adoperate per determinare il codice IBAN a partire dalle coordinate bancarie (ABI, CAB, numero di conto).
iban.exe IT59M0123409876000000283746Il programma esamina il codice e fornisce un rapporto sulla sua esattezza evidenziando, se necessario, eventuali errori presenti nel CIN o nel codice numerico di controllo (v. paragrafo 5).
iban.exe 01234 09876 000000283746Il programma calcola il CIN e il codice numerico di controllo e visualizza il codice IBAN risultante. Come nel caso 1, tutti i caratteri, inclusi gli zeri, devono essere indicati con precisione, aggiungendo solo eventuali spazi per migliorare la leggibilità della stringa immessa.
iban.exe 1234, 9876, 283746In questo caso i tre dati devono essere separati con un carattere da scegliere a piacere fra i seguenti:
, ; : +
Ad esempio, il comando mostrato sopra equivale al seguente:
iban.exe 1234 + 9876 + 283746Qui non occorre scrivere gli zeri iniziali che, in caso di necessità, vengono aggiunti dal programma. Si deve comunque rispettare la lunghezza massima dei singoli dati, che è rispettivamente di cinque, cinque e dodici caratteri. Come nel caso 2, il programma calcola il CIN e il codice numerico di controllo e visualizza il codice IBAN risultante.
Per ciascuna riga del file viene presentato in uscita il risultato in forma concisa in un'unica riga, con l'indicazione della relativa diagnosi. Per il formato dei dati di uscita v. il paragrafo 3.4.
Ogni riga del file in ingresso può contenere un commento iniziato dal carattere «#». Precisamente, tutto ciò che si trova a destra di «#», incluso tale carattere, viene ignorato nella fase di elaborazione.
Al termine dell'elaborazione il programma fornisce una relazione sul numero di record (elaborati, esatti, dubbi, errati).
Esempio. Supponiamo che l'ambiente di lavoro sia il prompt di Windows XP e che il file con i dati si chiami File dei dati.txt. Il seguente comando elabora il contenuto del file e mostra i risultati sullo schermo:
iban.exe <"File dei dati.txt"Se invece vogliamo riversare i risultati nel file di nome File risultati.txt, allora eseguiremo il comando seguente:
iban.exe <"File dei dati.txt" >"File risultati.txt"Volendo integrare i risultati con le informazioni sugli sportelli bancari, il comando precedente va modificato come segue:
iban.exe <"File dei dati.txt" >"File risultati.txt" /i
iban.exe 1234, 9876, 283746 /bNotare che quando l'uscita viene reindirizzata non compare alcuna scritta sullo schermo e pertanto, in questo caso, l'opzione «/B» è ininfluente perché il programma termina sempre senza la richiesta di premere un tasto.
Notare che il numero dei campi varia a seconda della presenza o meno delle opzioni «/C» e «/I».
Il normale formato dei record di uscita è costituito da campi separati dal carattere Tab.
Se invece si specifica l'opzione «/F», i campi risultano di lunghezza fissa, come specificato nel prospetto sottostante (la lunghezza è netta, cioè non è conteggiato il carattere di separazione «|» usato in questo caso).
| CAMPO | LUNGHEZZA | PRESENZA | DESCRIZIONE |
|---|---|---|---|
| IBAN | 33 | sempre | Codice IBAN immesso |
| OK | 3 | sempre | Correttezza dato immesso |
| DIAGNOSI | 21 | sempre | Diagnosi errore con rettifiche |
| INFO | 150 | con /I | Informazioni sullo sportello |
| COMMENTO | 33 | con /C | Trascrizione eventuale commento |
| CR/LF | 2 | sempre | Sequenza di ritorno a capo |
iban.exe abi, cab [/B] [/V]Esempi:
iban.exe 1234, 12100 iban.exe 1234, 12100 /b
iban.exe [/B] [/Q] /S[stringa1[, stringa2[, ...]]]In breve, l'idea è di cercare i record nei quali sono presenti certe parole (anche pezzi di parola o frasi). Verranno individuati i record che contengono tutte le parole richieste.
Le parole vanno indicate nella riga di comando a destra dell'opzione «/S», separate da una virgola (o da uno degli altri caratteri di separazione ammessi «;», «:» e «+») e possono essere in numero a piacere.
Alcuni esempi di possibili comandi di ricerca:
iban.exe /s milano, cassa di risp iban.exe /s049 123456 iban.exe /b /s 049, piazza, popolare iban.exe /sbanca d'italia >risulta.txtNotare che altre opzioni eventualmente presenti devono precedere l'opzione «/S», perché altrimenti esse verrebbero considerate come parte delle parole da cercare.
Se l'ambiente di lavoro è MS-DOS oppure il prompt di Windows, la variabile di ambiente va impostata con un comando come il seguente (utilizzando eventualmente un file batch), dove le opzioni desiderate vanno scritte a destra del carattere «=»:
set iban_opz=/b/i/cSe invece i comandi vengono eseguiti usando la finestra «Esegui» di Windows, la variabile si imposta mediante il seguente percorso:
Pannello di controllo —> Sistema —> Avanzate —> Variabili di ambiente
Il codice CAB (Codice di Avviamento Bancario) è una stringa numerica di cinque cifre che identifica, all'interno dell'istituto di credito, una determinata agenzia o filiale.
Il numero di conto corrente è una stringa di dodici caratteri (cifre, lettere, «-» e «.») che identifica il conto corrente all'interno della filiale.
Le tre stringhe sopra descritte devono essere completate con zeri iniziali qualora esse non raggiungano la lunghezza prescritta.
Il codice CIN (Control Internal Number) è un carattere alfabetico maiuscolo, calcolato con un certo algoritmo a partire dai codici suddetti (ABI, CAB, conto corrente). Lo scopo di questo carattere è di offrire una possibilità di verifica sull'esattezza delle altre informazioni. In sostanza, se il CIN risulta diverso da quello atteso, significa che è avvenuto un errore nella trascrizione dei dati. Quindi, malgrado il CIN non sia indispensabile nell'identificazione di un conto, esso è molto utile per il controllo degli errori. Il suo ruolo è del tutto analogo a quello del sedicesimo carattere nel codice fiscale.
Il codice BBAN (Basic Bank Account Number) è un codice internazionale che contiene le coordinate bancarie nazionali. In Italia esso è lungo 23 caratteri ed è costituito dal semplice accostamento di CIN, ABI, CAB e conto corrente.
Il codice IBAN (International Bank Account Number) è stato sviluppato per identificare i conti bancari in contesto internazionale. Esso è definito in base a criteri internazionali, ma qualche suo elemento può essere definito secondo regole nazionali. Per informazioni complete sull'argomento, v. il seguente file, la cui stesura è curata dall'ECBS (European Committee for Banking Standards):
http://www.ecbs.org/Download/TR201v3.12.pdfIn Italia il codice IBAN è costituito da una stringa di 27 caratteri, nell'ordine da sinistra a destra:
Nel calcolo del check digit si suppone che siano noti i codici ABI e CAB, il numero di conto corrente e il CIN, con i quali si costruisce il codice BBAN (v. paragrafo 4). Per determinare il check digit si procede come descritto qui di seguito.
Scorrendo questa stringa da sinistra a destra, ogni carattere occupa in essa una posizione che è considerata dispari (caratteri primo, terzo, quinto, eccetera) oppure pari (caratteri secondo, quarto, sesto, eccetera). A ciascun carattere si attribuisce un «peso», ricavato dall'una o dall'altra successione in base al criterio di parità, e tutti questi pesi vengono sommati.
Conviene chiarire il procedimento con un esempio.
Si prende il primo carattere, che di solito è numerico, ma in teoria potrebbe essere alfabetico. Se il carattere è 0 oppure A, gli si assegna come peso 1 (primo elemento della successione per le posizioni dispari), se è 1 oppure B gli si assegna il peso 0 (secondo elemento), se è 2 oppure C il peso 5 (terzo elemento) e così via.
Ciò fatto, si passa al secondo carattere della stringa e qui entra in gioco la successione per le posizioni pari. Quindi si assegna il peso 0 se il carattere è0 oppure A, il peso 1 se è 1 oppure B, il peso 2 se è 2 oppure C, eccetera.
Passando al terzo carattere si riprende la successione per le posizioni dispari e si procede fino a esaurire tutti i caratteri della stringa, alternando l'uso delle due successioni.
I pesi via via ottenuti vengono sommati e il risultato di questa somma viene diviso per 26, prendendo il resto di tale divisione.
In conclusione, il codice CIN è il carattere alfabetico che ha la posizione corrispondente a tale resto, cominciando a contare da 0, vale a dire A corrisponde a 0, B corrisponde a 1, C corrisponde a 2 e così via fino a Z che corrisponde a 25.
Pur dichiarandoli validi, il programma IBAN.EXE considera dubbi i codici di questo tipo e segnala l'incongruenza visualizzando il codice rettificato in conformità alle regole ufficiali.
Se si presenta una situazione come quella descritta, è consigliabile fare una verifica presso la banca, che comunque ha ogni titolo per convalidare il codice rilasciato.
Poiché le informazioni sugli sportelli bancari subiscono continue revisioni, in futuro conto di fornire con periodicità trimestrale il file IBAN.DAT aggiornato, sempre grazie alla collaborazione di Luigi Fersini. Il file si chiamerà IBAN.ZIP e sarà reperibile nella stessa collocazione in cui si trova l'archivio principale del programma IBAN.
Desidero inoltre ringraziare in modo particolare mio cognato Carlo per aver condotto una lunga e accurata serie di prove. I suoi rilievi e i suoi suggerimenti hanno contribuito a migliorare questo programma, rendendolo più efficiente e completo.
Sono state apportate due modifiche riguardanti il funzionamento con reindirizzamento dell'input (modo multiplo, paragrafo 3.2):
Giuliano Artico, Dip. di Matematica P.A. - PadovaAttenzione! Le copie prive dell'informazione di autenticità sono sicuramente alterate e non devono essere assolutamente usate.
Sono disponibili per il download i file seguenti:
Chi desidera segnalare eventuali inesattezze presenti nel database degli sportelli bancari può inviare i dati rettificati usando l'apposito modulo.