ValidateFin

camt.053.001.08 — entry with no CdtDbtInd

La deuxième écriture porte un montant de 1 200,00 et aucun <CdtDbtInd>. En camt.053, les montants sont toujours non signés : sans l’indicateur de sens, le montant ne veut rien dire. Deux choses cassent d’un coup — le XSD officiel rejette le fichier (CdtDbtInd est obligatoire 1..1 sur une écriture), et un parseur qui bascule silencieusement sur CRDT comptabilise +1 200,00 au lieu de −1 200,00 et se retrouve à 2 400,00 de la vérité, ce que le contrôle de solde met alors au jour.

camt.053.001.08 — Invalide

La deuxième écriture porte un montant de 1 200,00 et aucun <CdtDbtInd>. En camt.053, les montants sont toujours non signés : sans l’indicateur de sens, le montant ne veut rien dire. Deux choses cassent d’un coup — le XSD officiel rejette le fichier (CdtDbtInd est obligatoire 1..1 sur une écriture), et un parseur qui bascule silencieusement sur CRDT comptabilise +1 200,00 au lieu de −1 200,00 et se retrouve à 2 400,00 de la vérité, ce que le contrôle de solde met alors au jour.

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

Ce que montre ce fichier

La deuxième écriture porte un montant de 1 200,00 et aucun <CdtDbtInd>. En camt.053, les montants sont toujours non signés : sans l’indicateur de sens, le montant ne veut rien dire. Deux choses cassent d’un coup — le XSD officiel rejette le fichier (CdtDbtInd est obligatoire 1..1 sur une écriture), et un parseur qui bascule silencieusement sur CRDT comptabilise +1 200,00 au lieu de −1 200,00 et se retrouve à 2 400,00 de la vérité, ce que le contrôle de solde met alors au jour.

Transactions3
Date contenue dans le fichier2026-02-28

Les défauts qu’il porte

  • CdtDbtIndÉcriture PL-2026-02-0002 : CdtDbtInd (sens débit/crédit) manquant — impossible de déterminer le sens du montant.
  • CLBDAvertissement : le solde de clôture (2000.00) ne correspond pas à l'ouverture ± mouvements comptabilisés (4400.00).

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, BROKEN ON PURPOSE.
  The second entry has NO <CdtDbtInd>. It is a debit of 1200.00 (the closing balance
  says so: 3000.00 + 500.00 - 1200.00 - 300.00 = 2000.00), but the file never says it.

  Two things break at once, and that is the whole lesson:
   * CdtDbtInd is MANDATORY (1..1) on ReportEntry — the official XSD rejects the file;
   * a parser that quietly defaults a missing direction to CRDT books +1200.00 instead
     of -1200.00 and lands 2400.00 away from the truth. The direction of an amount is
     never a default; a camt.053 amount is always unsigned and always needs its sign.

  All parties and account numbers are fictitious.
  Reference page: https://validatefin.com/en/resources/samples/camt053-missing-cdtdbtind
  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-NOIND-20260228</MsgId>
      <CreDtTm>2026-02-28T19:00:00</CreDtTm>
    </GrpHdr>
    <Stmt>
      <Id>STMT-PL-2026-02</Id>
      <LglSeqNb>2</LglSeqNb>
      <CreDtTm>2026-02-28T19:00:00</CreDtTm>
      <FrToDt>
        <FrDtTm>2026-02-01T00:00:00</FrDtTm>
        <ToDtTm>2026-02-28T23:59:59</ToDtTm>
      </FrToDt>
      <Acct>
        <Id>
          <IBAN>PL61109010140000071219812874</IBAN>
        </Id>
        <Ccy>EUR</Ccy>
        <Nm>Rachunek biezacy</Nm>
        <Ownr>
          <Nm>Stolarnia Wisla Sp z oo</Nm>
        </Ownr>
        <Svcr>
          <FinInstnId>
            <BICFI>WBKPPLPP</BICFI>
          </FinInstnId>
        </Svcr>
      </Acct>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>OPBD</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="EUR">3000.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2026-02-01</Dt>
        </Dt>
      </Bal>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>CLBD</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="EUR">2000.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2026-02-28</Dt>
        </Dt>
      </Bal>
      <!-- 1. Credit, correctement signe -->
      <Ntry>
        <NtryRef>PL-2026-02-0001</NtryRef>
        <Amt Ccy="EUR">500.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Sts>
          <Cd>BOOK</Cd>
        </Sts>
        <BookgDt>
          <Dt>2026-02-09</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2026-02-09</Dt>
        </ValDt>
        <BkTxCd>
          <Domn>
            <Cd>PMNT</Cd>
            <Fmly>
              <Cd>RCDT</Cd>
              <SubFmlyCd>ESCT</SubFmlyCd>
            </Fmly>
          </Domn>
        </BkTxCd>
        <AddtlNtryInf>PRZELEW PRZYCHODZACY</AddtlNtryInf>
      </Ntry>
      <!-- 2. DEFAUT : aucun CdtDbtInd. C'est un DEBIT de 1200.00, le fichier ne le dit pas. -->
      <Ntry>
        <NtryRef>PL-2026-02-0002</NtryRef>
        <Amt Ccy="EUR">1200.00</Amt>
        <Sts>
          <Cd>BOOK</Cd>
        </Sts>
        <BookgDt>
          <Dt>2026-02-17</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2026-02-17</Dt>
        </ValDt>
        <BkTxCd>
          <Domn>
            <Cd>PMNT</Cd>
            <Fmly>
              <Cd>ICDT</Cd>
              <SubFmlyCd>ESCT</SubFmlyCd>
            </Fmly>
          </Domn>
        </BkTxCd>
        <AddtlNtryInf>PRZELEW WYCHODZACY DOSTAWCA DREWNA</AddtlNtryInf>
      </Ntry>
      <!-- 3. Debit, correctement signe -->
      <Ntry>
        <NtryRef>PL-2026-02-0003</NtryRef>
        <Amt Ccy="EUR">300.00</Amt>
        <CdtDbtInd>DBIT</CdtDbtInd>
        <Sts>
          <Cd>BOOK</Cd>
        </Sts>
        <BookgDt>
          <Dt>2026-02-27</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2026-02-27</Dt>
        </ValDt>
        <BkTxCd>
          <Domn>
            <Cd>ACMT</Cd>
            <Fmly>
              <Cd>MDOP</Cd>
              <SubFmlyCd>CHRG</SubFmlyCd>
            </Fmly>
          </Domn>
        </BkTxCd>
        <AddtlNtryInf>OPLATY BANKOWE</AddtlNtryInf>
      </Ntry>
    </Stmt>
  </BkToCstmrStmt>
</Document>

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)