ValidateFin

pain.001.001.03 — accent and ampersand outside the SEPA character set

Un pain.001 cuyo beneficiario se llama «Café Renard & Fils SARL»: una letra acentuada y un ampersand, ambos fuera del juego de caracteres latino básico aprobado por el EPC (a-z A-Z 0-9 y / - ? : ( ) . , ' + espacio). El XML está bien formado y el XSD oficial lo acepta sin problema: Max70Text admite cualquier cadena. Este defecto vive por completo en la capa de reglas, y por eso estos ficheros llegan al banco, que los rechaza o los translitera en silencio.

pain.001.001.03 — Inválido

Un pain.001 cuyo beneficiario se llama «Café Renard & Fils SARL»: una letra acentuada y un ampersand, ambos fuera del juego de caracteres latino básico aprobado por el EPC (a-z A-Z 0-9 y / - ? : ( ) . , ' + espacio). El XML está bien formado y el XSD oficial lo acepta sin problema: Max70Text admite cualquier cadena. Este defecto vive por completo en la capa de reglas, y por eso estos ficheros llegan al banco, que los rechaza o los translitera en silencio.

Transferencia SEPA (pain.001) pain.001.001.03 ISO 20022 / EPC basic Latin setResultado esperado: Inválido — 1 errores

Lo que muestra este fichero

Un pain.001 cuyo beneficiario se llama «Café Renard & Fils SARL»: una letra acentuada y un ampersand, ambos fuera del juego de caracteres latino básico aprobado por el EPC (a-z A-Z 0-9 y / - ? : ( ) . , ' + espacio). El XML está bien formado y el XSD oficial lo acepta sin problema: Max70Text admite cualquier cadena. Este defecto vive por completo en la capa de reglas, y por eso estos ficheros llegan al banco, que los rechaza o los translitera en silencio.

Transacciones1
Total250,00 €
EsquemaSEPA
Fecha en el fichero2026-03-06

Los defectos que contiene

  • CharsetNon-SEPA character(s) in creditor name for "Café Renard & Fils SARL": é &. Allowed: a-z A-Z 0-9 / - ? : ( ) . , ' + space.

Citado literalmente del validador, sin parafrasear.

Ú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 Credit Transfer, pain.001.001.03, BROKEN ON PURPOSE.
  Expected validation result: INVALID — the creditor name leaves the basic SEPA
  character set.

  The EPC-approved Latin character set is: a-z A-Z 0-9 and / - ? : ( ) . , ' + space.
  The creditor here is "Cafe Renard & Fils SARL" spelled with an accented "e" and an
  ampersand, both of which are outside it. The XML is perfectly well-formed and the
  official XSD accepts it (Max70Text takes any string) — this defect lives entirely in
  the EPC rulebook layer, which is exactly why files like this reach the bank and are
  rejected or silently transliterated there.

  All parties and account numbers are fictitious.
  Reference page: https://validatefin.com/en/resources/samples/sepa-pain001-invalid-charset
  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-CHARSET-2026-0001</MsgId>
      <CreDtTm>2026-03-02T08:30:00</CreDtTm>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>250.00</CtrlSum>
      <InitgPty>
        <Nm>ACME Corporation SA</Nm>
      </InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>PMT-CHARSET-20260302</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>250.00</CtrlSum>
      <PmtTpInf>
        <SvcLvl>
          <Cd>SEPA</Cd>
        </SvcLvl>
      </PmtTpInf>
      <ReqdExctnDt>2026-03-06</ReqdExctnDt>
      <Dbtr>
        <Nm>ACME Corporation SA</Nm>
      </Dbtr>
      <DbtrAcct>
        <Id>
          <IBAN>FR7630006000011234567890189</IBAN>
        </Id>
      </DbtrAcct>
      <DbtrAgt>
        <FinInstnId>
          <BIC>BNPAFRPP</BIC>
        </FinInstnId>
      </DbtrAgt>
      <CdtTrfTxInf>
        <PmtId>
          <EndToEndId>E2E-CHARSET-001</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">250.00</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BIC>SOGEFRPP</BIC>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>Café Renard &amp; Fils SARL</Nm>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>FR3314508600001234567890150</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Facture CR-2026-0042 - restauration</Ustrd>
        </RmtInf>
      </CdtTrfTxInf>
    </PmtInf>
  </CstmrCdtTrfInitn>
</Document>

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)