ValidateFin

camt.054.001.08 — valid debit/credit notification

A valid camt.054 debit/credit notification: one incoming SEPA credit and one outgoing direct debit, each with full TxDtls and end-to-end references. The structural surprise is what is NOT there: a camt.054 has no <Bal> element at all — the ISO 20022 schema does not define one. A notification announces movements, it never states a balance, so there is nothing to reconcile against.

camt.054.001.08 — Valid

A valid camt.054 debit/credit notification: one incoming SEPA credit and one outgoing direct debit, each with full TxDtls and end-to-end references. The structural surprise is what is NOT there: a camt.054 has no <Bal> element at all — the ISO 20022 schema does not define one. A notification announces movements, it never states a balance, so there is nothing to reconcile against.

Bank statement (camt.052 / 053 / 054) camt.054.001.08 ISO 20022Expected result: Valid

What this file shows

A valid camt.054 debit/credit notification: one incoming SEPA credit and one outgoing direct debit, each with full TxDtls and end-to-end references. The structural surprise is what is NOT there: a camt.054 has no <Bal> element at all — the ISO 20022 schema does not define one. A notification announces movements, it never states a balance, so there is nothing to reconcile against.

Transactions2
Date in the file2026-07-09
Last verified: License: CC-BY-4.0

Every party, IBAN and amount below is fictitious. The IBANs are structurally valid — they pass the mod-97 check — but they belong to no real account.

File content

<?xml version="1.0" encoding="UTF-8"?>
<!--
  ValidateFin sample file — debit/credit notification, camt.054.001.08.
  Expected validation result: VALID.

  camt.054 is the message a bank sends to ANNOUNCE individual debits and credits.
  Its root is BkToCstmrDbtCdtNtfctn and its container is <Ntfctn>. The structural
  point of this file: a camt.054 has NO <Bal> element at all — the ISO 20022 schema
  does not define one. A notification announces movements, it does not state a
  balance, so there is nothing to reconcile against. Anyone porting camt.053 code
  to camt.054 discovers this the hard way.
  Here: one incoming SEPA credit (2 480.00 EUR) and one outgoing direct debit
  (95.40 EUR), both with full TxDtls and end-to-end references.

  All parties and account numbers are fictitious.
  Reference page: https://validatefin.com/en/resources/samples/camt054-credit-notification
  License: CC-BY-4.0
-->
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <BkToCstmrDbtCdtNtfctn>
    <GrpHdr>
      <MsgId>CAMT054-20260709-0001</MsgId>
      <CreDtTm>2026-07-09T16:05:00</CreDtTm>
    </GrpHdr>
    <Ntfctn>
      <Id>NTFCTN-PT-20260709-0001</Id>
      <CreDtTm>2026-07-09T16:05:00</CreDtTm>
      <FrToDt>
        <FrDtTm>2026-07-09T00:00:00</FrDtTm>
        <ToDtTm>2026-07-09T16:05:00</ToDtTm>
      </FrToDt>
      <Acct>
        <Id>
          <IBAN>PT50000201231234567890154</IBAN>
        </Id>
        <Ccy>EUR</Ccy>
        <Nm>Conta a ordem</Nm>
        <Ownr>
          <Nm>Azulejos do Douro Lda</Nm>
        </Ownr>
        <Svcr>
          <FinInstnId>
            <BICFI>BCOMPTPL</BICFI>
          </FinInstnId>
        </Svcr>
      </Acct>
      <TxsSummry>
        <TtlNtries>
          <NbOfNtries>2</NbOfNtries>
        </TtlNtries>
        <TtlCdtNtries>
          <NbOfNtries>1</NbOfNtries>
          <Sum>2480.00</Sum>
        </TtlCdtNtries>
        <TtlDbtNtries>
          <NbOfNtries>1</NbOfNtries>
          <Sum>95.40</Sum>
        </TtlDbtNtries>
      </TxsSummry>
      <!-- Avis de CREDIT -->
      <Ntry>
        <NtryRef>PT-20260709-CRDT-01</NtryRef>
        <Amt Ccy="EUR">2480.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Sts>
          <Cd>BOOK</Cd>
        </Sts>
        <BookgDt>
          <DtTm>2026-07-09T15:58:00</DtTm>
        </BookgDt>
        <ValDt>
          <Dt>2026-07-09</Dt>
        </ValDt>
        <AcctSvcrRef>BCP20260709000442</AcctSvcrRef>
        <BkTxCd>
          <Domn>
            <Cd>PMNT</Cd>
            <Fmly>
              <Cd>RCDT</Cd>
              <SubFmlyCd>ESCT</SubFmlyCd>
            </Fmly>
          </Domn>
        </BkTxCd>
        <NtryDtls>
          <TxDtls>
            <Refs>
              <EndToEndId>FAT-2026-0316</EndToEndId>
              <TxId>TX-PT-20260709-01</TxId>
            </Refs>
            <RltdPties>
              <Dbtr>
                <Pty>
                  <Nm>Reabilitacoes Urbanas SA</Nm>
                </Pty>
              </Dbtr>
              <DbtrAcct>
                <Id>
                  <IBAN>PT50003300004567890123405</IBAN>
                </Id>
              </DbtrAcct>
            </RltdPties>
            <RltdAgts>
              <DbtrAgt>
                <FinInstnId>
                  <BICFI>BCOMPTPL</BICFI>
                </FinInstnId>
              </DbtrAgt>
            </RltdAgts>
            <RmtInf>
              <Ustrd>Fatura FAT-2026-0316 - azulejo hidraulico</Ustrd>
            </RmtInf>
          </TxDtls>
        </NtryDtls>
        <AddtlNtryInf>TRANSFERENCIA SEPA RECEBIDA</AddtlNtryInf>
      </Ntry>
      <!-- Avis de DEBIT -->
      <Ntry>
        <NtryRef>PT-20260709-DBIT-01</NtryRef>
        <Amt Ccy="EUR">95.40</Amt>
        <CdtDbtInd>DBIT</CdtDbtInd>
        <Sts>
          <Cd>BOOK</Cd>
        </Sts>
        <BookgDt>
          <DtTm>2026-07-09T06:30:00</DtTm>
        </BookgDt>
        <ValDt>
          <Dt>2026-07-09</Dt>
        </ValDt>
        <BkTxCd>
          <Domn>
            <Cd>PMNT</Cd>
            <Fmly>
              <Cd>IDDT</Cd>
              <SubFmlyCd>PMDD</SubFmlyCd>
            </Fmly>
          </Domn>
        </BkTxCd>
        <NtryDtls>
          <TxDtls>
            <Refs>
              <EndToEndId>TELECOM-2026-07</EndToEndId>
              <MndtId>PT-MNDT-2021-4412</MndtId>
            </Refs>
            <RltdPties>
              <Cdtr>
                <Pty>
                  <Nm>Telecom Norte SA</Nm>
                </Pty>
              </Cdtr>
            </RltdPties>
            <RmtInf>
              <Ustrd>Servico de comunicacoes julho 2026</Ustrd>
            </RmtInf>
          </TxDtls>
        </NtryDtls>
        <AddtlNtryInf>DEBITO DIRETO SEPA TELECOM NORTE</AddtlNtryInf>
      </Ntry>
    </Ntfctn>

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

How we know these results hold

Every file in this library is run through the site's own validator on each build. The expected result stated above is asserted by an automated test — if a file stopped matching what this page claims, the build would fail. Two inherited fixtures were repaired this way before publication: three IBANs failed the mod-97 check and several names used characters outside the basic SEPA character set.

Bank statement (camt.052 / 053 / 054)