ValidateFin

pain.001.001.03 — nine-character BIC

Un pain.001 cuyo BIC del banco del beneficiario tiene nueve caracteres. La norma ISO 9362 admite 8 (entidad + país + localidad) u 11 (más un código de sucursal de 3 caracteres), nunca 9 ni 10. «BNPAFRPPX» es el aspecto típico de un código de sucursal truncado o rellenado a mano, y es el defecto que ambas capas detectan: el XSD oficial lo rechaza por su patrón de BIC y la capa de reglas por su longitud.

pain.001.001.03 — Inválido

Un pain.001 cuyo BIC del banco del beneficiario tiene nueve caracteres. La norma ISO 9362 admite 8 (entidad + país + localidad) u 11 (más un código de sucursal de 3 caracteres), nunca 9 ni 10. «BNPAFRPPX» es el aspecto típico de un código de sucursal truncado o rellenado a mano, y es el defecto que ambas capas detectan: el XSD oficial lo rechaza por su patrón de BIC y la capa de reglas por su longitud.

Transferencia SEPA (pain.001) pain.001.001.03 ISO 20022 / ISO 9362Resultado esperado: Inválido — 2 errores

Lo que muestra este fichero

Un pain.001 cuyo BIC del banco del beneficiario tiene nueve caracteres. La norma ISO 9362 admite 8 (entidad + país + localidad) u 11 (más un código de sucursal de 3 caracteres), nunca 9 ni 10. «BNPAFRPPX» es el aspecto típico de un código de sucursal truncado o rellenado a mano, y es el defecto que ambas capas detectan: el XSD oficial lo rechaza por su patrón de BIC y la capa de reglas por su longitud.

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

Los defectos que contiene

  • BICInvalid BIC for creditor Boulangerie Petit SARL: BNPAFRPPX

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 agent BIC is nine characters long.

  A BIC is 8 characters (institution + country + location) or 11 (plus a 3-character
  branch code). NEVER 9 or 10. "BNPAFRPPX" is what a truncated or hand-padded branch
  code looks like: it survives a naive length>=8 test and is rejected by the bank.
  Everything else in this file is correct — IBANs pass mod-97, the totals add up.

  All parties and account numbers are fictitious.
  Reference page: https://validatefin.com/en/resources/samples/sepa-pain001-invalid-bic
  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-BADBIC-2026-0001</MsgId>
      <CreDtTm>2026-03-02T08:00:00</CreDtTm>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>640.00</CtrlSum>
      <InitgPty>
        <Nm>ACME Corporation SA</Nm>
      </InitgPty>
    </GrpHdr>
    <PmtInf>
      <PmtInfId>PMT-BADBIC-20260302</PmtInfId>
      <PmtMtd>TRF</PmtMtd>
      <NbOfTxs>1</NbOfTxs>
      <CtrlSum>640.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-BADBIC-001</EndToEndId>
        </PmtId>
        <Amt>
          <InstdAmt Ccy="EUR">640.00</InstdAmt>
        </Amt>
        <CdtrAgt>
          <FinInstnId>
            <BIC>BNPAFRPPX</BIC>
          </FinInstnId>
        </CdtrAgt>
        <Cdtr>
          <Nm>Boulangerie Petit SARL</Nm>
        </Cdtr>
        <CdtrAcct>
          <Id>
            <IBAN>FR1420041010050500013M02606</IBAN>
          </Id>
        </CdtrAcct>
        <RmtInf>
          <Ustrd>Facture BP-2026-0117 - fournitures</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)