pain.001.001.03 — invalid IBAN
Un pain.001 con un IBAN de acreedor cuyos dos dígitos de control no superan la prueba mod-97 (ISO 7064). Todo lo demás es correcto, por lo que el validador señala exactamente un error.
pain.001.001.03 — Inválido
Un pain.001 con un IBAN de acreedor cuyos dos dígitos de control no superan la prueba mod-97 (ISO 7064). Todo lo demás es correcto, por lo que el validador señala exactamente un error.
Lo que muestra este fichero
Un pain.001 con un IBAN de acreedor cuyos dos dígitos de control no superan la prueba mod-97 (ISO 7064). Todo lo demás es correcto, por lo que el validador señala exactamente un error.
| Transacciones | 1 |
|---|---|
| Total | 1000,00 € |
| Esquema | SEPA |
| Fecha en el fichero | 2026-02-25 |
Los defectos que contiene
- IBANInvalid IBAN for creditor Creancier IBAN Errone: FR0030003000209876543210093
Citado literalmente del validador, sin parafrasear.
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.
Expected validation result: INVALID - exactly one error.
Deliberate defect: the creditor IBAN fails the ISO 7064 mod-97 checksum.
All parties and account numbers are fictitious.
Reference page: https://validatefin.com/en/resources/samples/sepa-pain001-invalid-iban
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>MSG-ERR-IBAN-001</MsgId>
<CreDtTm>2026-02-23T10:00:00</CreDtTm>
<NbOfTxs>1</NbOfTxs>
<CtrlSum>500.00</CtrlSum>
<InitgPty>
<Nm>Societe Test IBAN Invalide</Nm>
</InitgPty>
</GrpHdr>
<PmtInf>
<PmtInfId>PMT-ERR-IBAN-001</PmtInfId>
<PmtMtd>TRF</PmtMtd>
<NbOfTxs>1</NbOfTxs>
<CtrlSum>500.00</CtrlSum>
<PmtTpInf>
<SvcLvl>
<Cd>SEPA</Cd>
</SvcLvl>
</PmtTpInf>
<ReqdExctnDt>2026-02-25</ReqdExctnDt>
<Dbtr>
<Nm>Societe Test IBAN Invalide</Nm>
</Dbtr>
<DbtrAcct>
<Id>
<!-- IBAN debiteur valide -->
<IBAN>FR7630006000011234567890189</IBAN>
</Id>
</DbtrAcct>
<DbtrAgt>
<FinInstnId>
<BIC>BNPAFRPP</BIC>
</FinInstnId>
</DbtrAgt>
<CdtTrfTxInf>
<PmtId>
<EndToEndId>E2E-ERR-IBAN-001</EndToEndId>
</PmtId>
<Amt>
<InstdAmt Ccy="EUR">500.00</InstdAmt>
</Amt>
<CdtrAgt>
<FinInstnId>
<BIC>SOGEFRPP</BIC>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm>Creancier IBAN Errone</Nm>
</Cdtr>
<CdtrAcct>
<Id>
<!-- IBAN invalide : checksum mod-97 incorrect (00 au lieu de 76) -->
<IBAN>FR0030003000209876543210093</IBAN>
</Id>
</CdtrAcct>
<RmtInf>
<Ustrd>Test IBAN invalide</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)
- pain.001.001.03 — valid credit transfer
- pain.001.001.09 — valid, hybrid address
- pain.001.001.03 — CtrlSum mismatch
- 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.09 — valid, two payment batches with different execution dates
- 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)