pain.001 är ISO 20022-meddelandet som ett företag skickar till sin bank för att beordra en eller flera överföringar. Det fullständiga namnet är Customer Credit Transfer Initiation: "pain" är meddelandefamiljen för betalningsinitiering, .001 är meddelandenumret och suffixet, till exempel pain.001.001.09, är versionen. Det är XML, det valideras mot ett officiellt schema (XSD) och det ersätter bankspecifika CSV-format och textmeddelandet SWIFT MT101.
pain.001 på en minut#
- Vem skickar det: ett företag (betalaren, eller ett ombud för betalaren) skickar det till sin egen bank (betalarens bank).
- Vad det innehåller: en eller flera batcher med överföringar, var och en med ett betalarkonto, ett önskat genomförandedatum och valfritt antal betalningar till mottagare.
- Vad som kommer tillbaka: banken svarar med pain.002, Customer Payment Status Report, som godkänner eller avvisar filen eller enskilda transaktioner med ISO-orsakskoder.
- Vad som händer sedan: när uppdraget har godkänts omvandlar banken varje instruktion till interbankmeddelanden som pacs.008, som företaget aldrig ser.
- Var det används: SEPA-överföringar enligt EPC:s regelverk, gränsöverskridande betalningar via Swift under CBPR+ (
pain.001.001.09) och många inhemska system. Pain001:s exempelkorpus omfattar 42 scenarier på 17 marknader.
Så är ett pain.001-meddelande uppbyggt#
Alla versioner delar samma skelett i tre nivåer inuti ett <CstmrCdtTrfInitn>-element.
| Nivå | Element | Vad det innehåller |
|---|---|---|
| 1 | <GrpHdr> Group Header (grupphuvud) | Meddelande-ID, tidpunkt för skapande, antal transaktioner (NbOfTxs), kontrollsumma (CtrlSum), initierande part |
| 2 | <PmtInf> Payment Information (betalningsinformation) | En batch: betalningsmetod, önskat genomförandedatum, betalare, betalarens konto och bank, kostnadsfördelning |
| 3 | <CdtTrfTxInf> Credit Transfer Transaction (överföringstransaktion) | En betalning: end-to-end-referens, belopp och valuta, mottagare, mottagarens konto och bank, betalningsinformation |
En fil kan innehålla flera <PmtInf>-batcher och varje batch många <CdtTrfTxInf>-betalningar. NbOfTxs och CtrlSum finns både på fil- och batchnivå och måste stämma med betalningarna de räknar, vilket är en av de vanligaste orsakerna till att en bank avvisar en fil.
Ett komplett pain.001-exempel#
Det här är en enskild SEPA-överföring i pain.001.001.09, hämtad oförändrad från Pain001:s exempelkorpus. Den validerar mot den officiella ISO 20022-XSD:n. Parterna, IBAN-numren och BIC-koderna är fiktiva.
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 dina egna data i webbläsardemon: den bygger en pain.001-fil från en CSV och validerar den mot det officiella schemat utan att data lämnar din dator.
pain.001-versioner#
ISO publicerar en ny version när meddelandemodellen ändras. Banker och system godtar var för sig vissa versioner, så den version du skickar är den som bankens kanaldokumentation anger.
| Version | Anmärkningar |
|---|---|
| pain.001.001.03 | Den beprövade arbetshästen för SEPA och CGI; identifierar banker med <BIC> |
| .04, .05, .06, .07, .08 | Underhållsversioner som används av vissa kanaler |
| pain.001.001.09 | Versionen från 2019 som CBPR+ valde för Swift; identifierar banker med <BICFI> och lägger till stöd för LEI och UETR |
| .10, .11, .12 | Förfiningar efter 2019 |
| pain.001.001.13 | Publicerad av ISO den 19 mars 2026; lägger till en valfri unik transaktionsidentifierare (UnqTxIdr) |
Kompatibilitetsmatrisen visar vilka versioner Pain001 genererar, validerar och migrerar mellan.
pain.001 jämfört med närliggande meddelanden#
| Meddelande | Riktning | Syfte |
|---|---|---|
| pain.001 | Företag till sin bank | Beordrar överföringar (pengar går ut) |
| pain.002 | Bank till företag | Rapporterar status för en pain.001 eller pain.008: godkänd, delvis godkänd eller avvisad, med orsakskoder |
| pain.008 | Företag till sin bank | Beordrar autogireringar (drar in pengar enligt ett medgivande) |
| pacs.008 | Bank till bank | Den interbanköverföring som en pain.001-instruktion blir |
| MT101 | Företag eller bank, via Swift | Det äldre textmeddelandet "Request for Transfer" som pain.001 ersätter. Swift sköt i augusti 2026 upp avvecklingen av interbankreläet för MT101 (Swift); se MT101 till pain.001 |
Ordlistan förklarar resten av ISO 20022-terminologin på vanlig svenska.
Varför banker avvisar pain.001-filer#
En fil kan vara korrekt XML och ändå avvisas. Kontrollerna ligger i lager:
- Schema: filen måste validera mot den officiella XSD:n för sin version.
- Datakvalitet: IBAN-nummer klarar sina kontrollsiffror, BIC-koder är korrekt uppbyggda, datum och belopp är giltiga, och
NbOfTxsochCtrlSumstämmer med betalningarna. - Systemregler: SEPA, CBPR+ och inhemska system lägger till egna begränsningar, till exempel tillåten teckenuppsättning eller en strukturerad postadress.
- Din banks profil och kanal: varje bank publicerar egna användningsriktlinjer utöver systemets regler.
Pain001 kontrollerar de tre första lagren innan filen når banken och säger tydligt att det fjärde är bankens att bekräfta.
Så skapar du en pain.001-fil#
- Från ett kalkylblad: Excel till pain.001 gör om en betalningslista i Excel eller CSV till en validerad fil.
- I webbläsaren: demon genererar och validerar en fil lokalt, utan uppladdning.
- Från kod eller kommandoraden: installera det öppna pain001-biblioteket och kör:
Den tekniska referensen täcker varje alternativ, och vanliga frågor besvarar de frågor som treasury-, drift- och utvecklingsteam oftast ställer.
Källor#
- Definitioner och arkiv för ISO 20022-meddelanden: iso20022.org
- Regelverket för SEPA-överföringar: European Payments Council
- CBPR+ och MT101-reläet: Swift