BankLint

Guides · Updated 2026-10-20

pain.001.001.09 XML example for a SEPA credit transfer

A pain.001 file has three levels: one group header (GrpHdr) for the whole message, one or more payment information blocks (PmtInf) for the debit side, and one or more transactions (CdtTrfTxInf) in each block. The synthetic file on this page is a complete pain.001.001.09 SEPA credit transfer with four payments that passes the ISO 20022 schema and BankLint’s SEPA rules.

The structure in one table

LevelElementOccursWhat it holds
MessageDocument/CstmrCdtTrfInitn1The root. The namespace urn:iso:std:iso:20022:tech:xsd:pain.001.001.09 identifies the version.
Group headerGrpHdr1Message id, creation time, totals for the whole file and the initiating party.
Payment informationPmtInf1 or moreOne debit side: payment method, requested execution date, debtor, debtor account and debtor agent, charge bearer.
TransactionCdtTrfTxInf1 or more per PmtInfOne payment: end-to-end reference, amount, creditor agent, creditor, creditor account and remittance information.

The complete file

All names, IBANs and the BIC TESTDEFFXXX are synthetic test data; the IBANs have valid check digits. Download the file, or validate it on the homepage with the sample “A clean SEPA file”.

pain001-accepted.xml
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09">
  <CstmrCdtTrfInitn>
    <GrpHdr>
      <MsgId>MSG-2026-0001</MsgId>
      <CreDtTm>2026-10-16T09:00:00</CreDtTm>
      <NbOfTxs>4</NbOfTxs>
      <CtrlSum>6460.44</CtrlSum>
      <InitgPty>
        <Nm>Synthetic Corp Example AG</Nm>
      </InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>PMTINF-0001</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <BtchBookg>true</BtchBookg>
      <NbOfTxs>4</NbOfTxs>
      <CtrlSum>6460.44</CtrlSum>
      <PmtTpInf>
        <SvcLvl>
          <Cd>SEPA</Cd>
        </SvcLvl>
      </PmtTpInf>
      <ReqdExctnDt>
        <Dt>2026-10-20</Dt>
      </ReqdExctnDt>
      <Dbtr>
        <Nm>Synthetic Corp Example AG</Nm>
        <PstlAdr>
          <StrtNm>Beispielweg</StrtNm>
          <BldgNb>1</BldgNb>
          <PstCd>12345</PstCd>
          <TwnNm>Musterstadt</TwnNm>
          <Ctry>DE</Ctry>
        </PstlAdr>
      </Dbtr>
      <DbtrAcct>
        <Id>
          <IBAN>DE50100000000000000001</IBAN>
        </Id>
      </DbtrAcct>
      <DbtrAgt>
        <FinInstnId>
          <BICFI>TESTDEFFXXX</BICFI>
        </FinInstnId>
      </DbtrAgt>
      <ChrgBr>SLEV</ChrgBr>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>E2E-INV-1001</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">1250.00</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BICFI>TESTDEFFXXX</BICFI>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>Example Supplier Alpha GmbH</Nm>
          <PstlAdr>
            <StrtNm>Beispielweg</StrtNm>
            <BldgNb>1</BldgNb>
            <PstCd>12345</PstCd>
            <TwnNm>Alphastadt</TwnNm>
            <Ctry>DE</Ctry>
          </PstlAdr>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>DE15200000000000000011</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Invoice INV-1001</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>E2E-INV-1002</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">310.45</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BICFI>TESTDEFFXXX</BICFI>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>Example Supplier Beta BV</Nm>
          <PstlAdr>
            <StrtNm>Beispielweg</StrtNm>
            <BldgNb>1</BldgNb>
            <PstCd>12345</PstCd>
            <TwnNm>Betadorp</TwnNm>
            <Ctry>NL</Ctry>
          </PstlAdr>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>NL84TEST0000000022</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Invoice INV-1002</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>E2E-INV-1003</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">99.99</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BICFI>TESTDEFFXXX</BICFI>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>Example Supplier Gamma SARL</Nm>
          <PstlAdr>
            <StrtNm>Beispielweg</StrtNm>
            <BldgNb>1</BldgNb>
            <PstCd>12345</PstCd>
            <TwnNm>Gammaville</TwnNm>
            <Ctry>FR</Ctry>
          </PstlAdr>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>FR7030000000000000000000033</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Invoice INV-1003</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>E2E-INV-1004</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">4800.00</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BICFI>TESTDEFFXXX</BICFI>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>Example Supplier Delta SRL</Nm>
          <PstlAdr>
            <StrtNm>Beispielweg</StrtNm>
            <BldgNb>1</BldgNb>
            <PstCd>12345</PstCd>
            <TwnNm>Deltapoli</TwnNm>
            <Ctry>IT</Ctry>
          </PstlAdr>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>IT54X0000000000000000000044</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Invoice INV-1004</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
    </PmtInf>
  </CstmrCdtTrfInitn>
</Document>

Element by element

Paths are relative to CstmrCdtTrfInitn. The SEPA column gives the rule of the EPC customer-to-PSP implementation guidelines (EPC132-08 2025 v1.0, section 2.1.1) and the BankLint rule that checks it.

