Calcolo e verifica del codice IBAN
|
Copyright 2008-2015 Giuliano Artico
|
Guida all'uso del programma |
IMPORTANTE
Si dà per scontato che, prima di iniziare a servirsi del programma
WinIban, ogni utilizzatore prenda visione della
licenza
per la distribuzione e l'uso ed accetti e rispetti integralmente le norme in essa contenute. Chi è in disaccordo anche con una sola delle condizioni deve rinunciare a qualunque impiego di questo software.
1. Introduzione
Il codice IBAN (International Bank Account Number) è una codifica internazionale che identifica ciascun conto bancario e che, a partire dal 2008, deve essere usata per le operazioni di pagamento. In esso sono riunite le coordinate bancarie (ABI, CAB, numero di conto corrente) con l'aggiunta di due codici di controllo (CIN e check digit).
Il programma WinIban serve per calcolare il codice IBAN italiano a partire dalle coordinate bancarie e per verificare la correttezza formale di codici IBAN italiani già conosciuti. Si può controllare un elenco di dati di lunghezza arbitraria.
Questo manuale, oltre alle istruzioni essenziali per l'uso del programma, contiene la descrizione degli algoritmi ufficiali usati per calcolare CIN e check digit [¶4].
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, in particolare 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 WinIban 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.
Torna al sommario.
2. Prelievo e installazione
Il programma
WinIban può essere usato, copiato e distribuito gratuitamente, purché vengano accettate e rispettate rigorosamente tutte le condizioni specificate nella
licenza.
La pagina Internet del programma WinIban è:
https://www.artico.name/soft/iban/
Per installare il programma svolgere le seguenti operazioni:
-
prelevare
l'archivio di installazione,
detto anche file di setup;
-
avviare l'installazione con un doppio click o Invio sul file di setup;
-
leggere e accettare la licenza (doppio click su Accetta);
-
scegliere la cartella di installazione desiderata, dove verranno posti i file del programma, e premere Installa.
-
Al termine si apre una finestra informativa. Premere un tasto qualsiasi per concludere l'installazione.
Importante.
Se si altera l'impostazione predefinita per la cartella di installazione, il setup richiede che sia specificata esplicitamente la cartella contenitore per i file del programma.
Scegliere una cartella nuova oppure la cartella di una precedente installazione di WinIban e in ogni caso evitare le cartelle contenenti altro materiale, ad esempio C:\Programmi o D:\, perché l'intero contenuto dell'archivio verrebbe decompresso direttamente in quella posizione, senza creare alcuna cartella contenitore.
2.1. Informazioni generali sul programma
Nel seguito con il termine
casella di ricerca si intende fare riferimento anche alla casella
Esegui di Windows XP.
WinIban è un programma di tipo console, cioè con presentazione a schermo in forma testuale, utilizzabile in ambiente Windows (Win98 e versioni successive), tanto a 32 bit quanto a 64 bit.
Tutte le funzioni sono interamente controllate da parametri da riga di comando (non è previsto un modo d'uso interattivo).
Il funzionamento richiede unicamente il file eseguibile WIban.EXE che può essere avviato, indicando gli opportuni parametri, sia al prompt dei comandi di Windows sia nella casella di ricerca. Può risultare conveniente includere la cartella contenente il file WIban.EXE nel path di sistema.
Il file eseguibile WIban.exe è autonomo, non utilizza voci di registro e può essere ospitato in qualunque cartella (anche in unità removibili).
I file inclusi nell'archivio di setup sono:
- WIban.EXE, programma eseguibile.
- WIban.htm, manuale del programma.
- faq.htm, domande frequenti e relative risposte.
- licenza.htm, Licenza per la distribuzione e l'uso.
- file_id.diz, file di testo con descrizione sintetica dell'archivio.
- avvio.bat, esempio di file batch.
I file a corredo costituiscono la documentazione e non influiscono sul funzionamento.
A parte i file specificati dall'utilizzatore in concomitanza con il reindirizzamento, l'unico file (facoltativo) utilizzato dal programma è IBAN.dat, il database degli sportelli bancari [¶3.5] (non incluso).
Per chiarimenti sul programma WinIban consultare il seguito di questo manuale e l'elenco delle
domande frequenti.
2.2. Aggiornamento della versione a 16 bit
Il programma
WinIban è la versione a 32 bit di
IBAN edizione 1.1,
la versione a 16 bit funzionante in MS-DOS e in versioni di Windows fino a XP.
Il programma WinIban può essere installato senza problemi nella stessa cartella delle precedenti versioni.
Il file batch accluso avvio.bat mostra come è possibile selezionare automaticamente la versione a 16 o a 32 bit a seconda del sistema operativo in uso al momento.
Un accorgimento di questo genere può essere sfruttato se la cartella di installazione è contenuta in un'unità removibile USB che viene spostata da un elaboratore a un'altro.
Torna al sommario.
3. Calcolo e verifica del codice IBAN
Il programma
WinIban richiede l'immissione di opportune informazioni nella riga di comando. A destra del nome del programma occorre indicare una stringa con i dati bancari. Il programma compie le azioni appropriate a seconda del tipo di informazione specificata. Si può indicare un unico dato (modo singolo) oppure fornire un elenco mediante reindirizzamento dell'input (modo multiplo).
Alcune opzioni regolano il formato dei risultati a schermo [¶3.3] [¶3.6] e l'uscita può essere reindirizzata verso un file mediante piping.
Se non si indica alcun parametro, oppure se si specifica uno dei parametri «?» oppure /H, viene presentata una schermata di aiuto.
3.1 Modo singolo
Le spiegazioni in questo paragrafo riguardano il
modo singolo, cioè l'immissione di un singolo dato nella riga di comando. La trattazione riguardante il modo multiplo è svolta in
[¶3.2].
Notare che, nell'immettere un codice, è possibile indicare spazi vuoti a piacere per migliorare la leggibilità di ciò che si sta scrivendo.
Riguardo ai tipi di dato che si possono immettere, 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).
- Tipo 1: codice IBAN completo (27 caratteri).
-
Esempio:
WIban.exe IT59M0123409876000000283746
Il 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 [¶5].
- Tipo 2: stringa di 22 caratteri consecutivi (ABI CAB numero conto).
-
Esempio:
WIban.exe 01234 09876 000000283746
Il 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.
- Tipo 3: ABI, CAB, numero conto.
-
Esempio:
WIban.exe 1234, 9876, 283746
In 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:
WIban.exe 1234 + 9876 + 283746
Qui 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.
3.2 Modo multiplo
Il
modo multiplo entra in funzione quando i dati si trovano in un file che viene reindirizzato in ingresso con il carattere «<». Il file deve essere di puro testo e ogni riga deve contenere un unico dato, rispettando gli stessi criteri previsti per il modo singolo.
Dunque ciascuna riga può contenere (oltre a spazi in numero qualunque):
- una stringa di 27 caratteri (tipo 1: codice IBAN completo).
- una stringa di 22 caratteri (tipo 2: ABI CAB numero conto senza separatore).
- tre elementi separati da virgola o altro separatore valido (tipo 3: ABI, CAB, numero conto).
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.
[¶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.
È possibile interrompere l'elaborazione multipla premendo Esc oppure Alt+F4 (ciò può tornare utile soprattutto con file molto grandi).
Al termine dell'elaborazione il programma fornisce una relazione sul numero di record (elaborati, esatti, dubbi, errati).
Esempio. Supponiamo 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:
WIban.exe <"File dei dati.txt"
Se invece vogliamo riversare i risultati nel file di nome
File risultati.txt, allora eseguiremo il comando seguente:
WIban.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:
WIban.exe /i <"File dei dati.txt" >"File risultati.txt"
Oltre ai dati dei tre tipi descritti, una riga può contenere un dato composto da due numeri nella forma
ABI,CAB. Se è specificata l'opzione
/I, viene eseguita la ricerca di ABI e CAB nel database, altrimenti il programma si limita a verificare che i due elementi siano costituiti esclusivamente da cifre e che non abbiano più di cinque caratteri.
Nota.
Il ritorno a capo che separa una riga dall'altra nel file di input può essere uno fra CR+LF, LF oppure CR (ma non deve variare nell'intero file di input).
3.3 Opzioni aggiuntive
Il comportamento del programma
WinIban può essere modificato specificando una o più opzioni, che sono indicazioni supplementari da indicare a destra del dato principale nella riga di comando. Le opzioni illustrate in questo paragrafo possono essere assegnate anche mediante la variabile di ambiente
IBAN_OPZ [¶3.6].
Per l'opzione
/S v.
[¶3.5].
Nel prospetto che segue le opzioni con la dicitura modo multiplo hanno efficacia solo quando viene reindirizzato l'input.
- Opzione /B.
-
Dato che il programma WinIban può essere lanciato dalla casella di ricerca, alla fine delle operazioni che prevedono la visualizzazione di qualche scritta compare la richiesta di premere un tasto per terminare, onde evitare che il testo scompaia dallo schermo. In certi casi questa richiesta è inappropriata, ad esempio nelle elaborazioni batch. Perciò è prevista la possibilità di forzare il ritorno immediato al prompt specificando l'opzione /B. Ad esempio:
WIban.exe 1234, 9876, 283746 /b
Notare tuttavia che quando l'uscita viene reindirizzata non compare alcuna richiesta e pertanto, in questo caso, l'opzione /B è ininfluente.
- Opzione /C (modo multiplo).
-
Serve per trascrivere nei risultati gli eventuali commenti presenti nel file in ingresso [¶3.2], commenti che altrimenti sono ignorati.
- Opzione /E (modo multiplo).
-
Provoca la comparsa in uscita dei soli record errati. Non ha influenza sul conteggio che compare al termine dell'elaborazione.
- Opzione /F (modo multiplo).
-
Modifica l'aspetto dei campi nei record di uscita [¶3.4].
- Opzione /H.
-
Provoca la visualizzazione di una finestra che mostra la sintassi e le opzioni disponibili. Non è ammessa nella variabile di ambiente IBAN_OPZ.
Se si specifica questa opzione, tutti gli altri parametri sono ignorati ad eccezione del reindirizzamento in uscita, caso nel quale il testo della finestra viene reindirizzato nell'output.
L'effetto dell'opzione /H è ottenibile anche includendo nei parametri il carattere «?» oppure avviando il programma senza alcun parametro.
- Opzione /I.
-
Agisce allorché nella stessa directory del file WIban.exe è presente anche il file IBAN.dat, il database con le informazioni sugli sportelli bancari (nome dell'istituto, indirizzo, numero di telefono). Se si indica l'opzione /I, il programma riporta nei risultati le informazioni abbinate a ciascun dato immesso.
- Opzione /K.
-
Nei risultati il codice IBAN viene scritto in forma compatta, cioè senza gli spazi di suddivisione inseriti per impostazione predefinita.
- Opzione /L (modo multiplo)
-
Il riepilogo finale sull'elaborazione viene trascritto nel file WIban.log.
L'opzione /L annulla l'effetto delle opzioni /R, /+ e /T.
Tuttavia, se viene negato l'accesso in scrittura al file resoconto e se non è specificata l'opzione /B, compare una finestra con il resoconto completo.
- Opzione /N (modo multiplo).
-
Nel formato CSV utilizza valori non delimitati da virgolette [¶3.4].
Tuttavia le virgolette sono mantenute intorno ai valori che contengono il carattere di separazione.
- Opzioni /Q e /V.
-
L'opzione /Q rende concisa la presentazione dei risultati (modo predefinito) mentre l'opzione /V, al contrario, la rende verbosa.
- Opzione /R (modo multiplo)
-
Mostra un riepilogo con le statistiche dell'elaborazione. Riunisce la funzione delle opzioni /+ e /T.
Il testo non è reindirizzabile. Se si specifica anche l'opzione /L, il testo viene mostrato a schermo soltanto nel caso in cui risulta impossibile scrivere il file resoconto.
Se si specifica anche l'opzione /C viene riportato nel campo commento il numero di riga.
- Opzione /T.
-
Al termine di un'elaborazione multipla o se è specificata l'opzione /S, mostra sullo schermo il tempo di elaborazione. La scritta non è reindirizzabile.
Questa informazione si ottiene anche con l'opzione /R.
- Opzione /Z.
-
Sopprime il segnale acustico che accompagna la visualizzazione dei dati. Il segnale non viene emesso se è attivo il reindirizzamento dell'uscita o se è specificata l'opzione /B.
- Opzione /+ (modo multiplo).
-
Mostra un dettaglio con il numero di record elaborati, errati, vuoti. Il testo non è reindirizzabile.
Questa informazione si ottiene anche con l'opzione /R.
3.4 Formato dei dati di uscita
Se l'elaborazione è multipla e l'uscita viene reindirizzata, i dati vengono presentati in modo da facilitare un loro ulteriore trattamento mediante un foglio elettronico o un software di database (ad esempio Excel).
Ogni riga del file ottenuto mediante il reindirizzamento dell'output è un record suddiviso in vari campi. Il numero dei campi può variare da tre a cinque, 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.
Specificando l'opzione /F sono possibili due alternative.
-
Campi di lunghezza fissa, opzione /F oppure /F1
-
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 |
- Formato CSV, opzioni /F2 ... /F7.
-
In questi casi è adottato il formato CSV (comma-separated values).
La prima riga dell'uscita contiene l'intestazione con i nomi dei campi.
I campi non hanno limitazioni di lunghezza e sono separati uno dall'altro con un carattere che dipende dalla cifra specificata a destra di /F:
- cifra 2: carattere «,» (virgola).
- cifra 3: carattere «;» (punto e virgola).
- cifra 4: carattere «:» (due punti).
- cifra 5: carattere «|» (pipe).
- cifra 6: carattere «.» (punto).
- cifra 7: carattere «-» (meno).
Per impostazione predefinita tutti i valori sono racchiusi tra virgolette. Le virgolette vengono omesse se si specifica l'opzione /N e il valore non contiene il carattere di separazione.
3.5 Ricerca di informazioni nel database locale
Come funzione accessoria, il programma
WinIban 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 database locale, il file
IBAN.dat [¶6]).
Vedere anche l'opzione
/I [¶3.3].
La ricerca suddetta può avvenire in due modi.
- Ricerca di ABI e CAB con visualizzazione dello sportello corrispondente.
-
Il comando deve rispettare la seguente sintassi:
WIban.exe abi, cab [/B] [/V] [/Z]
Esempi:
WIban.exe 1234, 12100
WIban.exe 1234, 12100 /b
- Ricerca di altre informazioni (denominazione, indirizzo, telefono).
-
Si esegue con un comando che ha la seguente forma generale:
WIban.exe [/B] [/Q] [/T] [/Z] /S[stringa1[, stringa2[, ...]]]
L'idea è di cercare i record nei quali sono presenti certe parole (anche pezzi di parola o frasi). Verranno individuati i record che contengono tutti i termini specificati.
I termini vanno indicati nella riga di comando a destra dell'opzione /S, separati da una virgola (o da uno degli altri caratteri di separazione ammessi «;», «:» e «+») e possono essere in numero a piacere. L'elenco viene ridotto all'essenziale, nel senso che vengono scartati quei termini che dovessero essere uguali o porzioni di altri.
Alcuni esempi di possibili comandi di ricerca:
WIban.exe /s milano, cassa di risp
WIban.exe /s049 123456
WIban.exe /b /s 049, piazza, popolare
WIban.exe /sbanca d'italia >risulta.txt
Notare che altre opzioni eventualmente presenti devono precedere l'opzione /S, perché altrimenti esse verrebbero considerate come parte dei termini da cercare.
3.6 Variabile di ambiente IBAN_OPZ
Tutte le opzioni
[¶3.3], ad eccezione di
/H e
/S, possono essere impostate con la variabile di ambiente
IBAN_OPZ.
Assegnare una o più opzioni con tale variabile consente di renderne stabile l'adozione, evitando così di doverla specificare esplicitamente quando si desidera che il programma si comporti sempre in un determinato modo.
Al prompt di Windows la variabile di ambiente IBAN_OPZ va impostata con un comando del tipo seguente (indicare una o più opzioni a destra del carattere «=»):
set iban_opz=/i/z
L'impostazione stabile della variabile si effettua invece nelle opzioni avanzate dell'utility
Sistema nel pannello di controllo. Ad esempio, in Windows XP il percorso da seguire è il seguente:
Pannello di controllo —> Sistema —> Avanzate —> Variabili di ambiente
L'effetto di ciascuna opzione presente nella variabile di ambiente può essere annullato specificando come parametro la stessa opzione seguita immediatamente dal carattere «-» (meno). Ciò equivale a ripristinare, in relazione a quell'opzione, il comportamento predefinito del programma. Ad esempio, per neutralizzare l'effetto dell'opzione
/L, includere nel comando il parametro
/L-.
Osservare i due seguenti casi particolari.
-
Il parametro /V- è equivalente a /Q. Invece /Q- non ha alcun effetto perché la visualizzazione concisa è già il modo di presentazione predefinito.
-
Per neutralizzare una qualunque delle opzioni /F, /F2 ... /F7 va sempre usata /F- (senza cifre).
3.7 Codici di errorlevel generati al termine in caso di errore
-
Nel modo singolo:
-
- 1 check digit errato.
- 2 CIN errato.
- 3 check digit e CIN entrambi errati.
- 4 formato della stringa non valido.
-
Nel modo multiplo:
-
- 5 trovati codici errati.
- 6 trovati codici dubbi [¶5].
- 7 trovati sia codici errati sia codici dubbi.
-
Altre situazioni possibili:
-
- 8 elaborazione interrotta da tastiera.
- 9 errore di accesso al database durante la ricerca
- 10 database non trovato o non valido.
- 11 reindirizzamento dell'input non consentito
- 12 impossibile trascrivere il riepilogo nel file WIban.log.
Torna al sommario.
4. Coordinate bancarie
Il codice
ABI (Associazione bancaria italiana) è una stringa numerica di cinque cifre e identifica un dato istituto di credito (cioè tutte le filiali di uno stesso istituto di credito hanno lo stesso codice ABI).
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 è 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, con alcuni elementi definiti 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.europeanpaymentscouncil.eu/documents/ECBS IBAN standard EBS204_V3.2.pdf
In Italia il codice IBAN è costituito da una stringa di 27 caratteri, nell'ordine da sinistra a destra:
- IT
-
due caratteri che identificano la nazione.
- check digit
-
codice numerico di controllo composto da due cifre.
- CIN
-
codice di controllo composto da una lettera.
- ABI
-
codice di cinque cifre, completate eventualmente con zeri iniziali.
- CAB
-
codice di cinque cifre, completate eventualmente con zeri iniziali.
- numero di conto
codice di dodici caratteri, completati eventualmente con zeri iniziali.
4.1 Calcolo del codice numerico di controllo (check digit)
Il check digit serve, nell'ambito del codice IBAN, per riconoscere la presenza di eventuali errori di trascrizione, con un ruolo analogo a quello del CIN.
L'esistenza di due diversi codici di controllo rende molto attendibile il rilevamento di possibili errori ed è quindi garanzia di sicurezza. Gli algoritmi usati per la determinazione del check digit e del CIN sono descritti in questo manuale a titolo di curiosità.
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 [¶4]. Per determinare il check digit si procede come descritto qui di seguito.
-
A destra del codice BBAN si aggiunge la stringa IT00.
-
Nella stringa così ottenuta si sostituiscono i caratteri alfabetici con un numero di due cifre ottenuto dalla posizione della lettera nell'alfabeto a cui va sommato 9. Così, ad esempio, A diventa 10, B diventa 11, C diventa 12 e così via fino a Z, che diventa 35.
-
In questo modo si ottiene un numero di almeno 30 cifre e si considera il resto della divisione fra tale numero e 97. Il resto di tale divisione è un numero compreso fra 0 e 96.
-
Infine il resto ottenuto al punto 3 va sottratto da 98 e si ottiene così il codice desiderato, che è un numero compreso fra 2 e 98: se il numero è di una sola cifra, occorre anteporre uno zero (così si hanno sempre due caratteri, cioè 02, 03 fino a 09).
4.2 Calcolo del CIN
La determinazione del CIN è un po' più complicata. Nel corso del calcolo si usano le due seguenti successioni numeriche, il cui scopo viene chiarito fra poco:
- Successione per le posizioni dispari:
-
1,0,5,7,9,13,15,17,19,21,2,4,18,20,11,3,6,8,12,14,16,10,22,25,24,23,27,28,26
- Successione per le posizioni pari:
-
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28
Si parte dalla stringa di 22 caratteri ottenuta accostando ABI, CAB e conto corrente (ciascuno completato con zeri iniziali senecessario).
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.
Torna al sommario.
5. Errori nel codice di controllo numerico
Alcuni istituti di credito forniscono talvolta un codice IBAN che non è conforme alle regole ufficiali. In questi casi particolari il codice numerico di controllo (check digit, terzo e quarto carattere del codice IBAN) assume uno dei valori
00,
01,
99, che sono anomali perché per regola tale numero di controllo dovrebbe variare fra
02 e
98.
Pur dichiarandoli validi, il programma WinIban 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.
Torna al sommario.
6. Prelievo del database
Il file
IBAN.dat è stato ricavato dai dati gentilmente forniti da Luigi Fersini, al quale esprimo un cordiale ringraziamento per la disponibilità e un riconoscimento per il meticoloso lavoro, condotto per vari anni, di raccolta e verifica di questa cospicua mole di dati.
Purtroppo da fine 2011 è venuta meno la possibilità di reperire i dati aggiornati e quindi il database diventa via via meno attendibile.
Per chi desidera utilizzarlo ugualmente, il database è scaricabile separatamente al seguente indirizzo:
database con i dati dell'anno 2011
Desidero inoltre ringraziare in modo particolare mio cognato Carlo per aver condotto una lunga e accurata serie di prove durante la preparazione del programma IBAN.EXE a 16 bit. I suoi rilievi e i suoi suggerimenti hanno contribuito a migliorare questo programma, rendendolo più efficiente e completo.
Torna al sommario.
7. Variazioni di WinIban rispetto a IBAN.EXE edizione 1.1
-
WinIban funziona in ambiente Windows (Win98 e versioni successive), tanto a 32 bit quanto a 64 bit.
Il codice è stato riveduto in molte parti per migliorare l'efficienza dell'elaborazione.
-
WinIban è totalmente compatibile con IBAN.EXE edizione 1.1. Lo si può installare nella stessa cartella e le due versioni possono coesistere, come esemplificato nel file batch allegato avvio.bat.
-
Sono state aggiunte alcune caratteristiche, controllate da opportune opzioni come specificato di seguito.
-
L'opzione /F, se specificata da sola, equivale a /F1 e funziona come in precedenza.
Se seguita da una cifra compresa fra 2 e 7 attiva l'uscita in formato CSV con carattere di separazione determinato dalla cifra specificata [¶3.4].
-
L'opzione /N interviene nel formato CSV di cui sopra eliminando le virgolette che racchiudono i valori (purché i valori stessi non contengano il carattere di separazione).
-
Con l'opzione /K il codice IBAN viene scritto in forma compatta, cioè senza gli spazi di suddivisione inseriti per impostazione predefinita.
-
L'opzione /L trascrive il riepilogo di un'elaborazione multipla nel file WIban.log.
-
L'opzione /R produce un riepilogo con le statistiche di un'elaborazione multipla. Riunisce la funzione delle opzioni /+ e /T e, in combinazione con l'opzione /C, riporta il numero di riga nel campo del commento.
-
L'opzione /Z azzera il volume del segnale acustico che accompagna la visualizzazione dei dati.
Il segnale non viene emesso quando si specifica l'opzione /B oppure se è attivo il reindirizzamento dell'input.
-
L'effetto di ciascuna opzione presente nella variabile di ambiente IBAN_OPZ può essere annullato specificando come parametro la stessa opzione seguita immediatamente dal carattere «-» (meno).
-
Altre variazioni nel modo multiplo.
- Ora è consentito che i dati del file in ingresso contengano spazi.
- Sono ammessi i record di tipo numero,numero (per effettuare la verifica ABI/CAB avviare con l'opzione /I).
Torna al sommario.