Validazione IBAN: come funziona il checksum?
L'IBAN contiene un meccanismo di rilevamento degli errori integrato. Capire come funziona il checksum mod-97 ti aiuta a rilevare gli errori prima che blocchino i tuoi pagamenti.
Cos'è un IBAN?
L'IBAN (International Bank Account Number) è un numero di conto bancario standardizzato a livello internazionale definito dalla norma ISO 13616. È utilizzato nella zona SEPA e in oltre 80 paesi per identificare univocamente un conto bancario.
Un IBAN è composto da: un codice paese di 2 lettere, un numero di controllo di 2 cifre (checksum) e un Basic Bank Account Number (BBAN) il cui formato varia per paese. Ad esempio, un IBAN belga ha 16 caratteri: BE68539007547034.
Le cifre di controllo (posizioni 3-4) sono calcolate mediante l'algoritmo mod-97, garantendo che gli errori di trascrizione possano essere rilevati prima che un pagamento venga inoltrato alla rete bancaria.
Come funziona il checksum mod-97
Il checksum IBAN utilizza l'algoritmo modulo-97 (ISO 7064). Per verificare un IBAN:
- 1Spostare i primi 4 caratteri alla fine della stringa
- 2Sostituire ogni lettera con il suo equivalente numerico (A=10, B=11, ..., Z=35)
- 3Calcolare il resto di questo numero diviso per 97
- 4L'IBAN è valido se il resto è uguale a 1
Questo semplice controllo matematico rileva il 98% degli errori di trascrizione di un singolo carattere — rendendolo uno dei meccanismi di validazione più efficaci nei sistemi finanziari.
Errori IBAN comuni
Questi sono gli errori più frequenti nei file di pagamento SEPA:
Checksum non valido
Un errore di battitura nel numero di conto modifica il risultato mod-97. Anche un solo errore di cifra viene rilevato.
Formato paese errato
Ogni paese ha una lunghezza IBAN fissa. Un IBAN belga ha sempre 16 caratteri, un IBAN francese 27. Una lunghezza errata è immediatamente invalida.
Spazi e formattazione
Gli IBAN vengono talvolta scritti con spazi ogni 4 caratteri per la leggibilità (BE68 5390 0754 7034). Nei file di pagamento, devono essere inviati senza spazi.
Caratteri mancanti o in eccesso
Gli IBAN hanno una lunghezza fissa per ogni paese. Aggiungere o rimuovere un carattere invalida sempre il checksum.
Lettere minuscole
Lo standard IBAN prevede solo lettere maiuscole. Alcuni sistemi rifiutano gli IBAN in minuscolo anche se il checksum sarebbe identico.
Confusione tra O/0 o I/1
La lettera O e la cifra 0, oppure I e 1, vengono comunemente scambiati. Il checksum rileva l'errore, ma il messaggio d'errore potrebbe non essere ovvio.
Formati IBAN per paese
Ogni paese SEPA ha la propria lunghezza IBAN e struttura BBAN. La tabella seguente mostra i formati europei più comuni:
| Paese | Codice | Lunghezza | Formato BBAN | Esempio |
|---|---|---|---|---|
| Belgio | BE | 16 | 3n 7n 2n | BE68 5390 0754 7034 |
| Francia | FR | 27 | 5n 5n 11c 2n | FR76 3000 6000 0112 3456 7890 189 |
| Germania | DE | 22 | 8n 10n | DE89 3704 0044 0532 0130 00 |
| Paesi Bassi | NL | 18 | 4a 10n | NL91 ABNA 0417 1643 00 |
| Spagna | ES | 24 | 4n 4n 1n 1n 10n | ES91 2100 0418 4502 0005 1332 |
| Italia | IT | 27 | 1a 5n 5n 12c | IT60 X054 2811 1010 0000 0123 456 |
| Portogallo | PT | 25 | 4n 4n 11n 2n | PT50 0002 0123 1234 5678 9015 4 |
| Austria | AT | 20 | 5n 11n | AT61 1904 3002 3457 3201 |
| Lussemburgo | LU | 20 | 3n 13c | LU28 0019 4006 4475 0000 |
| Irlanda | IE | 22 | 4a 6n 8n | IE29 AIBK 9311 5212 3456 78 |
| Finlandia | FI | 18 | 3n 11n | FI21 1234 5600 0007 85 |
| Polonia | PL | 28 | 8n 16n | PL61 1090 1014 0000 0712 1981 2874 |
| Svizzera | CH | 21 | 5n 12c | CH93 0076 2011 6238 5295 7 |
| Svezia | SE | 24 | 3n 16n 1n | SE45 5000 0000 0583 9825 7466 |
| Danimarca | DK | 18 | 4n 9n 1n | DK50 0040 0440 1162 43 |
Questo elenco copre i principali paesi SEPA. Per un riferimento completo, consultare il registro IBAN SWIFT pubblicato trimestralmente.
Validazione IBAN nei file di pagamento SEPA
Quando si generano file XML SEPA (pain.001 o pain.008), ogni IBAN nel file deve superare il controllo mod-97. Le banche rifiutano l'intero lotto se un singolo IBAN non è valido.
Ecco perché pre-validare gli IBAN prima di generare il file di pagamento è fondamentale. Il convertitore SEPA di ValidateFin valida automaticamente ogni IBAN durante l'importazione del CSV.
Oltre al checksum, alcune banche verificano anche che la parte BBAN corrisponda alla loro struttura di instradamento interna. Questo secondo livello di controllo è specifico della banca e non può essere effettuato con il solo mod-97.
Valida i tuoi IBAN gratuitamente
Il nostro validatore IBAN controlla il checksum mod-97, il formato del paese e la lunghezza — istantaneamente, senza inviare alcun dato a un server.
Apri il Validatore IBANDomande frequenti
Come funziona l'algoritmo del checksum mod-97 per IBAN?
L'algoritmo mod-97 valida un IBAN: spostando i primi 4 caratteri (codice paese + cifre di controllo) alla fine, convertendo tutte le lettere in numeri (A=10, B=11...Z=35), poi calcolando il resto della divisione per 97. Un IBAN valido produce sempre un resto di 1.
Quali paesi usano l'IBAN e quali sono i diversi formati?
Oltre 80 paesi usano l'IBAN, con tutti i 36 paesi SEPA che lo richiedono. I formati variano: gli IBAN belgi hanno 16 caratteri, quelli francesi 27, quelli tedeschi 22 e quelli olandesi 18. Ogni paese ha regole specifiche per la struttura BBAN.
Un IBAN può superare la validazione del checksum ma essere ancora non valido?
Sì. Il checksum mod-97 verifica l'integrità matematica ma non può confermare che il conto esista presso una banca reale. Per l'elaborazione dei pagamenti, integra sempre la validazione del checksum con il servizio di pre-validazione della tua banca.
Perché il mio IBAN non supera la validazione anche se sembra corretto?
Le cause più comuni sono: caratteri invisibili (spazi non interrompibili, tabulazioni), codice paese errato, lettere maiuscole e minuscole miste o un errore di copia-incolla che ha modificato una cifra. Prova a rimuovere tutti gli spazi e a verificare nuovamente il checksum.
La validazione IBAN è sufficiente per garantire il successo di un pagamento?
No. La validazione IBAN conferma l'integrità matematica, ma il conto potrebbe essere chiuso, bloccato o appartenere a una persona diversa. Per i pagamenti di importo elevato, chiedi al beneficiario di confermare il proprio IBAN tramite un canale verificato.
Cosa succede se invio un file SEPA con un IBAN non valido?
La banca rifiuterà l'intero file di pagamento o la singola transazione a seconda dell'errore. La maggior parte delle banche valida gli IBAN al momento dell'invio e restituisce un pain.002 (rapporto di stato) indicando il motivo del rifiuto.
Posso validare gli IBAN in blocco?
Sì. Il validatore IBAN di ValidateFin accetta più IBAN contemporaneamente. È inoltre possibile utilizzare il convertitore CSV a SEPA, che valida automaticamente tutti gli IBAN durante l'importazione.
Tutti i paesi utilizzano lo stesso formato IBAN?
No. Ogni paese definisce la propria lunghezza IBAN e struttura BBAN. Gli IBAN belgi hanno 16 caratteri, quelli francesi 27, quelli tedeschi 22 e così via. Le prime due lettere sono sempre il codice paese ISO.
Il BIC è obbligatorio insieme all'IBAN?
All'interno della zona SEPA, il BIC è generalmente facoltativo per i bonifici nazionali dal 2016. Tuttavia, rimane obbligatorio per i pagamenti transfrontalieri verso paesi extra-SEPA e potrebbe essere richiesto da alcune banche.
Qual è la differenza tra IBAN e BBAN?
Il BBAN (Basic Bank Account Number) è il formato nazionale del numero di conto. L'IBAN avvolge il BBAN con un codice paese e 2 cifre di controllo, creando un formato standardizzato a livello internazionale. Il BBAN è sempre la parte che segue i primi 4 caratteri dell'IBAN.