ElementValue in the exampleMeaningSEPA rule
GrpHdr/MsgIdMSG-2026-0001Message reference set by the sender, 1 to 35 characters, unique per bank for a pre-agreed period.Latin character set, no "/" at the start or end, no "//" (SEPA-SCT-ID-001).
GrpHdr/CreDtTm2026-10-16T09:00:00Creation date and time (ISO date-time with a "T").As in ISO 20022.
GrpHdr/NbOfTxs4Number of transactions in the whole file.Checked against the transactions; validation depends on your agreement with the bank (SEPA-SCT-NBOFTXS-002).
GrpHdr/CtrlSum6460.44Sum of all transaction amounts in the file.Mandatory in SEPA, at most two decimals (SEPA-SCT-CTRLSUM-001, SEPA-SCT-CTRLSUM-003).
GrpHdr/InitgPty/NmSynthetic Corp Example AGThe party that sends the file: the debtor or a party acting for it.At most 70 characters (SEPA-SCT-NAME-001).
PmtInf/PmtInfIdPMTINF-0001Reference of this payment information block.Same character rules as MsgId (SEPA-SCT-ID-001).
PmtInf/PmtMtdTRFPayment method: credit transfer.Only TRF (SEPA-SCT-PMTMTD-001).
PmtInf/BtchBookgtruetrue requests one debit entry for the block, false one entry per transaction.Optional; when absent, your agreement with the bank applies.
PmtInf/NbOfTxs, PmtInf/CtrlSum4, 6460.44Totals of this block.Both mandatory in SEPA (SEPA-SCT-NBOFTXS-001, SEPA-SCT-CTRLSUM-002).
PmtInf/PmtTpInf/SvcLvl/CdSEPAService level: the payment follows the SEPA scheme.Payment type information here or in every transaction (SEPA-SCT-PTI-001); only "SEPA" (SEPA-SCT-SVCLVL-001).
PmtInf/ReqdExctnDt/Dt2026-10-20Requested execution date: the day the debtor account is to be debited. In .09 a choice of Dt or DtTm.Use Dt: DtTm is not a SEPA core element (SEPA-SCT-CORE-002).
PmtInf/Dbtr/NmSynthetic Corp Example AGName of the debtor (the originator).Mandatory (SEPA-SCT-NAME-004), at most 70 characters (SEPA-SCT-NAME-002).
PmtInf/Dbtr/PstlAdrStreet, number, post code, town, countryA structured address: separate elements, TwnNm and Ctry present, no AdrLine.TwnNm and Ctry for structured or hybrid addresses (SEPA-SCT-ADDR-002), at most two AdrLine (SEPA-SCT-ADDR-001). See structured addresses.
PmtInf/DbtrAcct/Id/IBANDE50100000000000000001The account to be debited.Only IBAN (SEPA-SCT-DBTRACCT-001) with valid check digits (SEPA-SCT-IBAN-001).
PmtInf/DbtrAgt/FinInstnId/BICFITESTDEFFXXXBIC of the debtor’s bank.BICFI, or Othr/Id "NOTPROVIDED" (SEPA-SCT-DBTRAGT-001).
PmtInf/ChrgBrSLEVCharge bearer: charges follow the scheme rules.Only SLEV, recommended at this level (SEPA-SCT-CHRGBR-001, SEPA-SCT-CHRGBR-002).
CdtTrfTxInf/PmtId/EndToEndIdE2E-INV-1001The originator’s reference, passed unchanged to the creditor.Latin character set, slash rules (SEPA-SCT-ID-002).
CdtTrfTxInf/Amt/InstdAmtCcy="EUR", 1250.00Amount and currency of the payment.Only EUR (SEPA-SCT-CCY-001), 0.01 to 999999999.99 (SEPA-SCT-AMT-001), at most two decimals (SEPA-SCT-AMT-002). Use InstdAmt, not EqvtAmt (SEPA-SCT-CORE-001).
CdtTrfTxInf/CdtrAgt/FinInstnId/BICFITESTDEFFXXXBIC of the creditor’s bank (optional).Only BICFI; leave out CdtrAgt when no BIC is known (SEPA-SCT-CDTRAGT-001).
CdtTrfTxInf/Cdtr/NmExample Supplier Alpha GmbHName of the creditor (the beneficiary).Mandatory (SEPA-SCT-NAME-005), at most 70 characters (SEPA-SCT-NAME-003).
CdtTrfTxInf/CdtrAcct/Id/IBANDE15200000000000000011The account to be credited.Mandatory, only IBAN (SEPA-SCT-CDTRACCT-001) with valid check digits (SEPA-SCT-IBAN-002).
CdtTrfTxInf/RmtInf/UstrdInvoice INV-1001Unstructured remittance information for the creditor.One occurrence of up to 140 characters, not combined with Strd (SEPA-SCT-RMTINF-001, SEPA-SCT-RMTINF-002). See remittance information.

Optional elements the example leaves out

  • CdtTrfTxInf/PmtId/InstrId: a point-to-point reference between you and your bank (1 to 35 characters).
  • CdtTrfTxInf/PmtId/UETR: a UUID version 4 reference, new in .09; the schema pattern requires lowercase hexadecimal.
  • UltmtDbtr and UltmtCdtr: the ultimate debtor or creditor when they differ from the account holders; their names are also limited to 70 characters.
  • CdtTrfTxInf/Purp and PmtTpInf/CtgyPurp: purpose and category purpose codes.
  • RmtInf/Strd: structured remittance information, for example an RF creditor reference, instead of Ustrd.

Try the variants

Questions

What is the namespace of pain.001.001.09?

urn:iso:std:iso:20022:tech:xsd:pain.001.001.09. The root element is Document, and its only child is CstmrCdtTrfInitn.

Can one pain.001 file contain several debtor accounts or execution dates?

Yes. Debtor, debtor account, debtor agent and requested execution date belong to the payment information block (PmtInf), and a file may contain several blocks, each with its own transactions.

Is this sample real payment data?

No. It is synthetic test data from BankLint’s corpus: the companies, IBANs and the BIC TESTDEFFXXX are invented, although the IBANs have valid check digits.

Validate a pain.001 fileFree, no account needed, files are not stored.