pain.001 è il messaggio ISO 20022 che un'azienda invia alla propria banca per disporre uno o più bonifici. Il nome completo è Customer Credit Transfer Initiation: "pain" indica la famiglia di messaggi di disposizione di pagamento, .001 è il numero del messaggio e il suffisso, per esempio pain.001.001.09, è la versione. È in formato XML, viene validato rispetto a uno schema ufficiale (XSD) e sostituisce i formati CSV specifici di ciascuna banca e il messaggio di testo SWIFT MT101.
pain.001 in un minuto#
- Chi lo invia: un'azienda (il debitore, o un soggetto che agisce per suo conto) lo invia alla propria banca (la banca del debitore).
- Che cosa contiene: uno o più lotti di bonifici, ciascuno con un conto di addebito, una data di esecuzione richiesta e un numero qualsiasi di pagamenti a favore dei beneficiari.
- Che cosa torna indietro: la banca risponde con pain.002, il Customer Payment Status Report, che accetta o respinge il file o le singole operazioni con codici motivo ISO.
- Che cosa succede dopo: una volta accettata, la banca trasforma ogni istruzione in messaggi interbancari come pacs.008, che l'azienda non vede mai.
- Dove si usa: bonifici SEPA secondo i rulebook EPC, pagamenti transfrontalieri su Swift secondo CBPR+ (
pain.001.001.09) e molti schemi nazionali. Il corpus di esempi di Pain001 copre 42 scenari in 17 mercati.
Com'è strutturato un messaggio pain.001#
Tutte le versioni condividono lo stesso scheletro a tre livelli all'interno di un elemento <CstmrCdtTrfInitn>.
| Livello | Elemento | Che cosa contiene |
|---|---|---|
| 1 | <GrpHdr> Intestazione di gruppo | ID del messaggio, data e ora di creazione, numero di operazioni (NbOfTxs), somma di controllo (CtrlSum), parte ordinante |
| 2 | <PmtInf> Informazioni di pagamento | Un lotto: metodo di pagamento, data di esecuzione richiesta, debitore, conto e banca del debitore, ripartizione delle spese |
| 3 | <CdtTrfTxInf> Operazione di bonifico | Un pagamento: riferimento end-to-end, importo e valuta, beneficiario, conto e banca del beneficiario, informazioni di rimessa |
Un file può contenere più lotti <PmtInf> e ogni lotto molti pagamenti <CdtTrfTxInf>. NbOfTxs e CtrlSum compaiono sia a livello di file sia a livello di lotto e devono corrispondere ai pagamenti che contano: è uno dei motivi più comuni per cui una banca respinge un file.
Un esempio completo di pain.001#
Si tratta di un singolo bonifico SEPA in pain.001.001.09, preso invariato dal corpus di esempi di Pain001. Supera la validazione rispetto all'XSD ufficiale ISO 20022. Le parti, gli IBAN e i BIC sono fittizi.
OML-SCT-20260921
2026-09-21T12:00:00
1
2200.00
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
SCT-20260921-IT-01
TRF
false
1
2200.00
SEPA
2026-09-22
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
IT48T78971134594OGDKY5VXE41
TLAOIT60
SLEV
OML-2026-0921-01
2200.00
MHXHITI0
Fonderia Bresciana Srl
25121
Brescia
IT
IT23J14887404856NF3794IGWXN
Fattura 117/2026
Prova i tuoi dati nella demo nel browser: costruisce un file pain.001 a partire da un CSV e lo valida rispetto allo schema ufficiale senza che i dati lascino il tuo computer.
Le versioni di pain.001#
ISO pubblica una nuova versione quando il modello del messaggio cambia. Banche e schemi accettano ciascuno versioni specifiche, quindi la versione da inviare è quella indicata nella documentazione del canale della tua banca.
| Versione | Note |
|---|---|
| pain.001.001.03 | Lo storico cavallo di battaglia di SEPA e CGI; identifica le banche con <BIC> |
| .04, .05, .06, .07, .08 | Versioni di manutenzione usate da canali specifici |
| pain.001.001.09 | La versione 2019 scelta da CBPR+ per Swift; identifica le banche con <BICFI>, aggiunge il trasporto di LEI e UETR |
| .10, .11, .12 | Affinamenti successivi al 2019 |
| pain.001.001.13 | Pubblicata da ISO il 19 marzo 2026; aggiunge un identificativo univoco dell'operazione opzionale (UnqTxIdr) |
La matrice di compatibilità mostra quali versioni Pain001 genera, valida e converte tra loro.
pain.001 a confronto con i messaggi correlati#
| Messaggio | Direzione | Scopo |
|---|---|---|
| pain.001 | Dall'azienda alla propria banca | Dispone bonifici (invia denaro in uscita) |
| pain.002 | Dalla banca all'azienda | Comunica lo stato di un pain.001 o pain.008: accettato, parzialmente accettato o respinto, con codici motivo |
| pain.008 | Dall'azienda alla propria banca | Dispone addebiti diretti (incassa denaro in base a un mandato) |
| pacs.008 | Da banca a banca | Il bonifico interbancario in cui si trasforma un'istruzione pain.001 |
| MT101 | Azienda o banca, tramite Swift | Il vecchio messaggio di testo "Request for Transfer" che pain.001 sostituisce. Ad agosto 2026 Swift ha rinviato la dismissione dell'inoltro interbancario MT101 (Swift); vedi da MT101 a pain.001 |
Il glossario definisce in linguaggio semplice il resto del vocabolario ISO 20022.
Perché le banche respingono i file pain.001#
Un file può essere XML ben formato ed essere comunque respinto. I controlli si sovrappongono per livelli:
- Schema: il file deve superare la validazione rispetto all'XSD ufficiale della sua versione.
- Qualità dei dati: gli IBAN superano il controllo delle cifre di verifica, i BIC sono ben formati, date e importi sono validi, e
NbOfTxseCtrlSumcorrispondono ai pagamenti. - Regole dello schema: SEPA, CBPR+ e gli schemi nazionali aggiungono vincoli propri, come il set di caratteri consentito o un indirizzo postale strutturato.
- Profilo e canale della tua banca: ogni banca pubblica le proprie linee guida d'uso in aggiunta allo schema.
Pain001 verifica i primi tre livelli prima che il file raggiunga la banca e dichiara chiaramente che il quarto spetta alla banca confermarlo.
Come creare un file pain.001#
- Da un foglio di calcolo: Da Excel a pain.001 trasforma un elenco di pagamenti Excel o CSV in un file validato.
- Nel browser: la demo genera e valida un file in locale, senza caricamenti.
- Da codice o da riga di comando: installa la libreria pain001 open source ed esegui:
Il riferimento tecnico copre ogni opzione e le FAQ rispondono alle domande più frequenti dei team di tesoreria, operations e sviluppo.
Fonti#
- Definizioni e archivio dei messaggi ISO 20022: iso20022.org
- Rulebook SEPA Credit Transfer: European Payments Council
- CBPR+ e l'inoltro MT101: Swift