ValidateFin

pain.001.001.09 — valid, two payment batches with different execution dates

Eine pain.001-Datei, zwei PmtInf-Blöcke: Stapel A wird am 10.03.2026 mit hybriden Adressen (TwnNm + Ctry + eine AdrLine) ausgeführt, Stapel B am 20.11.2026 mit vollständig strukturierten. Sie zeigt beides, was eine Mehrstapel-Datei lehrt: Die EPC-Adressregel wird je Stapel anhand dessen eigenem Datum geprüft, und jeder PmtInf trägt eigene NbOfTxs / CtrlSum zusätzlich zu den GrpHdr-Summen (4 Zahlungen, 3.350,00 EUR).

pain.001.001.09 — Gültig

Eine pain.001-Datei, zwei PmtInf-Blöcke: Stapel A wird am 10.03.2026 mit hybriden Adressen (TwnNm + Ctry + eine AdrLine) ausgeführt, Stapel B am 20.11.2026 mit vollständig strukturierten. Sie zeigt beides, was eine Mehrstapel-Datei lehrt: Die EPC-Adressregel wird je Stapel anhand dessen eigenem Datum geprüft, und jeder PmtInf trägt eigene NbOfTxs / CtrlSum zusätzlich zu den GrpHdr-Summen (4 Zahlungen, 3.350,00 EUR).

SEPA-Überweisung (pain.001) pain.001.001.09 ISO 20022Erwartetes Ergebnis: Gültig

Was diese Datei zeigt

Eine pain.001-Datei, zwei PmtInf-Blöcke: Stapel A wird am 10.03.2026 mit hybriden Adressen (TwnNm + Ctry + eine AdrLine) ausgeführt, Stapel B am 20.11.2026 mit vollständig strukturierten. Sie zeigt beides, was eine Mehrstapel-Datei lehrt: Die EPC-Adressregel wird je Stapel anhand dessen eigenem Datum geprüft, und jeder PmtInf trägt eigene NbOfTxs / CtrlSum zusätzlich zu den GrpHdr-Summen (4 Zahlungen, 3.350,00 EUR).

Transaktionen4
Summe3.350,00 €
VerfahrenSEPA
Datum in der Datei2026-03-10
Zuletzt geprüft: Lizenz: CC-BY-4.0

Alle Parteien, IBANs und Beträge unten sind fiktiv. Die IBANs sind strukturell gültig — sie bestehen die Mod-97-Prüfung — gehören aber zu keinem realen Konto.

Dateiinhalt

<?xml version="1.0" encoding="UTF-8"?>
<!--
  ValidateFin sample file — SEPA Credit Transfer, pain.001.001.09, TWO payment batches.
  Expected validation result: VALID — 4 transfers, 3 350.00 EUR, 0 warnings.

  One file, two <PmtInf> blocks, each with its own execution date, its own debtor
  account and its own NbOfTxs / CtrlSum:
    * batch A — ReqdExctnDt 2026-03-10, HYBRID addresses (TwnNm + Ctry + one AdrLine),
      2 transfers, 1 549.50 EUR;
    * batch B — ReqdExctnDt 2026-11-20, STRUCTURED addresses (no AdrLine at all),
      2 transfers, 1 800.50 EUR.
  The EPC structured-address rule is evaluated per batch, against the date the batch
  itself carries: batch B is past the 2026-11-15 cut-off, batch A is not. The GrpHdr
  totals cover the whole file (4 / 3 350.00) and each batch's own totals must add up
  to it — a per-batch total that lies is caught even when the header total is right.
  SEPA is a single-currency scheme: every amount is in EUR.

  All parties and account numbers are fictitious.
  Reference page: https://validatefin.com/en/resources/samples/sepa-pain001-multi-batch
  License: CC-BY-4.0
