توضیح ISO 20022

pain.001 چیست؟ توضیح پیام انتقال وجه ISO 20022

پیام ISO 20022 که شرکت برای دستور انتقال وجه به بانک خود می‌فرستد: چیست، چگونه ساخته می‌شود، از کدام نسخه استفاده کنید، و یک نمونهٔ کامل که با طرح‌وارهٔ رسمی اعتبارسنجی می‌شود.

pain.001 پیام ISO 20022 است که شرکت برای دستور یک یا چند انتقال وجه به بانک خود می‌فرستد. نام کامل آن Customer Credit Transfer Initiation (آغاز انتقال اعتباری مشتری) است: «pain» خانوادهٔ پیام‌های آغاز پرداخت است، .001 شمارهٔ پیام، و پسوند، مانند pain.001.001.09، نسخه است. این پیام XML است، با یک طرح‌وارهٔ رسمی (XSD) اعتبارسنجی می‌شود و جایگزین قالب‌های CSV مختص هر بانک و پیام متنی SWIFT MT101 می‌شود.

pain.001 در یک دقیقه#

  • چه کسی آن را می‌فرستد: یک شرکت (بدهکار، یا نماینده‌ای که از طرف او عمل می‌کند) آن را به بانک خود (بانک بدهکار) می‌فرستد.
  • چه چیزی در بر دارد: یک یا چند دسته از انتقال‌ها، هر کدام با حساب بدهکار، تاریخ اجرای درخواستی و هر تعداد پرداخت به ذی‌نفعان.
  • چه چیزی برمی‌گردد: بانک با pain.002 پاسخ می‌دهد، یعنی Customer Payment Status Report، که فایل یا تراکنش‌های جداگانه را با کدهای دلیل ISO می‌پذیرد یا رد می‌کند.
  • پس از آن چه می‌شود: پس از پذیرش، بانک هر دستور را به پیام‌های بین‌بانکی مانند pacs.008 تبدیل می‌کند که شرکت هرگز آن‌ها را نمی‌بیند.
  • کجا به کار می‌رود: در انتقال‌های SEPA بر پایهٔ قواعد EPC، در پرداخت‌های برون‌مرزی روی Swift در چارچوب CBPR+ (pain.001.001.09) و در بسیاری از سامانه‌های داخلی. مجموعهٔ نمونه‌های Pain001 شامل 42 سناریو در 17 بازار است.

ساختار یک پیام pain.001#

همهٔ نسخه‌ها اسکلت سه‌سطحی یکسانی درون عنصر <CstmrCdtTrfInitn> دارند.

سطح عنصر محتوا
1 <GrpHdr> سرآیند گروه شناسهٔ پیام، زمان ایجاد، تعداد تراکنش‌ها (NbOfTxs)، جمع کنترلی (CtrlSum)، طرف آغازکننده
2 <PmtInf> اطلاعات پرداخت یک دسته: روش پرداخت، تاریخ اجرای درخواستی، بدهکار، حساب و بانک بدهکار، پرداخت‌کنندهٔ کارمزد
3 <CdtTrfTxInf> تراکنش انتقال یک پرداخت: مرجع سرتاسری، مبلغ و ارز، ذی‌نفع، حساب و بانک ذی‌نفع، اطلاعات بابت پرداخت

یک فایل می‌تواند چند دستهٔ <PmtInf> داشته باشد و هر دسته پرداخت‌های <CdtTrfTxInf> فراوان. NbOfTxs و CtrlSum هم در سطح فایل و هم در سطح دسته آمده‌اند و باید با پرداخت‌هایی که می‌شمارند مطابقت داشته باشند؛ ناهمخوانی آن‌ها از رایج‌ترین دلایل رد فایل از سوی بانک است.

یک نمونهٔ کامل pain.001#

این یک انتقال SEPA تکی در pain.001.001.09 است که بدون تغییر از مجموعهٔ نمونه‌های Pain001 برداشته شده است. با XSD رسمی ISO 20022 اعتبارسنجی می‌شود. طرفین، IBANها و BICها ساختگی‌اند.

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

داده‌های خود را در نسخهٔ نمایشی مرورگر امتحان کنید: از یک CSV فایل pain.001 می‌سازد و آن را با طرح‌وارهٔ رسمی اعتبارسنجی می‌کند، بی‌آنکه داده‌ها از رایانهٔ شما خارج شوند.

نسخه‌های pain.001#

