ValidateFin

pain.001.001.03 — unstructured address, executed before 2026-11-15 (warning only)

The twin of the blocking unstructured-address sample, with one thing changed: the execution date. Same AdrLine-only addresses, but ReqdExctnDt is 2026-09-30, before the EPC153-22 v2.1 cut-off, so the very same defect comes back as two warnings instead of two errors — the payment still goes through today. It also shows what "structured" really means: the debtor address has neither TwnNm nor Ctry, the creditor address has a Ctry and still no TwnNm. Ctry alone is not enough; TwnNm is the discriminator.

pain.001.001.03 — Valid

The twin of the blocking unstructured-address sample, with one thing changed: the execution date. Same AdrLine-only addresses, but ReqdExctnDt is 2026-09-30, before the EPC153-22 v2.1 cut-off, so the very same defect comes back as two warnings instead of two errors — the payment still goes through today. It also shows what "structured" really means: the debtor address has neither TwnNm nor Ctry, the creditor address has a Ctry and still no TwnNm. Ctry alone is not enough; TwnNm is the discriminator.

SEPA Credit Transfer (pain.001) pain.001.001.03 ISO 20022 / EPC153-22 v2.1Expected result: Valid — 2 warnings

What this file shows

The twin of the blocking unstructured-address sample, with one thing changed: the execution date. Same AdrLine-only addresses, but ReqdExctnDt is 2026-09-30, before the EPC153-22 v2.1 cut-off, so the very same defect comes back as two warnings instead of two errors — the payment still goes through today. It also shows what "structured" really means: the debtor address has neither TwnNm nor Ctry, the creditor address has a Ctry and still no TwnNm. Ctry alone is not enough; TwnNm is the discriminator.

Transactions1
Total€500.00
SchemeSEPA
Date in the file2026-09-30
Last verified: License: CC-BY-4.0

Every party, IBAN and amount below is fictitious. The IBANs are structurally valid — they pass the mod-97 check — but they belong to no real account.

File content

<?xml version="1.0" encoding="UTF-8"?>
<!--
  ValidateFin sample file — SEPA Credit Transfer, pain.001.001.03.
  Expected validation result: VALID with 2 WARNINGS — 1 transfer, 500.00 EUR.

  This is the twin of sepa-pain001-unstructured-address, with ONE character changed:
  the execution date. Both files carry the same unstructured addresses; this one is
  executed on 2026-09-30, BEFORE the EPC153-22 v2.1 cut-off of 2026-11-15, so the
  same defect is only a warning — the payment still goes through today.

  It also shows what "structured" actually means: the debtor address has neither
  TwnNm nor Ctry, the creditor address has a Ctry but still no TwnNm. Ctry alone
  is not enough — TwnNm is the discriminator.

  The trigger is the date INSIDE the file (ReqdExctnDt), never today's date.

  All parties and account numbers are fictitious.
  Reference page: https://validatefin.com/en/resources/samples/sepa-pain001-unstructured-address-warning
  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-UNSTRUCT-WARN-2026</MsgId>
      <CreDtTm>2026-09-25T10:00:00</CreDtTm>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>500.00</CtrlSum>
      <InitgPty>
        <Nm>ACME SA</Nm>
      </InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>PMT-UNSTRUCT-WARN-001</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>500.00</CtrlSum>
      <PmtTpInf>
        <SvcLvl>
          <Cd>SEPA</Cd>
        </SvcLvl>
      </PmtTpInf>
      <ReqdExctnDt>2026-09-30</ReqdExctnDt>
      <Dbtr>
        <Nm>ACME SA</Nm>
        <PstlAdr>
          <AdrLine>15 rue de la Paix</AdrLine>
          <AdrLine>75002 Paris</AdrLine>
        </PstlAdr>
      </Dbtr>
      <DbtrAcct>
        <Id>
          <IBAN>FR7630006000011234567890189</IBAN>
        </Id>
      </DbtrAcct>
      <DbtrAgt>
        <FinInstnId>
          <BIC>BNPAFRPP</BIC>
        </FinInstnId>
      </DbtrAgt>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>E2E-UNSTRUCT-WARN-001</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">500.00</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BIC>SOGEFRPP</BIC>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>Fournisseur SARL</Nm>
          <PstlAdr>
            <Ctry>FR</Ctry>
            <AdrLine>8 boulevard Victor Hugo</AdrLine>
            <AdrLine>69003 Lyon</AdrLine>
          </PstlAdr>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>FR3314508600001234567890150</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Facture FS-2026-0930 - prestation septembre</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
    </PmtInf>
  </CstmrCdtTrfInitn>
</Document>

How we know these results hold

Every file in this library is run through the site's own validator on each build. The expected result stated above is asserted by an automated test — if a file stopped matching what this page claims, the build would fail. Two inherited fixtures were repaired this way before publication: three IBANs failed the mod-97 check and several names used characters outside the basic SEPA character set.

SEPA Credit Transfer (pain.001)