ValidateFin

pain.008.001.08 — Due Date on Easter Monday, a TARGET closing day

Un adeudo directo SEPA válido cuya fecha de cobro es el 06/04/2026 — Lunes de Pascua, un día en que TARGET está cerrado. NO es un error, y un validador que lo rechazara rechazaría un fichero que el esquema acepta: el rulebook no prohíbe una fecha de cobro en día cerrado, define lo que le ocurre — «la fecha de liquidación será el siguiente día hábil inter-PSP». El dinero se mueve, pues, el martes 7 de abril, y el cobro debe llegar al banco del deudor un día hábil inter-PSP antes (D-1): el jueves 2 de abril — no el viernes 3, que es Viernes Santo. ValidateFin dice cuándo se moverá el dinero; nunca califica la fecha de fallo. Compruébelo en /tools/sepa-dates.

pain.008.001.08 — Válido

Un adeudo directo SEPA válido cuya fecha de cobro es el 06/04/2026 — Lunes de Pascua, un día en que TARGET está cerrado. NO es un error, y un validador que lo rechazara rechazaría un fichero que el esquema acepta: el rulebook no prohíbe una fecha de cobro en día cerrado, define lo que le ocurre — «la fecha de liquidación será el siguiente día hábil inter-PSP». El dinero se mueve, pues, el martes 7 de abril, y el cobro debe llegar al banco del deudor un día hábil inter-PSP antes (D-1): el jueves 2 de abril — no el viernes 3, que es Viernes Santo. ValidateFin dice cuándo se moverá el dinero; nunca califica la fecha de fallo. Compruébelo en /tools/sepa-dates.

Adeudo directo SEPA (pain.008) pain.008.001.08 ISO 20022 / EPC016-06 (SDD Core 2025)Resultado esperado: Válido

Lo que muestra este fichero

Un adeudo directo SEPA válido cuya fecha de cobro es el 06/04/2026 — Lunes de Pascua, un día en que TARGET está cerrado. NO es un error, y un validador que lo rechazara rechazaría un fichero que el esquema acepta: el rulebook no prohíbe una fecha de cobro en día cerrado, define lo que le ocurre — «la fecha de liquidación será el siguiente día hábil inter-PSP». El dinero se mueve, pues, el martes 7 de abril, y el cobro debe llegar al banco del deudor un día hábil inter-PSP antes (D-1): el jueves 2 de abril — no el viernes 3, que es Viernes Santo. ValidateFin dice cuándo se moverá el dinero; nunca califica la fecha de fallo. Compruébelo en /tools/sepa-dates.

Transacciones2
Total310,00 €
EsquemaCORE
Fecha en el fichero2026-04-06
Última verificación: Licencia: CC-BY-4.0

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 Direct Debit, pain.008.001.08, CORE scheme.
  Expected validation result: VALID — 2 collections, 310.00 EUR.

  THE POINT OF THIS FILE: the requested collection date (ReqdColltnDt) is
  2026-04-06 — Easter Monday, a day the TARGET system is CLOSED.

  That is NOT an error, and a validator that rejected it would reject a file the
  scheme accepts. The EPC rulebook does not forbid a Due Date on a closed day, it
  DEFINES what happens to it:

    "If the Due Date falls on a day which is not an Inter-PSP Business Day, then
     the Settlement Date will be the next Inter-PSP Business Day."
     — EPC016-06, 2025 SEPA Direct Debit Core Scheme Rulebook

  So the money does not move on 6 April. It moves on Tuesday 7 April 2026, the
  next day TARGET is open. And because the collection must reach the debtor bank
  one Inter-PSP Business Day before settlement (D-1), the latest presentation is
  Thursday 2 April — not Monday 6, and not Friday 3, which is Good Friday.

  The file is valid: ValidateFin says WHEN THE MONEY WILL MOVE, it never calls
  the date a fault. Check it against /tools/sepa-dates.

  All parties are fictitious. The IBANs pass the mod-97 check and the Creditor
  Scheme Identifier (ICS) passes the ISO 7064 MOD 97-10 check.
  Reference page: https://validatefin.com/en/resources/samples/sepa-pain008-target-closing-day
  License: CC-BY-4.0
