ZagTrader

pain: Payments initiation

pain.001 Customer Credit Transfer Initiation

Written and maintained by ZagTrader. Last reviewed . How this page is sourced and checked

The pain.001 is the ISO 20022 message a customer, or a bank acting for it, sends to the bank that holds the account to order one or more credit transfers. The debtor’s bank turns each instruction into an interbank payment such as a pacs.008. Corporates send it to their banks over host-to-host or Swift channels, and in CBPR+ banks use it to relay a customer’s instruction to the account-holding bank, the role the MT101 played on FIN.

Message
CustomerCreditTransferInitiation
Root element
CstmrCdtTrfInitn
Common version
pain.001.001.09
MT equivalent
No direct equivalent

When pain.001 is used

In the corporate-to-bank channel a pain.001 is a payment file: a treasury or ERP system sends a batch of supplier payments, payroll or treasury transfers to its bank, which executes them and reports back with a pain.002 status and, after booking, camt.054 or camt.053 statements.

In CBPR+ the pain.001 has a narrower job on the Swift network. A customer sends its instruction to its relationship bank (the forwarding agent), which relays it to the bank that holds the account to be debited (the debtor agent). CBPR+ also lets a financial institution act as the initiating party to start multi-bank sweeps for a corporate customer. This is the relay scenario that the MT101 request for transfer covered on FIN.

The message has three levels. The group header describes the file and who initiated it. Each payment information block holds the debit side: debtor, debtor account, debtor agent, requested execution date. Each credit transfer transaction under it holds one payment: amount, creditor agent, creditor, remittance. The CBPR+ version allows exactly one of each.

The debtor agent checks the instruction against its mandate with the customer, debits the account on the requested date and sends the payment on as a pacs.008 (or pacs.009 when the creditor is a bank), keeping the end-to-end reference and UETR.

Versions in common use

VersionWhere it is used
pain.001.001.09CBPR+ relay and FI-initiated multi-bank sweeps on Swift (usage guideline SR2025); SEPA Credit Transfer customer-to-PSP guidelines (2025 rulebook).

pain.001 key elements

Paths are relative to Document/CstmrCdtTrfInitn. Occurrence is from the base message (pain.001.001.09); market practice such as CBPR+ or a CSD’s rules can make an optional element mandatory or forbid it.

ElementOccursMeaning
GrpHdrGroup Header[1..1]Data for the whole message.
MsgIdMessage Identification[1..1]The sender’s file reference. Banks often use it to detect a file sent twice.
CreDtTmCreation Date Time[1..1]When the file was created.
AuthstnAuthorisation[0..n]Authorisation code or text agreed with the bank. MT101 field 25.
NbOfTxsNumber Of Transactions[1..1]Total number of transactions in the file. Fixed at 1 in CBPR+.
CtrlSumControl Sum[0..1]Sum of all amounts, used as a check total by corporate channels.
InitgPtyInitiating Party[1..1]Who created the instruction: the corporate itself, a shared service centre, or a bank for sweeps. MT101 field 50a option C or L (instructing party).
FwdgAgtForwarding Agent[0..1]The bank that relays the instruction to the debtor agent in the CBPR+ relay scenario.
PmtInfPayment Information[1..n]The debit side shared by its transactions. One occurrence in CBPR+.
PmtInfIdPayment Information Identification[1..1]Reference of this debit batch, used to report status at batch level.
PmtMtdPayment Method[1..1]TRF credit transfer, CHK cheque or TRA transfer advice.
BtchBookgBatch Booking[0..1]true for one debit for the whole batch, false for one debit per transaction.
PmtTpInfPayment Type Information[0..1]Priority, service level (for example SEPA or a gpi code), local instrument and category purpose (for example INTC intra-company payment, TAXS tax payment).
ReqdExctnDtRequested Execution Date[1..1]The date the debtor wants the account debited, as Dt or DtTm. MT101 field 30.
DbtrDebtor[1..1]The account holder who pays. MT101 field 50a option F, G or H (ordering customer).
DbtrAcctDebtor Account[1..1]The account to debit, as IBAN or other ID.
DbtrAgtDebtor Agent[1..1]The bank holding the debtor’s account. MT101 field 52a (account servicing institution), or the Receiver.
UltmtDbtrUltimate Debtor[0..1]The party on whose behalf the debtor pays, for example in payments-on-behalf-of structures.
ChrgBrCharge Bearer[0..1]DEBT, CRED, SHAR or SLEV for all transactions of the block. MT101 field 71A.
ChrgsAcctCharges Account[0..1]A separate account for charges. MT101 field 25A.
CdtTrfTxInfCredit Transfer Transaction Information[1..n]One payment. One occurrence in CBPR+. MT101 sequence B.
PmtIdPayment Identification[1..1]References of the payment.
InstrIdInstruction Identification[0..1]Reference between the initiating party and the debtor agent. MT101 field 21.
EndToEndIdEnd To End Identification[1..1]The debtor’s reference that travels unchanged to the creditor in the interbank pacs.008.
UETRUETR[0..1]Lower-case UUID version 4. Optional in the base message, mandatory in CBPR+. See how to read a UETR.
InstdAmtInstructed Amount[0..1]Amount and currency to pay. MT101 field 32B. The alternative EqvtAmt asks to pay the equivalent of an amount in another currency.
XchgRateInfExchange Rate Information[0..1]Agreed rate and FX contract reference (CtrctId). MT101 fields 36 and 21F.
ChrgBrCharge Bearer[0..1]Charge bearer for this transaction when not set at block level.
IntrmyAgt1Intermediary Agent 1[0..1]Bank through which the payment must pass. MT101 field 56a.
CdtrAgtCreditor Agent[0..1]The creditor’s bank. MT101 field 57a.
CdtrCreditor[0..1]The beneficiary, with structured or hybrid address. MT101 field 59a.
CdtrAcctCreditor Account[0..1]The beneficiary’s account, IBAN where the country uses them. See IBAN and BIC errors.
InstrForCdtrAgtInstruction For Creditor Agent[0..n]Codes for the creditor’s bank: CHQB, HOLD, PHOB, TELB. MT101 field 23E.
PurpPurpose[0..1]Purpose code of the underlying payment, for example GDDS.
RgltryRptgRegulatory Reporting[0..n]Central bank reporting data. MT101 field 77B.
RmtInfRemittance Information[0..1]Ustrd free text (140 characters per occurrence) or Strd structured invoice data. In CBPR+ use one or the other, not both. MT101 field 70.

