Examples

Ready-made files to try the validator and generator — download them or paste the contents straight into the studio.

pain.001.001.03

SEPA credit transfer

A valid SEPA credit-transfer file with two payments and a control sum.

Download XML

pain.001.001.09

SEPA SCT / CBPR+

Cross-border edition with UETR and structured addresses on every party.

Download XML

pain.008.001.02

SEPA Direct Debit

A SEPA direct debit with mandate information and a RCUR sequence type.

Download XML

CSV template

Credit transfer

Map these columns to SEPA fields in the Generator to build pain.001.

Download CSV

Inside a pain.001.001.03

SEPA credit transfer

Two credit transfers in one batch — the most common SEPA file you'll send.

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
  <CstmrCdtTrfInitn>
    <GrpHdr>
      <MsgId>PX-EXAMPLE-001</MsgId>
      <CreDtTm>2026-10-05T12:00:00</CreDtTm>
      <NbOfTxs>2</NbOfTxs>
      <CtrlSum>150.50</CtrlSum>
      <InitgPty>
        <Nm>ACME GmbH</Nm>
      </InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>PAY-EXAMPLE-001</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <NbOfTxs>2</NbOfTxs>
      <CtrlSum>150.50</CtrlSum>
      <PmtTpInf>
        <SvcLvl>
          <Cd>SEPA</Cd>
        </SvcLvl>
      </PmtTpInf>
      <ReqdExctnDt>2026-10-06</ReqdExctnDt>
      <Dbtr>
        <Nm>ACME GmbH</Nm>
      </Dbtr>
      <DbtrAcct>
        <Id>
          <IBAN>DE89370400440532013000</IBAN>
        </Id>
      </DbtrAcct>
      <DbtrAgt>
        <FinInstnId>
          <BIC>DEUTDEFF</BIC>
        </FinInstnId>
      </DbtrAgt>
      <ChrgBr>SLEV</ChrgBr>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>INV-1001</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">100.00</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BIC>DEUTDEFF</BIC>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>Alice Müller</Nm>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>DE89370400440532013000</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Invoice 1001</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>INV-1002</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">50.50</InstdAmt>
        </Amt>
        <Cdtr>
          <Nm>Bob Smith</Nm>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>DE89370400440532013000</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Invoice 1002</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
    </PmtInf>
  </CstmrCdtTrfInitn>
</Document>

CSV template

Map these columns in the Generator to produce a pain.001 file.

creditorName,creditorIban,creditorBic,amount,currency,endToEndId,remittanceInfo
Alice Müller,DE89370400440532013000,DEUTDEFF,100.00,EUR,INV-1001,Invoice 1001
Bob Smith,DE89370400440532013000,,50.50,EUR,INV-1002,Invoice 1002

How to use them

  1. 1

    Drop a pain.001 or pain.008 file into the Validator to see it pass schema and rulebook checks.

  2. 2

    Upload the CSV template to the Generator, map the columns, and build a fresh payment file.

Ready to go?

Everything runs locally in your browser — no uploads.

Open the studio