ValidateFin

camt.053.001.08 — three accounts in one file

Jeden komunikat camt.053, trzy bloki <Stmt>: rachunek bieżący, oszczędnościowy i walutowy w USD. Plik jest zgodny ze schematem; walidator wprost informuje, że analizuje wyłącznie pierwszy wyciąg. O to właśnie chodzi — parser, który bierze Stmt[0] i kończy, po cichu gubi dwa rachunki, a ten plik wielorachunkowy to obnaża.

camt.053.001.08 — Prawidłowy

Jeden komunikat camt.053, trzy bloki <Stmt>: rachunek bieżący, oszczędnościowy i walutowy w USD. Plik jest zgodny ze schematem; walidator wprost informuje, że analizuje wyłącznie pierwszy wyciąg. O to właśnie chodzi — parser, który bierze Stmt[0] i kończy, po cichu gubi dwa rachunki, a ten plik wielorachunkowy to obnaża.

Wyciąg bankowy (camt.052 / 053 / 054) camt.053.001.08 ISO 20022Oczekiwany wynik: Prawidłowy — 1 błędów

Co pokazuje ten plik

Jeden komunikat camt.053, trzy bloki <Stmt>: rachunek bieżący, oszczędnościowy i walutowy w USD. Plik jest zgodny ze schematem; walidator wprost informuje, że analizuje wyłącznie pierwszy wyciąg. O to właśnie chodzi — parser, który bierze Stmt[0] i kończy, po cichu gubi dwa rachunki, a ten plik wielorachunkowy to obnaża.

Transakcje2
Data w pliku2026-05-31

Zawarte wady

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

Cytowane dosłownie z walidatora, bez parafrazy.

Ostatnia weryfikacja: Licencja: CC-BY-4.0

Wszystkie strony, numery IBAN i kwoty poniżej są fikcyjne. IBAN-y są poprawne strukturalnie — przechodzą test mod-97 — ale nie należą do żadnego rzeczywistego rachunku.

Zawartość pliku

<?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.

Skąd wiemy, że te wyniki są aktualne

Każdy plik w tej bibliotece przechodzi przez walidator serwisu przy każdym buildzie. Oczekiwany wynik podany wyżej potwierdza test automatyczny: gdyby plik przestał odpowiadać temu, co głosi ta strona, build by się wywalił. Dwie odziedziczone fikstury naprawiono w ten sposób przed publikacją: trzy numery IBAN nie przechodziły mod-97, a kilka nazw używało znaków spoza podstawowego zestawu SEPA.

Wyciąg bankowy (camt.052 / 053 / 054)