ValidateFin

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

Um processamento salarial realista: 250 transferências SEPA num único PmtInf, repartidas por cinco países (DE, NL, BE, ES, FR), num total de 442 028,75 EUR. Cada IBAN tem dígitos de controlo mod-97 (ISO 7064) corretos e os dois totais de controlo igualam a soma exata, ao cêntimo. Serve para ver como o seu parser, o seu portal bancário ou as suas ferramentas se comportam num ficheiro que não é nem de brincar nem patológico — e para confirmar que um único cêntimo errado num lote deste tamanho continua a ser apanhado só pelo CtrlSum.

pain.001.001.03 — Válido

Um processamento salarial realista: 250 transferências SEPA num único PmtInf, repartidas por cinco países (DE, NL, BE, ES, FR), num total de 442 028,75 EUR. Cada IBAN tem dígitos de controlo mod-97 (ISO 7064) corretos e os dois totais de controlo igualam a soma exata, ao cêntimo. Serve para ver como o seu parser, o seu portal bancário ou as suas ferramentas se comportam num ficheiro que não é nem de brincar nem patológico — e para confirmar que um único cêntimo errado num lote deste tamanho continua a ser apanhado só pelo CtrlSum.

Transferência SEPA (pain.001) pain.001.001.03 ISO 20022Resultado esperado: Válido

O que este ficheiro mostra

Um processamento salarial realista: 250 transferências SEPA num único PmtInf, repartidas por cinco países (DE, NL, BE, ES, FR), num total de 442 028,75 EUR. Cada IBAN tem dígitos de controlo mod-97 (ISO 7064) corretos e os dois totais de controlo igualam a soma exata, ao cêntimo. Serve para ver como o seu parser, o seu portal bancário ou as suas ferramentas se comportam num ficheiro que não é nem de brincar nem patológico — e para confirmar que um único cêntimo errado num lote deste tamanho continua a ser apanhado só pelo CtrlSum.

Transações250
Total€ 442.028,75
EsquemaSEPA
Data no ficheiro2026-03-27
Última verificação: Licença: CC-BY-4.0

Todas as partes, IBAN e montantes abaixo são fictícios. Os IBAN são estruturalmente válidos — passam no mod-97 — mas não correspondem a nenhuma conta real.

Conteúdo do ficheiro

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

Como sabemos que estes resultados se mantêm

Cada ficheiro desta biblioteca passa pelo próprio validador do site em cada build. O resultado esperado indicado acima é verificado por um teste automatizado: se um ficheiro deixasse de corresponder ao que esta página afirma, o build falharia. Duas fixtures herdadas foram reparadas assim antes da publicação: três IBAN falhavam o mod-97 e vários nomes usavam caracteres fora do conjunto SEPA básico.

Transferência SEPA (pain.001)