ValidateFin

pain.001.001.03 — 250 transfers, high-volume payroll run

Ein realistischer Gehaltslauf: 250 SEPA-Überweisungen in einer einzigen PmtInf, verteilt auf fünf Länder (DE, NL, BE, ES, FR), insgesamt 442.028,75 EUR. Jede IBAN trägt korrekte Mod-97-Prüfziffern (ISO 7064), und beide Kontrollsummen entsprechen der Summe auf den Cent genau. Damit lässt sich prüfen, wie der eigene Parser, das Bankportal oder die eigene Software auf eine Datei reagiert, die weder Spielzeug noch pathologisch ist — und dass ein einziger falscher Cent in einem Stapel dieser Größe allein von CtrlSum gefunden wird.

pain.001.001.03 — Gültig

Ein realistischer Gehaltslauf: 250 SEPA-Überweisungen in einer einzigen PmtInf, verteilt auf fünf Länder (DE, NL, BE, ES, FR), insgesamt 442.028,75 EUR. Jede IBAN trägt korrekte Mod-97-Prüfziffern (ISO 7064), und beide Kontrollsummen entsprechen der Summe auf den Cent genau. Damit lässt sich prüfen, wie der eigene Parser, das Bankportal oder die eigene Software auf eine Datei reagiert, die weder Spielzeug noch pathologisch ist — und dass ein einziger falscher Cent in einem Stapel dieser Größe allein von CtrlSum gefunden wird.

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

Was diese Datei zeigt

Ein realistischer Gehaltslauf: 250 SEPA-Überweisungen in einer einzigen PmtInf, verteilt auf fünf Länder (DE, NL, BE, ES, FR), insgesamt 442.028,75 EUR. Jede IBAN trägt korrekte Mod-97-Prüfziffern (ISO 7064), und beide Kontrollsummen entsprechen der Summe auf den Cent genau. Damit lässt sich prüfen, wie der eigene Parser, das Bankportal oder die eigene Software auf eine Datei reagiert, die weder Spielzeug noch pathologisch ist — und dass ein einziger falscher Cent in einem Stapel dieser Größe allein von CtrlSum gefunden wird.

Transaktionen250
Summe442.028,75 €
VerfahrenSEPA
Datum in der Datei2026-03-27
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.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.

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)