pain.001 to komunikat ISO 20022, którym firma zleca swojemu bankowi jeden lub więcej przelewów. Jego pełna nazwa to Customer Credit Transfer Initiation: "pain" to rodzina komunikatów inicjowania płatności, .001 to numer komunikatu, a przyrostek, na przykład pain.001.001.09, oznacza wersję. To XML weryfikowany względem oficjalnego schematu (XSD), który zastępuje bankowe formaty CSV i tekstowy komunikat SWIFT MT101.
pain.001 w minutę#
- Kto go wysyła: firma (dłużnik lub działający w jego imieniu agent) wysyła go do własnego banku (banku dłużnika).
- Co zawiera: jedną lub więcej paczek przelewów, każdą z rachunkiem dłużnika, żądaną datą wykonania i dowolną liczbą płatności na rzecz wierzycieli.
- Co wraca: bank odpowiada komunikatem pain.002, czyli Customer Payment Status Report, akceptując lub odrzucając plik albo poszczególne transakcje z kodami przyczyn ISO.
- Co dzieje się dalej: po akceptacji bank zamienia każde zlecenie na komunikaty międzybankowe, takie jak pacs.008, których firma nigdy nie widzi.
- Gdzie się go używa: w przelewach SEPA zgodnie z regulaminami EPC, w płatnościach transgranicznych w sieci Swift w ramach CBPR+ (
pain.001.001.09) oraz w wielu systemach krajowych. Korpus przykładów Pain001 obejmuje 42 scenariusze na 17 rynkach.
Jak zbudowany jest komunikat pain.001#
Każda wersja ma ten sam trzypoziomowy szkielet wewnątrz elementu <CstmrCdtTrfInitn>.
| Poziom | Element | Co zawiera |
|---|---|---|
| 1 | <GrpHdr> Group Header (nagłówek grupy) | Identyfikator komunikatu, znacznik czasu utworzenia, liczba transakcji (NbOfTxs), suma kontrolna (CtrlSum), strona inicjująca |
| 2 | <PmtInf> Payment Information (informacje o płatności) | Jedna paczka: metoda płatności, żądana data wykonania, dłużnik, rachunek i bank dłużnika, podział kosztów |
| 3 | <CdtTrfTxInf> Credit Transfer Transaction (transakcja przelewu) | Jedna płatność: referencja end-to-end, kwota i waluta, wierzyciel, rachunek i bank wierzyciela, informacja o płatności |
Plik może zawierać kilka paczek <PmtInf>, a każda paczka wiele płatności <CdtTrfTxInf>. NbOfTxs i CtrlSum występują zarówno na poziomie pliku, jak i paczki, i muszą zgadzać się z płatnościami, które liczą; to jeden z najczęstszych powodów odrzucenia pliku przez bank.
Pełny przykład pain.001#
To pojedynczy przelew SEPA w wersji pain.001.001.09, przejęty bez zmian z korpusu przykładów Pain001. Przechodzi walidację względem oficjalnego XSD ISO 20022. Strony, numery IBAN i kody BIC są fikcyjne.
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
Sprawdź własne dane w demie w przeglądarce: tworzy ono plik pain.001 z pliku CSV i weryfikuje go względem oficjalnego schematu, a dane nie opuszczają Twojego komputera.
Wersje pain.001#
ISO publikuje nową wersję, gdy zmienia się model komunikatu. Banki i systemy akceptują określone wersje, więc wysyłasz tę, którą wskazuje dokumentacja kanału Twojego banku.
| Wersja | Uwagi |
|---|---|
| pain.001.001.03 | Sprawdzony standard SEPA i CGI; identyfikuje banki za pomocą <BIC> |
| .04, .05, .06, .07, .08 | Wersje utrzymaniowe używane przez określone kanały |
| pain.001.001.09 | Wersja z 2019 roku wybrana przez CBPR+ dla sieci Swift; identyfikuje banki za pomocą <BICFI>, dodaje obsługę LEI i UETR |
| .10, .11, .12 | Udoskonalenia po 2019 roku |
| pain.001.001.13 | Opublikowana przez ISO 19 marca 2026; dodaje opcjonalny unikalny identyfikator transakcji (UnqTxIdr) |
Macierz zgodności pokazuje, które wersje Pain001 generuje, weryfikuje i między którymi migruje dane.
pain.001 a pokrewne komunikaty#
| Komunikat | Kierunek | Cel |
|---|---|---|
| pain.001 | Firma do swojego banku | Zleca przelewy (środki wypływają) |
| pain.002 | Bank do firmy | Informuje o statusie pain.001 lub pain.008: zaakceptowany, częściowo zaakceptowany lub odrzucony, z kodami przyczyn |
| pain.008 | Firma do swojego banku | Zleca polecenia zapłaty (pobiera środki na podstawie mandatu) |
| pacs.008 | Bank do banku | Przelew międzybankowy, w który zamienia się zlecenie pain.001 |
| MT101 | Firma lub bank, przez Swift | Starszy tekstowy komunikat "Request for Transfer", który zastępuje pain.001. W sierpniu 2026 Swift odroczył wycofanie międzybankowego przekazywania MT101 (Swift); zobacz MT101 do pain.001 |
Słowniczek wyjaśnia pozostałe pojęcia ISO 20022 prostym językiem.
Dlaczego banki odrzucają pliki pain.001#
Plik może być poprawnym XML-em, a mimo to zostać odrzucony. Kontrole nakładają się warstwami:
- Schemat: plik musi przejść walidację względem oficjalnego XSD dla swojej wersji.
- Jakość danych: numery IBAN mają poprawne cyfry kontrolne, kody BIC są prawidłowo zbudowane, daty i kwoty są poprawne, a
NbOfTxsiCtrlSumzgadzają się z płatnościami. - Reguły systemu: SEPA, CBPR+ i systemy krajowe dodają własne ograniczenia, na przykład dozwolony zestaw znaków lub ustrukturyzowany adres pocztowy.
- Profil i kanał Twojego banku: każdy bank publikuje własne wytyczne stosowania, uzupełniające reguły systemu.
Pain001 sprawdza pierwsze trzy warstwy, zanim plik trafi do banku, i jasno mówi, że czwartą musi potwierdzić bank.
Jak utworzyć plik pain.001#
- Z arkusza kalkulacyjnego: Excel do pain.001 zamienia listę płatności w Excelu lub CSV w zweryfikowany plik.
- W przeglądarce: demo generuje i weryfikuje plik lokalnie, bez przesyłania danych.
- Z kodu lub wiersza poleceń: zainstaluj otwartoźródłową bibliotekę pain001 i uruchom:
Dokumentacja techniczna opisuje każdą opcję, a FAQ odpowiada na pytania, które najczęściej zadają zespoły skarbu, operacji i inżynierii.
Źródła#
- Definicje i archiwum komunikatów ISO 20022: iso20022.org
- Regulamin polecenia przelewu SEPA: European Payments Council
- CBPR+ i przekazywanie MT101: Swift