ValidateFin

camt.053.001.08 — three accounts in one file

Eine camt.053-Nachricht, drei <Stmt>-Blöcke: Girokonto, Sparkonto und USD-Konto. Die Datei ist schemakonform; der Validator sagt ausdrücklich, dass er nur den ersten Auszug auswertet. Genau darum geht es — ein Parser, der Stmt[0] nimmt und aufhört, verliert stillschweigend zwei Konten; diese Mehrkonten-Datei entlarvt ihn.

camt.053.001.08 — Gültig

Eine camt.053-Nachricht, drei <Stmt>-Blöcke: Girokonto, Sparkonto und USD-Konto. Die Datei ist schemakonform; der Validator sagt ausdrücklich, dass er nur den ersten Auszug auswertet. Genau darum geht es — ein Parser, der Stmt[0] nimmt und aufhört, verliert stillschweigend zwei Konten; diese Mehrkonten-Datei entlarvt ihn.

Kontoauszug (camt.052 / 053 / 054) camt.053.001.08 ISO 20022Erwartetes Ergebnis: Gültig — 1 Fehler

Was diese Datei zeigt

Eine camt.053-Nachricht, drei <Stmt>-Blöcke: Girokonto, Sparkonto und USD-Konto. Die Datei ist schemakonform; der Validator sagt ausdrücklich, dass er nur den ersten Auszug auswertet. Genau darum geht es — ein Parser, der Stmt[0] nimmt und aufhört, verliert stillschweigend zwei Konten; diese Mehrkonten-Datei entlarvt ihn.

Transaktionen2
Datum in der Datei2026-05-31

Die enthaltenen Fehler

  • MultiStmtAvertissement : le fichier contient 3 éléments 'Stmt' ; seul le premier est analysé (2 non analysé(s)).

Wörtlich aus dem Validator zitiert, nicht umformuliert.

Zuletzt geprüft: Lizenz: CC-BY-4.0

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 — bank statement, camt.053.001.08, THREE accounts in one message.
  A single camt.053 message may carry several <Stmt> blocks, one per account. Expected
  validation result: the file is well formed and schema-valid, and the validator reports
  that only the FIRST statement is analysed — which is exactly the trap: a parser that
  reads Stmt[0] and stops silently loses two accounts.

  All parties and account numbers are fictitious.
  Reference page: https://validatefin.com/en/resources/samples/camt053-multi-account
  License: CC-BY-4.0
-->
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.08"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <BkToCstmrStmt>
    <GrpHdr>
      <MsgId>CAMT053-MULTI-20260531</MsgId>
      <CreDtTm>2026-05-31T22:00:00</CreDtTm>
    </GrpHdr>

    <!-- ─── Compte 1 : compte courant EUR ─────────────────────────────────── -->
    <Stmt>
      <Id>STMT-ACCT1-2026-05</Id>
      <LglSeqNb>5</LglSeqNb>
      <CreDtTm>2026-05-31T22:00:00</CreDtTm>
      <FrToDt>
        <FrDtTm>2026-05-01T00:00:00</FrDtTm>
        <ToDtTm>2026-05-31T23:59:59</ToDtTm>
      </FrToDt>
      <Acct>
        <Id>
          <IBAN>NL91ABNA0417164300</IBAN>
        </Id>
        <Ccy>EUR</Ccy>
        <Nm>Rekening-courant</Nm>
        <Ownr>
          <Nm>Van Dijk Logistiek BV</Nm>
        </Ownr>
        <Svcr>
          <FinInstnId>
            <BICFI>ABNANL2A</BICFI>
          </FinInstnId>
        </Svcr>
      </Acct>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>OPBD</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="EUR">10000.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2026-05-01</Dt>
        </Dt>
      </Bal>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>CLBD</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="EUR">11749.50</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2026-05-31</Dt>
        </Dt>
      </Bal>
      <Ntry>
        <NtryRef>ACCT1-0001</NtryRef>
        <Amt Ccy="EUR">2500.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Sts>
          <Cd>BOOK</Cd>
        </Sts>
        <BookgDt>
          <Dt>2026-05-08</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2026-05-08</Dt>
        </ValDt>
        <BkTxCd>
          <Domn>
            <Cd>PMNT</Cd>
            <Fmly>
              <Cd>RCDT</Cd>
              <SubFmlyCd>ESCT</SubFmlyCd>
            </Fmly>
          </Domn>
        </BkTxCd>
        <NtryDtls>
          <TxDtls>
            <Refs>
              <EndToEndId>INV-2026-0501</EndToEndId>
            </Refs>
            <RltdPties>
              <Dbtr>
                <Pty>
                  <Nm>Havenbedrijf Rotterdam NV</Nm>
                </Pty>
              </Dbtr>
            </RltdPties>
            <RmtInf>
              <Ustrd>Factuur 2026-0501 transport</Ustrd>
            </RmtInf>
          </TxDtls>
        </NtryDtls>
        <AddtlNtryInf>SEPA OVERBOEKING ONTVANGEN</AddtlNtryInf>
      </Ntry>
      <Ntry>
        <NtryRef>ACCT1-0002</NtryRef>
        <Amt Ccy="EUR">750.50</Amt>
        <CdtDbtInd>DBIT</CdtDbtInd>
        <Sts>
          <Cd>BOOK</Cd>
        </Sts>
        <BookgDt>
          <Dt>2026-05-20</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2026-05-20</Dt>
        </ValDt>
        <BkTxCd>
          <Domn>
            <Cd>PMNT</Cd>
            <Fmly>
              <Cd>ICDT</Cd>
              <SubFmlyCd>ESCT</SubFmlyCd>
            </Fmly>
          </Domn>
        </BkTxCd>
        <AddtlNtryInf>SEPA OVERBOEKING BRANDSTOF</AddtlNtryInf>
      </Ntry>
    </Stmt>

    <!-- ─── Compte 2 : compte de reserve EUR ──────────────────────────────── -->
    <Stmt>
      <Id>STMT-ACCT2-2026-05</Id>
      <LglSeqNb>5</LglSeqNb>
      <CreDtTm>2026-05-31T22:00:00</CreDtTm>
      <FrToDt>
        <FrDtTm>2026-05-01T00:00:00</FrDtTm>
        <ToDtTm>2026-05-31T23:59:59</ToDtTm>
      </FrToDt>
      <Acct>
        <Id>
          <IBAN>NL39RABO0300065264</IBAN>
        </Id>
        <Ccy>EUR</Ccy>
        <Nm>Spaarrekening</Nm>
        <Ownr>
          <Nm>Van Dijk Logistiek BV</Nm>
        </Ownr>
        <Svcr>
          <FinInstnId>
            <BICFI>RABONL2U</BICFI>
          </FinInstnId>
        </Svcr>
      </Acct>
      <Bal>

160 / 309 lines shown — the complete file is in the download above.

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.

Kontoauszug (camt.052 / 053 / 054)