pain.001.001.03 — NbOfTxs mismatch
Eine pain.001, die sich verzählt: NbOfTxs nennt eine Transaktion, die Datei enthält aber zwei. Wie bei CtrlSum wird die Anzahl sowohl im Zahlungsstapel als auch im Datei-Header geprüft.
pain.001.001.03 — Ungültig
Eine pain.001, die sich verzählt: NbOfTxs nennt eine Transaktion, die Datei enthält aber zwei. Wie bei CtrlSum wird die Anzahl sowohl im Zahlungsstapel als auch im Datei-Header geprüft.
Was diese Datei zeigt
Eine pain.001, die sich verzählt: NbOfTxs nennt eine Transaktion, die Datei enthält aber zwei. Wie bei CtrlSum wird die Anzahl sowohl im Zahlungsstapel als auch im Datei-Header geprüft.
| Transaktionen | 2 |
|---|---|
| Verfahren | SEPA |
| Datum in der Datei | 2026-02-25 |
Die enthaltenen Fehler
- NbOfTxsPmtInf NbOfTxs mismatch: a payment batch declares 1 but contains 2 transactions.
- NbOfTxsNbOfTxs mismatch: header declares 1 but found 2 transactions.
Wörtlich aus dem Validator zitiert, nicht umformuliert.
Alle Parteien, IBANs und Beträge unten sind fiktiv. Die IBANs sind strukturell gültig — sie bestehen die Mod-97-Prüfung — gehören aber zu keinem realen Konto.
Dateiinhalt
<?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>
Woher wir wissen, dass diese Ergebnisse stimmen
Jede Datei dieser Bibliothek läuft bei jedem Build durch den eigenen Validator der Website. Das oben genannte erwartete Ergebnis wird von einem automatisierten Test geprüft: Passt eine Datei nicht mehr zu dem, was diese Seite behauptet, schlägt der Build fehl. Zwei geerbte Fixtures wurden so vor der Veröffentlichung repariert — drei IBANs scheiterten an der Mod-97-Prüfung, und mehrere Namen nutzten Zeichen außerhalb des SEPA-Basiszeichensatzes.
SEPA-Überweisung (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)