pain.001.001.09 — valid, two payment batches with different execution dates
Un único fichero pain.001, dos bloques PmtInf: el lote A se ejecuta el 10/03/2026 con direcciones híbridas (TwnNm + Ctry + una AdrLine), el lote B el 20/11/2026 con direcciones totalmente estructuradas. Enseña las dos lecciones del fichero multilote: la regla EPC de dirección se evalúa lote a lote, con la fecha que lleva cada uno, y cada PmtInf tiene sus propios NbOfTxs / CtrlSum además de los totales del GrpHdr (4 transferencias, 3.350,00 EUR).
pain.001.001.09 — Válido
Un único fichero pain.001, dos bloques PmtInf: el lote A se ejecuta el 10/03/2026 con direcciones híbridas (TwnNm + Ctry + una AdrLine), el lote B el 20/11/2026 con direcciones totalmente estructuradas. Enseña las dos lecciones del fichero multilote: la regla EPC de dirección se evalúa lote a lote, con la fecha que lleva cada uno, y cada PmtInf tiene sus propios NbOfTxs / CtrlSum además de los totales del GrpHdr (4 transferencias, 3.350,00 EUR).
Lo que muestra este fichero
Un único fichero pain.001, dos bloques PmtInf: el lote A se ejecuta el 10/03/2026 con direcciones híbridas (TwnNm + Ctry + una AdrLine), el lote B el 20/11/2026 con direcciones totalmente estructuradas. Enseña las dos lecciones del fichero multilote: la regla EPC de dirección se evalúa lote a lote, con la fecha que lleva cada uno, y cada PmtInf tiene sus propios NbOfTxs / CtrlSum además de los totales del GrpHdr (4 transferencias, 3.350,00 EUR).
| Transacciones | 4 |
|---|---|
| Total | 3350,00 € |
| Esquema | SEPA |
| Fecha en el fichero | 2026-03-10 |
Todas las partes, IBAN e importes siguientes son ficticios. Los IBAN son estructuralmente válidos —superan el mod-97— pero no corresponden a ninguna cuenta real.
Contenido del fichero
<?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.
Cómo sabemos que estos resultados se sostienen
Cada fichero de esta biblioteca pasa por el propio validador del sitio en cada build. El resultado esperado indicado arriba lo verifica un test automatizado: si un fichero dejara de coincidir con lo que afirma esta página, el build fallaría. Dos fixtures heredadas se repararon así antes de publicarse: tres IBAN no superaban el mod-97 y varios nombres usaban caracteres fuera del juego SEPA básico.
Transferencia SEPA (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)