-->
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <CstmrCdtTrfInitn>
    <GrpHdr>
      <MsgId>CT-MULTIBATCH-2026-0001</MsgId>
      <CreDtTm>2026-03-02T11:20:00</CreDtTm>
      <NbOfTxs>4</NbOfTxs>
      <CtrlSum>3350.00</CtrlSum>
      <InitgPty>
        <Nm>Atlas Industries SA</Nm>
      </InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>PMT-BATCH-A-SUPPLIERS</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <NbOfTxs>2</NbOfTxs>
      <CtrlSum>1549.50</CtrlSum>
      <PmtTpInf>
        <SvcLvl>
          <Cd>SEPA</Cd>
        </SvcLvl>
      </PmtTpInf>
      <ReqdExctnDt>
        <Dt>2026-03-10</Dt>
      </ReqdExctnDt>
      <Dbtr>
        <Nm>Atlas Industries SA</Nm>
        <PstlAdr>
          <TwnNm>Paris</TwnNm>
          <Ctry>FR</Ctry>
          <AdrLine>18 avenue des Ateliers</AdrLine>
        </PstlAdr>
      </Dbtr>
      <DbtrAcct>
        <Id>
          <IBAN>FR7610107001011234567890129</IBAN>
        </Id>
        <Ccy>EUR</Ccy>
      </DbtrAcct>
      <DbtrAgt>
        <FinInstnId>
          <BICFI>CCBPFRPP</BICFI>
        </FinInstnId>
      </DbtrAgt>
      <ChrgBr>SLEV</ChrgBr>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>E2E-BATCH-A-001</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">1200.00</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BICFI>GEBABEBB</BICFI>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>Bureau Verhoeven BVBA</Nm>
          <PstlAdr>
            <TwnNm>Gent</TwnNm>
            <Ctry>BE</Ctry>
            <AdrLine>Korenlei 12</AdrLine>
          </PstlAdr>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>BE68539007547034</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Facture BV-2026-0311 - maintenance</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>E2E-BATCH-A-002</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">349.50</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BICFI>BCITITMM</BICFI>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>Rossi Forniture Srl</Nm>
          <PstlAdr>
            <TwnNm>Milano</TwnNm>
            <Ctry>IT</Ctry>
            <AdrLine>Via Torino 45</AdrLine>
          </PstlAdr>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>IT60X0542811101000000123456</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Fattura RF-2026-0088 - materiale</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
    </PmtInf>
    <PmtInf>
      <PmtInfId>PMT-BATCH-B-NOVEMBER</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <NbOfTxs>2</NbOfTxs>
      <CtrlSum>1800.50</CtrlSum>
      <PmtTpInf>
        <SvcLvl>
          <Cd>SEPA</Cd>
        </SvcLvl>
      </PmtTpInf>
      <ReqdExctnDt>
        <Dt>2026-11-20</Dt>
      </ReqdExctnDt>
      <Dbtr>
        <Nm>Atlas Industries SA</Nm>
        <PstlAdr>
          <StrtNm>Avenue des Ateliers</StrtNm>
          <BldgNb>18</BldgNb>
          <PstCd>75011</PstCd>
          <TwnNm>Paris</TwnNm>
          <Ctry>FR</Ctry>
        </PstlAdr>
      </Dbtr>
      <DbtrAcct>
        <Id>
          <IBAN>FR7630006000011234567890189</IBAN>
        </Id>
        <Ccy>EUR</Ccy>
      </DbtrAcct>
      <DbtrAgt>
        <FinInstnId>
          <BICFI>BNPAFRPP</BICFI>
        </FinInstnId>
      </DbtrAgt>
      <ChrgBr>SLEV</ChrgBr>

160 / 226 lines shown — the complete file is in the download above.

Woher wir wissen, dass diese Ergebnisse stimmen

Jede Datei dieser Bibliothek läuft bei jedem Build durch den eigenen Validator der Website. Das oben genannte erwartete Ergebnis wird von einem automatisierten Test geprüft: Passt eine Datei nicht mehr zu dem, was diese Seite behauptet, schlägt der Build fehl. Zwei geerbte Fixtures wurden so vor der Veröffentlichung repariert — drei IBANs scheiterten an der Mod-97-Prüfung, und mehrere Namen nutzten Zeichen außerhalb des SEPA-Basiszeichensatzes.

SEPA-Überweisung (pain.001)