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).
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).
| Transaktionen | 4 |
|---|---|
| Summe | 3.350,00 € |
| Verfahren | SEPA |
| Datum in der Datei | 2026-03-10 |
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)
- pain.001.001.03 — valid credit transfer
- pain.001.001.09 — valid, hybrid address
- pain.001.001.03 — CtrlSum mismatch
- pain.001.001.03 — invalid IBAN
- pain.001.001.03 — NbOfTxs mismatch
- pain.001.001.03 — unstructured address after 2026-11-15
- pain.001.001.11 — valid, fully structured address, executed after 2026-11-15
- pain.001.001.03 — nine-character BIC
- pain.001.001.03 — accent and ampersand outside the SEPA character set
- pain.001.001.03 — 250 transfers, high-volume payroll run
- pain.001.001.03 — unstructured address, executed before 2026-11-15 (warning only)