Cos’è un IBAN
Un International Bank Account Number (IBAN) è un modo standardizzato di scrivere un identificatore di conto nazionale affinché i sistemi di pagamento transfrontalieri possano instradarlo e validarlo in modo coerente. In Europa e in molte altre regioni, moduli di pagamento, fatture e app bancarie chiedono un IBAN al posto di—o in aggiunta a—formati domestici più vecchi.
Questa guida spiega struttura e cifre di controllo per l’apprendimento e i test software. Non aiuta nessuno a fare un uso improprio dei numeri di conto. Usate solo conti che siete autorizzati a gestire e preferite la documentazione ufficiale della banca per i pagamenti reali.
Per sperimentare controlli di formato su valori di esempio o di test, vedi lo strumento di verifica IBAN.
Struttura di alto livello
Un IBAN è una singola stringa (spesso mostrata a gruppi di quattro caratteri per leggibilità) con questo schema concettuale:
- Codice paese — due lettere (ISO 3166-1 alpha-2), ad esempio
DE,FR,IT,ES,NL. - Cifre di controllo — due cifre calcolate dal resto del numero.
- Basic Bank Account Number (BBAN) — parte domestica specifica del paese, che può includere codici banca, filiale, numeri di conto e caratteri di controllo nazionali.
La lunghezza complessiva è fissa per paese ma non uguale tra paesi. Gli IBAN tedeschi hanno lunghezza diversa da quelli francesi o italiani. I validatori quindi cercano la lunghezza attesa in base al codice paese prima di applicare controlli più profondi.
Perché esistono le cifre di controllo
Errori di digitazione o OCR in stringhe di conto lunghe sono costosi. Le cifre di controllo IBAN individuano molti errori di un solo carattere e alcuni scambi prima dell’invio di un pagamento. Non sono un meccanismo di segretezza e non dimostrano che un conto sia aperto, finanziato o intestato a una persona specifica—dimostrano che la stringa è ben formata secondo l’algoritmo di checksum.
Il controllo MOD-97 (concettuale)
Il controllo internazionale usa ISO 13616 / MOD-97:
- Spostare i primi quattro caratteri (codice paese + cifre di controllo) alla fine della stringa.
- Sostituire le lettere con numeri (A = 10, B = 11, …, Z = 35).
- Interpretare il risultato come un intero grande e calcolare quell’intero modulo 97.
- Un IBAN valido produce resto 1.
Poiché l’intero può essere molto lungo, le implementazioni usano aritmetica modulare a blocchi invece di memorizzare tutto il numero come intero nativo in linguaggi con interi a larghezza fissa.
Quando scrivete test, includete fixture note come valide dalla documentazione pubblica e stringhe note come non valide che falliscono per lunghezza, insieme di caratteri o checksum.
Pattern BBAN specifici per paese
Dopo codice paese e cifre di controllo, ogni paese definisce il proprio BBAN:
- Alcuni includono un identificatore bancario nazionale esplicito.
- Alcuni includono un analogo di filiale o sort code.
- Alcuni incorporano un checksum domestico distinto dalle cifre di controllo IBAN.
- Gli alfabeti possono essere solo numerici o alfanumerici a seconda dello schema nazionale.
Il software che verifica solo il controllo internazionale MOD-97 accetterà numeri strutturalmente validi per checksum anche se il codice banca nazionale non è stato emesso. La validazione completa dell’instradamento richiede regole nazionali o servizi di elenco oltre alla sola stringa IBAN.
Formattazione e memorizzazione
Visualizzazione. Il raggruppamento a quattro migliora la leggibilità (stile DE89 3704 0044 0532 0130 00). Gli spazi non fanno parte del valore elettronico.
Memorizzazione. Conservate la forma compatta: caratteri alfanumerici maiuscoli senza spazi. Normalizzate l’input utente rimuovendo gli spazi e convertendo le lettere in maiuscolo prima della validazione.
Moduli cartacei. Le persone spesso mantengono gli spazi; il vostro livello di input dovrebbe tollerarli.
Contesto SEPA (educativo)
Nell’ambito del Single Euro Payments Area, gli IBAN (e spesso i BIC) identificano i conti per bonifici in euro e schemi correlati. Il ruolo dell’IBAN è l’identificazione standardizzata; il successo del pagamento dipende ancora da sistemi bancari, mandati, saldi e controlli di conformità esterni al formato stesso.
Implementare la validazione nelle applicazioni
Una checklist pratica:
- Rifiutare input vuoto.
- Normalizzare maiuscole/minuscole e spaziature.
- Confermare i caratteri ammessi (A–Z, 0–9).
- Leggere il codice paese; cercare la lunghezza totale attesa.
- Eseguire MOD-97.
- Opzionalmente applicare controlli di struttura BBAN nazionali se mantenete quei pattern.
- Restituire motivi di errore stabili (
invalid-length,invalid-checksum,unsupported-country) per il mapping UI.
Non «riparate» in silenzio un numero di conto quasi valido nel software di pagamento; chiedete all’utente di confermare con la banca.
Testare senza conti reali
Gli sviluppatori hanno bisogno di fixture. Strategie appropriate:
- Usare esempi pubblicati ufficialmente da enti di standardizzazione o portali sviluppatori bancari etichettati come campioni.
- Generare vettori di test validi per checksum in ambienti di test isolati dove l’organizzazione lo consente.
- Preferire credenziali di test dedicate dalle sandbox dei fornitori di pagamento per i test di integrazione.
Non raccogliere né redistribuire IBAN reali di clienti dai log di produzione in repository pubblici.
Errori comuni lato utente
- Confondere
0eO, oppure1eI, nei moduli manoscritti. - Incollare un IBAN con un BIC o il nome del titolare davanti.
- Usare un formato di conto domestico dove è richiesto un IBAN (o il contrario).
- Assumere che un checksum corretto significhi che il pagamento riuscirà.
Testi UI chiari devono separare «il formato sembra valido» da «pagamento completato».
Privacy e sicurezza
Gli IBAN identificano conti. Trattateli come dati finanziari sensibili in log, analytics e ticket di supporto. Mascherate tutti i caratteri tranne gli ultimi nelle UI dove non serve la rivelazione completa. La verifica nel browser può tenere la stringa sul dispositivo per il controllo di formato; ciò non rende sicuri screenshot o valori copiati da condividere.
Strumenti correlati
Aiuti di verifica del formato come IBAN verify sono risorse educative e operative per il controllo strutturale. Abbinateli ad API di livello bancario quando dovete confermare esistenza del conto o matching del nome in flussi di pagamento regolamentati.
Riepilogo
Gli IBAN europei antepongono un codice paese e due cifre di controllo a un BBAN nazionale. La lunghezza dipende dal paese; MOD-97 intercetta molti errori di trascrizione; la struttura nazionale e i sistemi bancari live vanno oltre. Imparate lo schema per costruire validatori accurati e leggere i moduli di pagamento con sicurezza—sempre nell’ambito di un uso autorizzato e lecito degli identificatori di conto.