pain.001.001.03 — NbOfTxs mismatch
Un pain.001 que se cuenta mal: NbOfTxs declara una transacción mientras que el fichero contiene dos. Como con CtrlSum, el recuento se comprueba en el lote de pagos y en la cabecera.
pain.001.001.03 — Inválido
Un pain.001 que se cuenta mal: NbOfTxs declara una transacción mientras que el fichero contiene dos. Como con CtrlSum, el recuento se comprueba en el lote de pagos y en la cabecera.
Lo que muestra este fichero
Un pain.001 que se cuenta mal: NbOfTxs declara una transacción mientras que el fichero contiene dos. Como con CtrlSum, el recuento se comprueba en el lote de pagos y en la cabecera.
| Transacciones | 2 |
|---|---|
| Esquema | SEPA |
| Fecha en el fichero | 2026-02-25 |
Los defectos que contiene
- NbOfTxsPmtInf NbOfTxs mismatch: a payment batch declares 1 but contains 2 transactions.
- NbOfTxsNbOfTxs mismatch: header declares 1 but found 2 transactions.
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: NbOfTxs declares 1 transaction but the file carries 2.
All parties and account numbers are fictitious.
Reference page: https://validatefin.com/en/resources/samples/sepa-pain001-invalid-nbtxs
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-NBTXS-001</MsgId>
<CreDtTm>2026-02-23T10:00:00</CreDtTm>
<NbOfTxs>1</NbOfTxs>
<!-- CtrlSum correct pour 2 transactions -->
<CtrlSum>800.00</CtrlSum>
<InitgPty>
<Nm>Societe Test NbOfTxs</Nm>
</InitgPty>
</GrpHdr>
<PmtInf>
<PmtInfId>PMT-ERR-NBTXS-001</PmtInfId>
<PmtMtd>TRF</PmtMtd>
<!-- NbOfTxs incorrect : declare 1, mais 2 transactions ci-dessous -->
<NbOfTxs>1</NbOfTxs>
<CtrlSum>800.00</CtrlSum>
<PmtTpInf>
<SvcLvl>
<Cd>SEPA</Cd>
</SvcLvl>
</PmtTpInf>
<ReqdExctnDt>2026-02-25</ReqdExctnDt>
<Dbtr>
<Nm>Societe Test NbOfTxs</Nm>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>FR7630006000011234567890189</IBAN>
</Id>
</DbtrAcct>
<DbtrAgt>
<FinInstnId>
<BIC>BNPAFRPP</BIC>
</FinInstnId>
</DbtrAgt>
<CdtTrfTxInf>
<PmtId>
<EndToEndId>E2E-NBTXS-001</EndToEndId>
</PmtId>
<Amt>
<InstdAmt Ccy="EUR">500.00</InstdAmt>
</Amt>
<CdtrAgt>
<FinInstnId>
<BIC>SOGEFRPP</BIC>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm>Premier Creancier</Nm>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>FR0430003000209876543210093</IBAN>
</Id>
</CdtrAcct>
<RmtInf>
<Ustrd>Paiement 1</Ustrd>
</RmtInf>
</CdtTrfTxInf>
<CdtTrfTxInf>
<PmtId>
<EndToEndId>E2E-NBTXS-002</EndToEndId>
</PmtId>
<Amt>
<InstdAmt Ccy="EUR">300.00</InstdAmt>
</Amt>
<CdtrAgt>
<FinInstnId>
<BIC>CMCIFRPP</BIC>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm>Deuxieme Creancier</Nm>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>FR3314508600001234567890150</IBAN>
</Id>
</CdtrAcct>
<RmtInf>
<Ustrd>Paiement 2</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 — invalid IBAN
- 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)