pain.001.001.03 — 250 transfers, high-volume payroll run
Een realistische loonrun: 250 SEPA-overboekingen in één PmtInf, verspreid over vijf landen (DE, NL, BE, ES, FR), samen 442.028,75 EUR. Elke IBAN draagt correcte mod-97-controlecijfers (ISO 7064) en beide controletotalen komen tot op de cent overeen met de som. Gebruik het om te zien hoe je parser, je bankportaal of je eigen tooling zich gedraagt op een bestand dat noch speelgoed noch pathologisch is — en om te controleren dat één verkeerde cent in een batch van dit formaat nog steeds door CtrlSum alleen wordt gevonden.
pain.001.001.03 — Geldig
Een realistische loonrun: 250 SEPA-overboekingen in één PmtInf, verspreid over vijf landen (DE, NL, BE, ES, FR), samen 442.028,75 EUR. Elke IBAN draagt correcte mod-97-controlecijfers (ISO 7064) en beide controletotalen komen tot op de cent overeen met de som. Gebruik het om te zien hoe je parser, je bankportaal of je eigen tooling zich gedraagt op een bestand dat noch speelgoed noch pathologisch is — en om te controleren dat één verkeerde cent in een batch van dit formaat nog steeds door CtrlSum alleen wordt gevonden.
Wat dit bestand laat zien
Een realistische loonrun: 250 SEPA-overboekingen in één PmtInf, verspreid over vijf landen (DE, NL, BE, ES, FR), samen 442.028,75 EUR. Elke IBAN draagt correcte mod-97-controlecijfers (ISO 7064) en beide controletotalen komen tot op de cent overeen met de som. Gebruik het om te zien hoe je parser, je bankportaal of je eigen tooling zich gedraagt op een bestand dat noch speelgoed noch pathologisch is — en om te controleren dat één verkeerde cent in een batch van dit formaat nog steeds door CtrlSum alleen wordt gevonden.
| Transacties | 250 |
|---|---|
| Totaal | € 442.028,75 |
| Schema | SEPA |
| Datum in het bestand | 2026-03-27 |
Alle partijen, IBAN's en bedragen hieronder zijn fictief. De IBAN's zijn structureel geldig — ze doorstaan de mod-97-controle — maar horen bij geen enkele echte rekening.
Bestandsinhoud
<?xml version="1.0" encoding="UTF-8"?>
<!--
ValidateFin sample file — SEPA Credit Transfer, pain.001.001.03, HIGH VOLUME.
Expected validation result: VALID — 250 transfers, 442028.75 EUR, 0 warnings.
A realistic payroll run: 250 credit transfers in a single PmtInf, spread over five
countries (DE, NL, BE, ES, FR). Every IBAN is generated with correct ISO 7064
mod-97 check digits, every name stays inside the basic SEPA character set, and the
GrpHdr and PmtInf control totals both equal the exact sum of the 250 amounts.
Use it to check how your parser, your bank portal or your own tooling behaves on a
file that is neither tiny nor pathological — and to see that a single wrong cent in
a batch this size is caught by CtrlSum alone.
All parties and account numbers are fictitious.
Reference page: https://validatefin.com/en/resources/samples/sepa-pain001-bulk-250
License: CC-BY-4.0
-->
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CstmrCdtTrfInitn>
<GrpHdr>
<MsgId>CT-BULK-202603-0001</MsgId>
<CreDtTm>2026-03-24T18:45:00</CreDtTm>
<NbOfTxs>250</NbOfTxs>
<CtrlSum>442028.75</CtrlSum>
<InitgPty>
<Nm>Northwind Services SA</Nm>
</InitgPty>
</GrpHdr>
<PmtInf>
<PmtInfId>PMT-BULK-PAYROLL-202603</PmtInfId>
<PmtMtd>TRF</PmtMtd>
<BtchBookg>true</BtchBookg>
<NbOfTxs>250</NbOfTxs>
<CtrlSum>442028.75</CtrlSum>
<PmtTpInf>
<SvcLvl>
<Cd>SEPA</Cd>
</SvcLvl>
<CtgyPurp>
<Cd>SALA</Cd>
</CtgyPurp>
</PmtTpInf>
<ReqdExctnDt>2026-03-27</ReqdExctnDt>
<Dbtr>
<Nm>Northwind Services SA</Nm>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>FR7610107001011234567890129</IBAN>
</Id>
<Ccy>EUR</Ccy>
</DbtrAcct>
<DbtrAgt>
<FinInstnId>
<BIC>CCBPFRPP</BIC>
</FinInstnId>
</DbtrAgt>
<ChrgBr>SLEV</ChrgBr>
<CdtTrfTxInf>
<PmtId>
<EndToEndId>E2E-PAYROLL-2026-03-001</EndToEndId>
</PmtId>
<Amt>
<InstdAmt Ccy="EUR">58.73</InstdAmt>
</Amt>
<CdtrAgt>
<FinInstnId>
<BIC>INGBNL2A</BIC>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm>Bruno Ivanov</Nm>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>NL25INGB0002000001</IBAN>
</Id>
</CdtrAcct>
<RmtInf>
<Ustrd>Salaire mars 2026 - matricule 1001</Ustrd>
</RmtInf>
</CdtTrfTxInf>
<CdtTrfTxInf>
<PmtId>
<EndToEndId>E2E-PAYROLL-2026-03-002</EndToEndId>
</PmtId>
<Amt>
<InstdAmt Ccy="EUR">72.46</InstdAmt>
</Amt>
<CdtrAgt>
<FinInstnId>
<BIC>GEBABEBB</BIC>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm>Carla Peeters</Nm>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>BE80300000000002</IBAN>
</Id>
</CdtrAcct>
<RmtInf>
<Ustrd>Salaire mars 2026 - matricule 1002</Ustrd>
</RmtInf>
</CdtTrfTxInf>
<CdtTrfTxInf>
<PmtId>
<EndToEndId>E2E-PAYROLL-2026-03-003</EndToEndId>
</PmtId>
<Amt>
<InstdAmt Ccy="EUR">86.19</InstdAmt>
</Amt>
<CdtrAgt>
<FinInstnId>
<BIC>CAIXESBB</BIC>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm>David Weber</Nm>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>ES6421000418004500000003</IBAN>
</Id>
</CdtrAcct>
<RmtInf>
<Ustrd>Salaire mars 2026 - matricule 1003</Ustrd>
</RmtInf>
</CdtTrfTxInf>
<CdtTrfTxInf>
<PmtId>
<EndToEndId>E2E-PAYROLL-2026-03-004</EndToEndId>
</PmtId>
<Amt>
<InstdAmt Ccy="EUR">99.92</InstdAmt>
</Amt>
<CdtrAgt>
<FinInstnId>
<BIC>BNPAFRPP</BIC>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm>Elena Garcia</Nm>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>FR7030004000011000000000485</IBAN>
</Id>
</CdtrAcct>
<RmtInf>
<Ustrd>Salaire mars 2026 - matricule 1004</Ustrd>
</RmtInf>
</CdtTrfTxInf>
<CdtTrfTxInf>
<PmtId>
<EndToEndId>E2E-PAYROLL-2026-03-005</EndToEndId>
</PmtId>160 / 6064 lines shown — the complete file is in the download above.
Hoe we weten dat deze resultaten kloppen
Elk bestand in deze bibliotheek gaat bij elke build door de eigen validator van de site. Het hierboven vermelde verwachte resultaat wordt door een geautomatiseerde test bevestigd: zou een bestand niet meer overeenkomen met wat deze pagina beweert, dan faalt de build. Twee overgeërfde fixtures zijn zo vóór publicatie hersteld: drie IBAN's zakten voor de mod-97-controle en meerdere namen gebruikten tekens buiten de SEPA-basistekenset.
SEPA-overboeking (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.09 — valid, two payment batches with different execution dates
- pain.001.001.03 — nine-character BIC
- pain.001.001.03 — accent and ampersand outside the SEPA character set
- pain.001.001.03 — unstructured address, executed before 2026-11-15 (warning only)