Rules worth knowing

  • CBPR+ restricts the base message: GrpHdr/NbOfTxs has the single value 1, PmtInf occurs once, CdtTrfTxInf occurs once, the payment-information NbOfTxs is removed and supplementary data is removed.
  • In CBPR+ the UETR is mandatory and a Business Application Header (head.001.001.02) is mandatory.
  • CBPR+ makes structured and unstructured remittance mutually exclusive: send Ustrd or Strd, or neither.
  • In CBPR+ names, addresses and remittance may use an extended character set (including characters such as @, # and &); other text fields are limited to the FIN-X character set.
  • The status of a pain.001 comes back in a pain.002 (customer payment status report), not in a pacs.002, because the conversation is between the customer side and its bank.
  • Corporate channels (host-to-host links, scheme rules such as SEPA) publish their own pain.001 guidelines; a file built for one bank or scheme is not automatically valid for another.

pain.001 XML example

CBPR+ relay. Gulf Trading LLC banks with ZagTrader Test Bank in Dubai (ZAGTAEADXXX) and also holds a GBP account with ZAGTGB2LXXX in London. It asks ZagTrader to relay an instruction: debit the London account on 22 October 2026 and pay GBP 25,000.00 to Acme Components Ltd at BANKGB2LXXX. ZagTrader is the forwarding agent, ZAGTGB2LXXX the debtor agent.

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09">
  <CstmrCdtTrfInitn>
    <GrpHdr>
      <MsgId>ZTREL2610200001</MsgId>
      <CreDtTm>2026-10-20T09:00:00+04:00</CreDtTm>
      <NbOfTxs>1</NbOfTxs>
      <InitgPty>
        <Nm>GULF TRADING LLC</Nm>
      </InitgPty>
      <FwdgAgt>
        <FinInstnId>
          <BICFI>ZAGTAEADXXX</BICFI>
        </FinInstnId>
      </FwdgAgt>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>GT-BATCH-2026-1020</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <ReqdExctnDt>
        <Dt>2026-10-22</Dt>
      </ReqdExctnDt>
      <Dbtr>
        <Nm>GULF TRADING LLC</Nm>
        <PstlAdr>
          <StrtNm>AL ABRAJ STREET</StrtNm>
          <BldgNm>BUSINESS BAY TOWER</BldgNm>
          <TwnNm>DUBAI</TwnNm>
          <Ctry>AE</Ctry>
        </PstlAdr>
      </Dbtr>
      <DbtrAcct>
        <Id>
          <IBAN>GB38ZAGT40051512345678</IBAN>
        </Id>
      </DbtrAcct>
      <DbtrAgt>
        <FinInstnId>
          <BICFI>ZAGTGB2LXXX</BICFI>
        </FinInstnId>
      </DbtrAgt>
      <ChrgBr>SHAR</ChrgBr>
      <CdtTrfTxInf>
        <PmtId>
          <InstrId>GT2610200001</InstrId>
          <EndToEndId>GT-PO-2026-0470</EndToEndId>
          <UETR>20afebc9-c689-4b40-adf4-07752183cb0e</UETR>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="GBP">25000.00</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BICFI>BANKGB2LXXX</BICFI>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>ACME COMPONENTS LTD</Nm>
          <PstlAdr>
            <StrtNm>HIGH STREET</StrtNm>
            <BldgNb>1</BldgNb>
            <PstCd>EC2V 9ZZ</PstCd>
            <TwnNm>LONDON</TwnNm>
            <Ctry>GB</Ctry>
          </PstlAdr>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>GB42BANK40051587654321</IBAN>
          </Id>
        </CdtrAcct>
        <Purp>
          <Cd>GDDS</Cd>
        </Purp>
        <RmtInf>
          <Ustrd>INVOICE 2026-0470</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
    </PmtInf>
  </CstmrCdtTrfInitn>
</Document>
Decode this example in the parser

ZAGTGB2LXXX debits Gulf Trading’s account on 22 October and sends a pacs.008 to BANKGB2LXXX with the same end-to-end ID and UETR.

In MT terms this is an MT101 from ZAGTAEADXXX to ZAGTGB2LXXX with 50H for the ordering customer and the account, 30 for the execution date and one sequence B.

On Swift the Document travels with a Business Application Header (not shown).

All identifiers are made up; the IBANs carry valid check digits.

MT equivalent

The FIN equivalent is the MT101 Request for Transfer, in which a forwarding bank passes its customer’s instruction to the account-holding bank, with one sequence A for the debit side and a repeating sequence B for the payments. CBPR+ defines pain.001.001.09 for the same relay scenario, limited to one payment per message.

MT101 is a request, not an interbank payment, so the interbank leg that follows is a pacs.008 or pacs.009. Structured or hybrid addresses must be present in the MT101 (option F of field 50 and 59) if they are to appear in an ISO 20022 equivalent; conversion does not structure an address for you.

ISO 20022 elementMT fieldNote
GrpHdr/MsgId20Sender’s reference of the message.
GrpHdr/Authstn25
GrpHdr/InitgPty50C / 50L (instructing party)
GrpHdr/FwdgAgtSender (header)The forwarding bank.
PmtInf/ReqdExctnDt30
PmtInf/Dbtr + DbtrAcct50F / 50G / 50H (ordering customer)
PmtInf/DbtrAgt52aOr the Receiver when 52a is absent.
PmtInf/ChrgBr71A
PmtInf/ChrgsAcct25A
PmtInf/CdtTrfTxInf/PmtId/InstrId21
PmtInf/CdtTrfTxInf/Amt/InstdAmt32B
PmtInf/CdtTrfTxInf/XchgRateInf/XchgRate36
PmtInf/CdtTrfTxInf/XchgRateInf/CtrctId21FFX deal reference.
PmtInf/CdtTrfTxInf/InstrForCdtrAgt23E
PmtInf/CdtTrfTxInf/IntrmyAgt156a
PmtInf/CdtTrfTxInf/CdtrAgt57a
PmtInf/CdtTrfTxInf/Cdtr + CdtrAcct59a
PmtInf/CdtTrfTxInf/RmtInf70
PmtInf/CdtTrfTxInf/RgltryRptg77B
none28DMessage index/total: an ISO file is not split into numbered messages.

Common errors and rejects

  1. More than one payment in a CBPR+ pain.001

    A corporate payment file with many transactions is fine on a host-to-host channel but breaks the CBPR+ guideline, which allows one payment information block with one transaction. Split relay instructions into one message per payment.

  2. UETR missing in the relay message

    The base schema makes the UETR optional, CBPR+ makes it mandatory. Generate a lower-case UUID version 4 and keep it for the pacs.008 that follows.

    How to fix it
  3. Both structured and unstructured remittance

    CBPR+ rejects a transaction that carries both Ustrd and Strd. Choose one.

  4. Wrong or missing creditor identifiers

    An invalid IBAN or creditor agent BIC passes the pain.001 checks of some channels and fails later as a pacs.002 reject. Validate IBAN check digits and BICs before sending.

    How to fix it
  5. Address does not meet the CBPR+ rules

    Debtor and creditor addresses need at least town and country as separate elements in a structured or hybrid address. Swift has postponed the end of fully unstructured addresses (planned for November 2026), but banks already ask for structured data.

pain.001 questions

What is a pain.001 message?
The ISO 20022 Customer Credit Transfer Initiation: a payment order from an account holder (or a bank relaying for it) to the bank that holds the account. The bank executes it as interbank payments such as pacs.008.
What is the difference between pain.001 and pacs.008?
A pain.001 goes from the customer side to the debtor’s bank and asks for payments. A pacs.008 goes between banks and carries the payment itself. One pain.001 transaction usually leads to one pacs.008.
What is the MT equivalent of pain.001?
The MT101 Request for Transfer for relay between banks on Swift. In corporate channels pain.001 also replaced proprietary and national file formats.
Which pain.001 version is used?
CBPR+ uses pain.001.001.09, as do the SEPA Credit Transfer customer-to-bank guidelines of the 2025 rulebook. Corporate banks publish their own versions and rules, so check your bank’s guide.
How many payments can one pain.001 contain?
The base message has no fixed limit: many payment information blocks, each with many transactions. CBPR+ allows one block with one transaction on the Swift network.
Where does the status of a pain.001 come back?
In a pain.002 Customer Payment Status Report from the bank. Booked debits then appear in camt.054 notifications or camt.053 statements.

All ISO 20022 messages · MT messages · MT to ISO 20022 migration