ISO 20022 vysvětleno

Co je pain.001? Převodní příkaz ISO 20022 vysvětlen

Zpráva ISO 20022, kterou firma posílá své bance k zadání převodů: co to je, jak je sestavena, kterou verzi použít a úplný příklad, který projde validací proti oficiálnímu schématu.

pain.001 je zpráva ISO 20022, kterou firma posílá své bance k zadání jednoho nebo více převodů. Její celý název je Customer Credit Transfer Initiation (zadání převodu klientem): „pain“ označuje rodinu zpráv pro iniciaci plateb, .001 je číslo zprávy a přípona, například pain.001.001.09, je verze. Jde o XML ověřované proti oficiálnímu schématu (XSD), které nahrazuje bankovní formáty CSV a textovou zprávu SWIFT MT101.

pain.001 za minutu#

  • Kdo ji posílá: firma (plátce nebo zástupce jednající jeho jménem) ji posílá své vlastní bance (bance plátce).
  • Co obsahuje: jednu nebo více dávek převodů, každou s účtem plátce, požadovaným datem splatnosti a libovolným počtem plateb příjemcům.
  • Co se vrací: banka odpovídá zprávou pain.002, Customer Payment Status Report, která soubor nebo jednotlivé transakce přijme či odmítne s kódy důvodů ISO.
  • Co následuje: po přijetí banka převede každý příkaz na mezibankovní zprávy, například pacs.008, které firma nikdy nevidí.
  • Kde se používá: u převodů SEPA podle pravidel EPC, u přeshraničních plateb přes Swift v rámci CBPR+ (pain.001.001.09) a v mnoha domácích systémech. Korpus příkladů Pain001 pokrývá 42 scénářů na 17 trzích.

Jak je zpráva pain.001 strukturována#

Všechny verze sdílejí stejnou třístupňovou kostru uvnitř elementu <CstmrCdtTrfInitn>.

Úroveň Element Obsah
1 <GrpHdr> Záhlaví skupiny ID zprávy, čas vytvoření, počet transakcí (NbOfTxs), kontrolní součet (CtrlSum), iniciující strana
2 <PmtInf> Platební informace Jedna dávka: způsob platby, požadované datum splatnosti, plátce, účet a banka plátce, nesení poplatků
3 <CdtTrfTxInf> Transakce převodu Jedna platba: referenční údaj end-to-end, částka a měna, příjemce, účet a banka příjemce, informace pro příjemce

Soubor může obsahovat několik dávek <PmtInf> a každá dávka mnoho plateb <CdtTrfTxInf>. NbOfTxs a CtrlSum se vyskytují na úrovni souboru i dávky a musí odpovídat platbám, které počítají; nesoulad je jedním z nejčastějších důvodů odmítnutí souboru bankou.

Úplný příklad pain.001#

Toto je jeden převod SEPA ve verzi pain.001.001.09, převzatý beze změny z korpusu příkladů Pain001. Projde validací proti oficiálnímu XSD ISO 20022. Strany, IBAN a BIC jsou smyšlené.

<?xml version='1.0' encoding='UTF-8'?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09">
  <CstmrCdtTrfInitn>
    <GrpHdr>
      <MsgId>OML-SCT-20260921</MsgId>
      <CreDtTm>2026-09-21T12:00:00</CreDtTm>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>2200.00</CtrlSum>
      <InitgPty>
        <Nm>Officine Meccaniche Lombarde SpA</Nm>
        <PstlAdr>
          <PstCd>20123</PstCd>
          <TwnNm>Milano</TwnNm>
          <Ctry>IT</Ctry>
          <AdrLine>Via Torino 15</AdrLine>
        </PstlAdr>
      </InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>SCT-20260921-IT-01</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <BtchBookg>false</BtchBookg>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>2200.00</CtrlSum>
      <PmtTpInf>
        <SvcLvl>
          <Cd>SEPA</Cd>
        </SvcLvl>
      </PmtTpInf>
      <ReqdExctnDt>
        <Dt>2026-09-22</Dt>
      </ReqdExctnDt>
      <Dbtr>
        <Nm>Officine Meccaniche Lombarde SpA</Nm>
        <PstlAdr>
          <PstCd>20123</PstCd>
          <TwnNm>Milano</TwnNm>
          <Ctry>IT</Ctry>
          <AdrLine>Via Torino 15</AdrLine>
        </PstlAdr>
      </Dbtr>
      <DbtrAcct>
        <Id>
          <IBAN>IT48T78971134594OGDKY5VXE41</IBAN>
        </Id>
      </DbtrAcct>
      <DbtrAgt>
        <FinInstnId>
          <BICFI>TLAOIT60</BICFI>
        </FinInstnId>
      </DbtrAgt>
      <ChrgBr>SLEV</ChrgBr>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>OML-2026-0921-01</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">2200.00</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BICFI>MHXHITI0</BICFI>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>Fonderia Bresciana Srl</Nm>
          <PstlAdr>
            <PstCd>25121</PstCd>
            <TwnNm>Brescia</TwnNm>
            <Ctry>IT</Ctry>
          </PstlAdr>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>IT23J14887404856NF3794IGWXN</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Fattura 117/2026</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
    </PmtInf>
  </CstmrCdtTrfInitn>