-->
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.08"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <CstmrDrctDbtInitn>
    <GrpHdr>
      <MsgId>SDD-CORE-20260330-001</MsgId>
      <CreDtTm>2026-03-30T09:00:00</CreDtTm>
      <NbOfTxs>2</NbOfTxs>
      <CtrlSum>310.00</CtrlSum>
      <InitgPty>
        <Nm>Atelier Duval SARL</Nm>
      </InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>PMT-SDD-20260330-CORE</PmtInfId>
      <PmtMtd>DD</PmtMtd>
      <NbOfTxs>2</NbOfTxs>
      <CtrlSum>310.00</CtrlSum>
      <PmtTpInf>
        <SvcLvl>
          <Cd>SEPA</Cd>
        </SvcLvl>
        <LclInstrm>
          <Cd>CORE</Cd>
        </LclInstrm>
        <SeqTp>RCUR</SeqTp>
      </PmtTpInf>
      <!-- Lundi de Pâques 2026 : TARGET est fermé. Le règlement roule au 07/04. -->
      <ReqdColltnDt>2026-04-06</ReqdColltnDt>
      <Cdtr>
        <Nm>Atelier Duval SARL</Nm>
        <PstlAdr>
          <StrtNm>Rue de la Gare</StrtNm>
          <BldgNb>12</BldgNb>
          <PstCd>59000</PstCd>
          <TwnNm>Lille</TwnNm>
          <Ctry>FR</Ctry>
        </PstlAdr>
      </Cdtr>
      <CdtrAcct>
        <Id>
          <IBAN>FR7630006000011234567890189</IBAN>
        </Id>
        <Ccy>EUR</Ccy>
      </CdtrAcct>
      <CdtrAgt>
        <FinInstnId>
          <BICFI>AGRIFRPP</BICFI>
        </FinInstnId>
      </CdtrAgt>
      <ChrgBr>SLEV</ChrgBr>
      <CdtrSchmeId>
        <Id>
          <PrvtId>
            <Othr>
              <Id>FR72ZZZ123456</Id>
              <SchmeNm>
                <Prtry>SEPA</Prtry>
              </SchmeNm>
            </Othr>
          </PrvtId>
        </Id>
      </CdtrSchmeId>
      <DrctDbtTxInf>
        <PmtId>
          <EndToEndId>E2E-CORE-2026-0401</EndToEndId>
        </PmtId>
        <InstdAmt Ccy="EUR">180.00</InstdAmt>
        <DrctDbtTx>
          <MndtRltdInf>
            <MndtId>MNDT-2025-0117</MndtId>
            <DtOfSgntr>2025-01-17</DtOfSgntr>
            <AmdmntInd>false</AmdmntInd>
          </MndtRltdInf>
        </DrctDbtTx>
        <DbtrAgt>
          <FinInstnId>
            <BICFI>BNPAFRPP</BICFI>
          </FinInstnId>
        </DbtrAgt>
        <Dbtr>
          <Nm>Menuiserie Lambert SAS</Nm>
          <PstlAdr>
            <StrtNm>Avenue Jean Jaures</StrtNm>
            <BldgNb>88</BldgNb>
            <PstCd>69007</PstCd>
            <TwnNm>Lyon</TwnNm>
            <Ctry>FR</Ctry>
          </PstlAdr>
        </Dbtr>
        <DbtrAcct>
          <Id>
            <IBAN>FR1420041010050500013M02606</IBAN>
          </Id>
        </DbtrAcct>
        <RmtInf>
          <Ustrd>Abonnement maintenance - avril 2026</Ustrd>
        </RmtInf>
      </DrctDbtTxInf>
      <DrctDbtTxInf>
        <PmtId>
          <EndToEndId>E2E-CORE-2026-0402</EndToEndId>
        </PmtId>
        <InstdAmt Ccy="EUR">130.00</InstdAmt>
        <DrctDbtTx>
          <MndtRltdInf>
            <MndtId>MNDT-2025-0803</MndtId>
            <DtOfSgntr>2025-08-03</DtOfSgntr>
            <AmdmntInd>false</AmdmntInd>
          </MndtRltdInf>
        </DrctDbtTx>
        <DbtrAgt>
          <FinInstnId>
            <BICFI>GEBABEBB</BICFI>
          </FinInstnId>
        </DbtrAgt>
        <Dbtr>
          <Nm>Peeters Bouw BVBA</Nm>
          <PstlAdr>
            <StrtNm>Nieuwstraat</StrtNm>
            <BldgNb>23</BldgNb>
            <PstCd>1000</PstCd>
            <TwnNm>Brussel</TwnNm>
            <Ctry>BE</Ctry>
          </PstlAdr>
        </Dbtr>
        <DbtrAcct>
          <Id>
            <IBAN>BE68539007547034</IBAN>
          </Id>
        </DbtrAcct>
        <RmtInf>

160 / 167 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.

Adeudo directo SEPA (pain.008)