ISO وقتی مدل پیام تغییر کند نسخهٔ تازه‌ای منتشر می‌کند. هر بانک و هر سامانه نسخه‌های مشخصی را می‌پذیرد، پس نسخه‌ای را بفرستید که مستندات کانال بانک شما نام برده است.

نسخه یادداشت‌ها
pain.001.001.03 نسخهٔ جاافتادهٔ SEPA و CGI؛ بانک‌ها را با <BIC> مشخص می‌کند
.04, .05, .06, .07, .08 نسخه‌های نگهداشتی که برخی کانال‌ها به کار می‌برند
pain.001.001.09 نسخهٔ 2019 که CBPR+ برای Swift برگزید؛ بانک‌ها را با <BICFI> مشخص می‌کند و انتقال LEI و UETR را می‌افزاید
.10, .11, .12 بهبودهای پس از 2019
pain.001.001.13 منتشرشده از سوی ISO در 19 مارس 2026؛ یک شناسهٔ یکتای اختیاری برای تراکنش (UnqTxIdr) می‌افزاید

ماتریس سازگاری نشان می‌دهد Pain001 کدام نسخه‌ها را تولید، اعتبارسنجی و به هم تبدیل می‌کند.

پیام جهت کاربرد
pain.001 از شرکت به بانک خود دستور انتقال وجه می‌دهد (پول را می‌فرستد)
pain.002 از بانک به شرکت وضعیت یک pain.001 یا pain.008 را گزارش می‌دهد: پذیرفته، تا حدی پذیرفته یا رد شده، همراه با کدهای دلیل
pain.008 از شرکت به بانک خود دستور برداشت مستقیم می‌دهد (پول را بر پایهٔ وکالت‌نامه وصول می‌کند)
pacs.008 از بانک به بانک انتقال بین‌بانکی‌ای که دستور pain.001 به آن تبدیل می‌شود
MT101 شرکت یا بانک، از طریق Swift پیام متنی قدیمی «Request for Transfer» که pain.001 جایگزین آن است. Swift در اوت 2026 کنار گذاشتن رلهٔ بین‌بانکی MT101 را به تعویق انداخت (Swift)؛ نگاه کنید به از MT101 به pain.001

واژه‌نامه بقیهٔ واژگان ISO 20022 را به زبان ساده توضیح می‌دهد.

چرا بانک‌ها فایل‌های pain.001 را رد می‌کنند#

یک فایل می‌تواند XML خوش‌ساخت باشد و باز هم رد شود. بررسی‌ها لایه‌لایه روی هم قرار می‌گیرند:

  1. طرح‌واره: فایل باید با XSD رسمی نسخهٔ خود اعتبارسنجی شود.
  2. کیفیت داده: IBANها از آزمون رقم کنترلی می‌گذرند، BICها درست ساخته شده‌اند، تاریخ‌ها و مبالغ معتبرند، و NbOfTxs و CtrlSum با پرداخت‌ها مطابقت دارند.
  3. قواعد سامانه: SEPA، CBPR+ و سامانه‌های داخلی محدودیت‌های خود را می‌افزایند، مانند مجموعه‌نویسه‌های مجاز یا نشانی پستی ساختاریافته.
  4. نمایه و کانال بانک شما: هر بانک افزون بر قواعد سامانه، راهنمای استفادهٔ خود را منتشر می‌کند.

Pain001 سه لایهٔ نخست را پیش از رسیدن فایل به بانک بررسی می‌کند و صریحاً می‌گوید که تأیید لایهٔ چهارم با بانک است.

چگونه یک فایل pain.001 بسازیم#

  • از صفحه‌گسترده: ابزار از Excel به pain.001 فهرست پرداخت‌های Excel یا CSV را به فایلی اعتبارسنجی‌شده تبدیل می‌کند.
  • در مرورگر: نسخهٔ نمایشی فایل را به‌صورت محلی و بدون بارگذاری می‌سازد و اعتبارسنجی می‌کند.
  • با کد یا خط فرمان: کتابخانهٔ متن‌باز pain001 را نصب و اجرا کنید:
pain001 -t pain.001.001.09 -d payments.csv -o out/

مرجع فنی همهٔ گزینه‌ها را پوشش می‌دهد و پرسش‌های متداول به پرسش‌هایی پاسخ می‌دهد که تیم‌های خزانه‌داری، عملیات و مهندسی بیشتر می‌پرسند.

منابع#