ValidateFin

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

Un ciclo stipendi realistico: 250 bonifici SEPA in un unico PmtInf, distribuiti su cinque paesi (DE, NL, BE, ES, FR), per 442.028,75 EUR. Ogni IBAN ha cifre di controllo mod-97 (ISO 7064) corrette e i due totali di controllo coincidono con la somma esatta, al centesimo. Serve a vedere come si comportano il proprio parser, il portale bancario o i propri strumenti su un file né giocattolo né patologico — e a verificare che un solo centesimo sbagliato in un lotto di queste dimensioni venga comunque intercettato dal solo CtrlSum.

pain.001.001.03 — Valido

Un ciclo stipendi realistico: 250 bonifici SEPA in un unico PmtInf, distribuiti su cinque paesi (DE, NL, BE, ES, FR), per 442.028,75 EUR. Ogni IBAN ha cifre di controllo mod-97 (ISO 7064) corrette e i due totali di controllo coincidono con la somma esatta, al centesimo. Serve a vedere come si comportano il proprio parser, il portale bancario o i propri strumenti su un file né giocattolo né patologico — e a verificare che un solo centesimo sbagliato in un lotto di queste dimensioni venga comunque intercettato dal solo CtrlSum.

Bonifico SEPA (pain.001) pain.001.001.03 ISO 20022Risultato atteso: Valido

Cosa mostra questo file

Un ciclo stipendi realistico: 250 bonifici SEPA in un unico PmtInf, distribuiti su cinque paesi (DE, NL, BE, ES, FR), per 442.028,75 EUR. Ogni IBAN ha cifre di controllo mod-97 (ISO 7064) corrette e i due totali di controllo coincidono con la somma esatta, al centesimo. Serve a vedere come si comportano il proprio parser, il portale bancario o i propri strumenti su un file né giocattolo né patologico — e a verificare che un solo centesimo sbagliato in un lotto di queste dimensioni venga comunque intercettato dal solo CtrlSum.

Transazioni250
Totale442.028,75 €
SchemaSEPA
Data nel file2026-03-27
Ultima verifica: Licenza: CC-BY-4.0

Tutte le parti, gli IBAN e gli importi qui sotto sono fittizi. Gli IBAN sono strutturalmente validi — superano il mod-97 — ma non corrispondono ad alcun conto reale.

Contenuto del file

<?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.

Come sappiamo che questi risultati reggono

Ogni file di questa libreria passa nel validatore del sito a ogni build. Il risultato atteso indicato sopra è verificato da un test automatico: se un file smettesse di corrispondere a quanto afferma questa pagina, la build fallirebbe. Due fixture ereditate sono state riparate così prima della pubblicazione: tre IBAN non superavano il mod-97 e diversi nomi usavano caratteri fuori dal set SEPA di base.

Bonifico SEPA (pain.001)