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-এর মতো আন্তঃব্যাংক বার্তায় রূপান্তর করে, যা প্রতিষ্ঠানটি কখনো দেখে না।
  • কোথায় ব্যবহৃত হয়: EPC নিয়মাবলির অধীনে SEPA ক্রেডিট ট্রান্সফারে, CBPR+-এর অধীনে Swift-এ আন্তঃসীমান্ত পেমেন্টে (pain.001.001.09), এবং বহু দেশীয় ব্যবস্থায়। Pain001-এর উদাহরণ সংকলন 17টি বাজারে 42টি পরিস্থিতি জুড়ে আছে।

একটি pain.001 বার্তার গঠন#

প্রতিটি সংস্করণ একটি <CstmrCdtTrfInitn> উপাদানের ভেতরে একই তিন-স্তরের কাঠামো ব্যবহার করে।

স্তর উপাদান যা থাকে
1 <GrpHdr> গ্রুপ হেডার বার্তার আইডি, তৈরির সময়, লেনদেনের সংখ্যা (NbOfTxs), নিয়ন্ত্রণ যোগফল (CtrlSum), সূচনাকারী পক্ষ
2 <PmtInf> পেমেন্ট তথ্য একটি ব্যাচ: পেমেন্ট পদ্ধতি, অনুরোধকৃত কার্যকর তারিখ, দেনাদার, দেনাদারের অ্যাকাউন্ট ও ব্যাংক, চার্জ বহনকারী
3 <CdtTrfTxInf> ক্রেডিট ট্রান্সফার লেনদেন একটি পেমেন্ট: এন্ড-টু-এন্ড রেফারেন্স, পরিমাণ ও মুদ্রা, পাওনাদার, পাওনাদারের অ্যাকাউন্ট ও ব্যাংক, রেমিট্যান্স তথ্য

একটি ফাইলে একাধিক <PmtInf> ব্যাচ থাকতে পারে, আর প্রতিটি ব্যাচে বহু <CdtTrfTxInf> পেমেন্ট। NbOfTxs ও CtrlSum ফাইল ও ব্যাচ উভয় স্তরে থাকে এবং যে পেমেন্টগুলো গণনা করে তার সঙ্গে মিলতে হয়; অমিল হওয়া ব্যাংকের ফাইল প্রত্যাখ্যানের সবচেয়ে সাধারণ কারণগুলোর একটি।

pain.001-এর একটি সম্পূর্ণ উদাহরণ#

এটি pain.001.001.09-এ একটি একক SEPA ক্রেডিট ট্রান্সফার, Pain001-এর উদাহরণ সংকলন থেকে অপরিবর্তিতভাবে নেওয়া। এটি অফিশিয়াল ISO 20022 XSD-তে যাচাই হয়। পক্ষগুলো, 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 CBPR+ যে 2019 সংস্করণটি 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/

টেকনিক্যাল রেফারেন্স প্রতিটি অপশন ব্যাখ্যা করে, আর সাধারণ প্রশ্নোত্তর ট্রেজারি, অপারেশনস ও ইঞ্জিনিয়ারিং দলের সবচেয়ে বেশি জিজ্ঞাসিত প্রশ্নের উত্তর দেয়।

সূত্র#

  • ISO 20022 বার্তার সংজ্ঞা ও সংরক্ষণাগার: iso20022.org
  • SEPA Credit Transfer নিয়মাবলি: European Payments Council
  • CBPR+ ও MT101 রিলে: Swift