</Document>

Vyzkoušejte vlastní data v ukázce v prohlížeči: z CSV sestaví soubor pain.001 a ověří jej proti oficiálnímu schématu, aniž by data opustila váš počítač.

Verze pain.001#

ISO vydává novou verzi, když se změní model zprávy. Banky a platební systémy přijímají jen určité verze, proto posílejte tu, kterou uvádí dokumentace kanálu vaší banky.

Verze Poznámky
pain.001.001.03 Osvědčená verze pro SEPA a CGI; banky označuje elementem <BIC>
.04, .05, .06, .07, .08 Udržovací verze používané některými kanály
pain.001.001.09 Verze z roku 2019, kterou CBPR+ zvolilo pro Swift; banky označuje elementem <BICFI> a přidává přenos LEI a UETR
.10, .11, .12 Zpřesnění po roce 2019
pain.001.001.13 Vydána ISO 19. března 2026; přidává volitelný jedinečný identifikátor transakce (UnqTxIdr)

Matice kompatibility ukazuje, které verze Pain001 generuje, ověřuje a mezi kterými převádí.

Zpráva Směr Účel
pain.001 Firma své bance Zadává převody (odesílá peníze)
pain.002 Banka firmě Hlásí stav zprávy pain.001 nebo pain.008: přijato, částečně přijato nebo odmítnuto, s kódy důvodů
pain.008 Firma své bance Zadává inkasa (vybírá peníze na základě mandátu)
pacs.008 Banka bance Mezibankovní převod, v který se příkaz pain.001 promění
MT101 Firma nebo banka, přes Swift Původní textová zpráva „Request for Transfer“, kterou pain.001 nahrazuje. Swift v srpnu 2026 odložil ukončení mezibankovního přenosu MT101 (Swift); viz Z MT101 na pain.001

Glosář srozumitelně vysvětluje zbytek slovníku ISO 20022.

Proč banky odmítají soubory pain.001#

Soubor může být správně utvořené XML, a přesto být odmítnut. Kontroly se skládají do vrstev:

  1. Schéma: soubor musí projít validací proti oficiálnímu XSD své verze.
  2. Kvalita dat: IBAN projdou kontrolou kontrolních číslic, BIC jsou správně utvořené, data a částky jsou platné a NbOfTxs i CtrlSum odpovídají platbám.
  3. Pravidla systému: SEPA, CBPR+ a domácí systémy přidávají vlastní omezení, například povolenou znakovou sadu nebo strukturovanou poštovní adresu.
  4. Profil a kanál vaší banky: každá banka nad rámec systému zveřejňuje vlastní pokyny pro použití.

Pain001 ověří první tři vrstvy dříve, než soubor dorazí do banky, a jasně uvádí, že čtvrtou musí potvrdit banka.

Jak vytvořit soubor pain.001#

  • Z tabulky: Z Excelu na pain.001 převede seznam plateb v Excelu nebo CSV na ověřený soubor.
  • V prohlížeči: ukázka vygeneruje a ověří soubor lokálně, bez nahrávání.
  • Z kódu nebo příkazové řádky: nainstalujte open-source knihovnu pain001 a spusťte:
pain001 -t pain.001.001.09 -d payments.csv -o out/

Technická reference popisuje všechny volby a časté dotazy odpovídají na otázky, které nejčastěji kladou týmy treasury, provozu a vývoje.

Zdroje#