อธิบาย 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 ซึ่งเป็นรายงานสถานะการชำระเงินของลูกค้า เพื่อยอมรับหรือปฏิเสธทั้งไฟล์หรือรายการแต่ละรายการพร้อมรหัสเหตุผลตาม 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>

ลองใช้ข้อมูลของคุณเองในเดโมบนเบราว์เซอร์: เครื่องมือจะสร้างไฟล์ pain.001 จาก CSV และตรวจสอบกับสคีมาทางการโดยข้อมูลไม่ออกจากเครื่องของคุณ

เวอร์ชันของ 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 เลื่อนการยกเลิกการส่งต่อ MT101 ระหว่างธนาคารออกไปเมื่อเดือนสิงหาคม 2026 (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/

เอกสารอ้างอิงทางเทคนิคครอบคลุมทุกตัวเลือก และคำถามที่พบบ่อยตอบคำถามที่ทีมบริหารเงิน ปฏิบัติการ และวิศวกรรมถามบ่อยที่สุด

แหล่งที่มา#

  • นิยามและคลังข้อความ ISO 20022: iso20022.org
  • คู่มือกฎการโอนเงิน SEPA: European Payments Council
  • CBPR+ และการส่งต่อ MT101: Swift