ValidateFin

camt.053.001.08 — three accounts in one file

Un seul message camt.053, trois blocs <Stmt> : un compte courant, un compte d’épargne et un compte en USD. Le fichier est conforme au schéma ; le validateur annonce explicitement qu’il n’analyse que le premier relevé. C’est tout l’intérêt : un lecteur qui prend Stmt[0] et s’arrête perd deux comptes en silence, et c’est ce fichier multi-comptes qui le démasque.

camt.053.001.08 — Valide

Un seul message camt.053, trois blocs <Stmt> : un compte courant, un compte d’épargne et un compte en USD. Le fichier est conforme au schéma ; le validateur annonce explicitement qu’il n’analyse que le premier relevé. C’est tout l’intérêt : un lecteur qui prend Stmt[0] et s’arrête perd deux comptes en silence, et c’est ce fichier multi-comptes qui le démasque.

Relevé bancaire (camt.052 / 053 / 054) camt.053.001.08 ISO 20022Résultat attendu: Valide — 1 erreurs

Ce que montre ce fichier

Un seul message camt.053, trois blocs <Stmt> : un compte courant, un compte d’épargne et un compte en USD. Le fichier est conforme au schéma ; le validateur annonce explicitement qu’il n’analyse que le premier relevé. C’est tout l’intérêt : un lecteur qui prend Stmt[0] et s’arrête perd deux comptes en silence, et c’est ce fichier multi-comptes qui le démasque.

Transactions2
Date contenue dans le fichier2026-05-31

Les défauts qu’il porte

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

Cité mot pour mot depuis le validateur, sans reformulation.

Dernière vérification: Licence: CC-BY-4.0

Toutes les parties, IBAN et montants ci-dessous sont fictifs. Les IBAN sont structurellement valides — ils passent le mod-97 — mais ne correspondent à aucun compte réel.

Contenu du fichier

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

Comment nous savons que ces résultats tiennent

Chaque fichier de cette bibliothèque passe dans le validateur du site à chaque build. Le résultat attendu annoncé ci-dessus est vérifié par un test automatisé : si un fichier cessait de correspondre à ce que cette page affirme, le build échouerait. Deux fixtures héritées ont été réparées ainsi avant publication : trois IBAN échouaient au mod-97 et plusieurs libellés utilisaient des caractères hors du jeu SEPA de base.

Relevé bancaire (camt.052 / 053 / 054)