ISO 20022 açıklaması

pain.001 nedir? ISO 20022 kredi transferi başlatma mesajı

Bir şirketin kredi transferi talimatı vermek için bankasına gönderdiği ISO 20022 mesajı: nedir, nasıl yapılandırılır, hangi sürüm kullanılır ve resmi şemaya göre doğrulanan eksiksiz bir örnek.

pain.001, bir şirketin bir veya birden fazla kredi transferi talimatı vermek için bankasına gönderdiği ISO 20022 mesajıdır. Tam adı Customer Credit Transfer Initiation (müşteri kredi transferi başlatma) şeklindedir: "pain" ödeme başlatma mesaj ailesini, .001 mesaj numarasını, pain.001.001.09 gibi sonek ise sürümü belirtir. XML biçimindedir, resmi bir şemaya (XSD) göre doğrulanır ve bankalara özgü CSV biçimlerinin ve SWIFT MT101 metin mesajının yerini alır.

Bir dakikada pain.001#

  • Kim gönderir: bir şirket (borçlu ya da onun adına hareket eden bir aracı), mesajı kendi bankasına (borçlunun bankasına) gönderir.
  • Ne taşır: her biri bir borçlu hesabı, talep edilen bir işlem tarihi ve alacaklılara yapılacak herhangi sayıda ödeme içeren bir veya daha fazla kredi transferi grubu.
  • Geriye ne döner: banka, dosyayı veya tek tek işlemleri ISO gerekçe kodlarıyla kabul eden ya da reddeden müşteri ödeme durum raporu pain.002 ile yanıt verir.
  • Sonra ne olur: kabul edildikten sonra banka her talimatı, şirketin hiç görmediği pacs.008 gibi bankalar arası mesajlara dönüştürür.
  • Nerede kullanılır: EPC kural kitaplarına tabi SEPA kredi transferlerinde, Swift üzerinde CBPR+ kapsamındaki sınır ötesi ödemelerde (pain.001.001.09) ve birçok yerel ödeme sisteminde. Pain001'in örnek derlemi 17 pazarda 42 senaryoyu kapsar.

Bir pain.001 mesajının yapısı#

Tüm sürümler, bir <CstmrCdtTrfInitn> öğesi içinde aynı üç düzeyli iskeleti paylaşır.

Düzey Öğe İçeriği
1 <GrpHdr> Grup başlığı Mesaj kimliği, oluşturma zaman damgası, işlem sayısı (NbOfTxs), kontrol toplamı (CtrlSum), başlatan taraf
2 <PmtInf> Ödeme bilgileri Bir grup: ödeme yöntemi, talep edilen işlem tarihi, borçlu, borçlu hesabı ve bankası, masrafları üstlenen taraf
3 <CdtTrfTxInf> Kredi transferi işlemi Bir ödeme: uçtan uca referans, tutar ve para birimi, alacaklı, alacaklı hesabı ve bankası, ödeme açıklaması

Bir dosya birden fazla <PmtInf> grubu, her grup da çok sayıda <CdtTrfTxInf> ödemesi içerebilir. NbOfTxs ve CtrlSum hem dosya hem grup düzeyinde yer alır ve saydıkları ödemelerle eşleşmelidir; bu, bankaların dosyaları reddetmesinin en yaygın nedenlerinden biridir.

Eksiksiz bir pain.001 örneği#

Bu, Pain001'in örnek derleminden değiştirilmeden alınmış, pain.001.001.09 biçiminde tek bir SEPA kredi transferidir. Resmi ISO 20022 XSD'sine göre doğrulanır. Taraflar, IBAN'lar ve BIC'ler kurgusaldır.

<?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>

Kendi verilerinizi tarayıcı demosunda deneyin: bir CSV'den pain.001 dosyası oluşturur ve veriler cihazınızdan çıkmadan resmi şemaya göre doğrular.

pain.001 sürümleri#

ISO, mesaj modeli değiştiğinde yeni bir sürüm yayımlar. Bankalar ve ödeme sistemleri belirli sürümleri kabul eder; bu nedenle göndereceğiniz sürüm, bankanızın kanal belgelerinde belirtilen sürümdür.

Sürüm Notlar
pain.001.001.03 SEPA ve CGI'nin uzun süredir kullanılan temel sürümü; bankaları <BIC> ile tanımlar
.04, .05, .06, .07, .08 Belirli kanallarda kullanılan bakım sürümleri
pain.001.001.09 CBPR+'nın Swift için seçtiği 2019 sürümü; bankaları <BICFI> ile tanımlar, LEI ve UETR taşımayı ekler
.10, .11, .12 2019 sonrası iyileştirmeler
pain.001.001.13 ISO tarafından 19 Mart 2026'da yayımlandı; isteğe bağlı benzersiz işlem tanımlayıcısı (UnqTxIdr) ekler

Uyumluluk matrisi, Pain001'in hangi sürümleri ürettiğini, doğruladığını ve hangileri arasında taşıma yaptığını gösterir.

Mesaj Yön Amaç
pain.001 Şirketten bankasına Kredi transferi talimatı verir (para gönderir)
pain.002 Bankadan şirkete Bir pain.001 veya pain.008'in durumunu bildirir: kabul edildi, kısmen kabul edildi veya reddedildi; gerekçe kodlarıyla
pain.008 Şirketten bankasına Otomatik ödeme talimatı verir (bir yetki kapsamında tahsilat yapar)
pacs.008 Bankadan bankaya Bir pain.001 talimatının dönüştüğü bankalar arası kredi transferi
MT101 Şirket veya banka, Swift üzerinden pain.001'in yerini aldığı eski "Request for Transfer" metin mesajı. Swift, bankalar arası MT101 aktarımının kaldırılmasını Ağustos 2026'da erteledi (Swift); bkz. MT101'den pain.001'e

Sözlük, ISO 20022 terminolojisinin geri kalanını sade bir dille açıklar.

Bankalar pain.001 dosyalarını neden reddeder#

Bir dosya iyi biçimlendirilmiş bir XML olup yine de reddedilebilir. Kontroller katmanlar hâlinde üst üste biner:

  1. Şema: dosya, sürümüne ait resmi XSD'ye göre doğrulanmalıdır.
  2. Veri kalitesi: IBAN'lar kontrol basamaklarından geçer, BIC'ler doğru biçimdedir, tarihler ve tutarlar geçerlidir, NbOfTxs ve CtrlSum ödemelerle eşleşir.
  3. Ödeme sistemi kuralları: SEPA, CBPR+ ve yerel sistemler, izin verilen karakter kümesi veya yapılandırılmış posta adresi gibi kendi kısıtlarını ekler.
  4. Bankanızın profili ve kanalı: her banka, ödeme sisteminin üzerine kendi kullanım kılavuzlarını yayımlar.

Pain001 ilk üç katmanı dosya bankaya ulaşmadan önce kontrol eder ve dördüncüsünün bankanın onayına bağlı olduğunu açıkça belirtir.

pain.001 dosyası nasıl oluşturulur#

  • Bir elektronik tablodan: Excel'den pain.001'e, Excel veya CSV ödeme listesini doğrulanmış bir dosyaya dönüştürür.
  • Tarayıcıda: demo, dosyayı yükleme yapmadan yerel olarak oluşturur ve doğrular.
  • Koddan veya komut satırından: açık kaynaklı pain001 kütüphanesini kurun ve şunu çalıştırın:
pain001 -t pain.001.001.09 -d payments.csv -o out/

Teknik başvuru tüm seçenekleri kapsar; SSS ise hazine, operasyon ve mühendislik ekiplerinin en sık sorduğu soruları yanıtlar.

Kaynaklar#