ValidateFin
Back to blog
·Updated Mar 11, 2026·ISO 20022·By Eliel Nicaise

Reading a camt.053 bank statement: structure and key fields

The camt.053 is the ISO 20022 standard for electronic bank statements. Here is how to read its XML structure, understand balances, and extract transactions.

What is camt.053?

camt.053 (Bank-to-Customer Statement) is an ISO 20022 XML message that banks send to their corporate clients as an electronic bank statement. It replaces older formats like MT940 (SWIFT) and is mandatory in the SEPA zone.

Banks deliver camt.053 files daily or on demand. Each file contains one or more statements (Stmt), each covering a specific account and period.

The migration from MT940 to camt.053 has been a phased, multi-year process. SWIFT initially set a deadline of November 2025 for the full decommissioning of MT messages in cross-border payments and reporting. Most European banks started offering camt.053 alongside MT940 from 2015 onward, giving corporate treasurers time to upgrade their ERP and treasury management systems. As of 2026, the vast majority of SEPA-zone banks deliver camt.053 as the default statement format, though some still support MT940 as a legacy option during the transition period. If your organization has not yet migrated, now is the time — MT940 support is being actively phased out.

XML structure of a camt.053 file

A camt.053 file is organized in three main levels:

<BkToCstmrStmt>
  <GrpHdr>
    <MsgId>STMT-20260219-001</MsgId>
    <CreDtTm>2026-02-19T08:00:00</CreDtTm>
  </GrpHdr>
  <Stmt>
    <Acct>
      <Id><IBAN>BE68539007547034</IBAN></Id>
    </Acct>
    <Bal>
      <Tp><CdOrPrtry><Cd>OPBD</Cd></CdOrPrtry></Tp>
      <Amt Ccy="EUR">10000.00</Amt>
    </Bal>
    <Ntry>
      <Amt Ccy="EUR">500.00</Amt>
      <CdtDbtInd>CRDT</CdtDbtInd>
      <BookgDt><Dt>2026-02-18</Dt></BookgDt>
    </Ntry>
  </Stmt>
</BkToCstmrStmt>
  • GrpHdr (Group Header): file creation date, message ID
  • Stmt (Statement): account IBAN, opening/closing balances, statement period
  • Ntry (Entry): each individual debit or credit transaction

The Group Header (GrpHdr) is the envelope of the message. It contains a unique MsgId that identifies the file, the CreDtTm timestamp of when the bank generated the statement, and optionally the MsgPgntn element for paginated statements spanning multiple files. The Statement (Stmt) element represents one account for one reporting period — it includes the account identification (IBAN), the legal entity name, opening and closing balances, and the collection of entries. A single camt.053 file can contain multiple Stmt elements when a company receives consolidated statements for several accounts. Finally, each Ntry (Entry) represents a single booking on the account: it carries the amount, currency, credit/debit indicator, booking and value dates, bank transaction code, and nested NtryDtls containing individual transaction details such as counterparty information and remittance data.

Key fields to understand

  • Bal / Tp / CdBalance type: OPBD (opening) or CLBD (closing). The difference = net movement over the period.
  • Ntry / CdtDbtIndCRDT = credit (money received), DBIT = debit (money sent).
  • Ntry / AmtTransaction amount with currency attribute (e.g. EUR).
  • NtryDtls / TxDtls / RmtInfRemittance information: the payment reference communicated by the payer.
  • RltdPties / Dbtr or CdtrCounterparty name and IBAN — the debtor for incoming payments, the creditor for outgoing.
  • BkTxCd / Domn / CdBank transaction code using the ISO 20022 external code list. The Domain (e.g. PMNT for payments), Family (e.g. RCDT for received credit transfers), and SubFamily (e.g. ESCT for SEPA Credit Transfer) together classify each entry precisely for automated reconciliation.
  • BookgDt / Dt and ValDt / DtBookgDt is the date the bank booked the transaction on the account. ValDt is the value date used for interest calculation. These two dates may differ — a transaction booked on Friday may have a value date of Monday.
  • Acct / Id / IBANThe IBAN of the account to which this statement belongs. Located within the Stmt element, it uniquely identifies which bank account the balances and entries relate to. For multi-account files, this is how you map each statement to the correct ledger.

Camt.053 versions: .002, .006, .008, .010, .011

The camt.053 message has evolved through several ISO 20022 maintenance releases. The most commonly encountered versions are: camt.053.001.002 (the original widely adopted version), camt.053.001.006 (introduced additional fields for regulatory reporting and enhanced remittance information), camt.053.001.008 (added support for LEI identifiers and improved structured address formatting), camt.053.001.010 (aligned with the 2022 ISO 20022 maintenance cycle, adding proxy identifiers and richer tax reporting), and camt.053.001.011 (the latest version as of 2025, with extended support for digital currencies and enhanced related-party information).

In practice, your bank determines which version you receive. Most European banks currently deliver version .002, .006, or .008. The key structural elements (GrpHdr, Stmt, Ntry) remain consistent across all versions — the differences are primarily additive: newer versions introduce optional fields without removing existing ones. This means a parser built for .002 will still read the core data from a .008 file, though it may miss newly added elements. When migrating or building integrations, always check the XML namespace (e.g., urn:iso:std:iso:20022:tech:xsd:camt.053.001.008) to determine the exact version and adjust your parsing logic accordingly. ValidateFin's camt.053 viewer supports versions .002, .006, .008, .010, and .011 automatically.

Using camt.053 for bank reconciliation

Bank reconciliation — matching your accounting ledger entries against bank statement transactions — is one of the primary uses of camt.053 files. The structured XML format makes automated reconciliation far more reliable than parsing PDF statements or flat-file formats. Each Ntry element contains all the data needed for matching: amount, date, counterparty, and remittance information.

A typical reconciliation workflow involves three steps. First, import the camt.053 file into your ERP or treasury system and parse each Ntry element. Second, match entries against open items in your accounts receivable or accounts payable ledger using the RmtInf (remittance information) field — this often contains a structured reference like a Belgian OGM/VCS code or an ISO 11649 creditor reference (RF check). Third, flag unmatched entries for manual review. The BkTxCd (bank transaction code) helps categorize transactions automatically: PMNT/RCDT/ESCT entries are incoming SEPA credit transfers, PMNT/RDDT/ESDD entries are SEPA direct debits, and PMNT/ICDT/XBCT entries are cross-border wire transfers.

For organizations processing hundreds of transactions daily, the camt.053 format dramatically reduces manual effort. The structured counterparty data (RltdPties) eliminates guesswork about who sent or received a payment. The EndToEndId field — when populated by the payer — provides a direct link to the original invoice or purchase order number. Companies that fully leverage camt.053 structured data typically achieve 85-95% automatic matching rates, compared to 50-60% with unstructured MT940 statements. The key to high match rates is ensuring your invoicing system populates structured remittance references and that your reconciliation engine parses the full NtryDtls/TxDtls hierarchy.

Visualize your camt.053 for free

Our camt.053 viewer reads your ISO 20022 file and displays balances, all entries, and counterparty details in a clear interface. Export to CSV in one click. No file is ever uploaded to a server.

Open the Camt.053 Viewer

Frequently Asked Questions

What is the difference between camt.052, camt.053, and camt.054?

Camt.052 provides intraday account reports (provisional entries), camt.053 delivers end-of-day account statements (final booked entries), and camt.054 contains debit/credit notifications for individual transactions. Camt.053 is the most common for daily bank reconciliation.

How do I read balances in a camt.053 file?

Camt.053 files contain balance elements: OPBD (Opening Booked Balance) for the start-of-day balance, CLBD (Closing Booked Balance) for end-of-day, and optionally CLAV (Closing Available). The difference between OPBD and CLBD equals the net sum of all entries.

Can I convert camt.053 to CSV or Excel?

Yes. ValidateFin's Camt.053 Viewer parses the XML file and lets you export all transaction entries to CSV format, which can be opened in Excel or imported into accounting software for bank reconciliation.

What is replacing MT940 and when does it happen?

MT940 is being replaced by camt.053 (ISO 20022) as part of SWIFT's migration program. SWIFT set November 2025 as the deadline for cross-border MT message decommissioning. Most SEPA-zone banks already deliver camt.053 as the default format. If your treasury system still relies on MT940, you should plan migration now as banks are phasing out legacy format support.

How do I identify the camt.053 version my bank sends?

Check the XML namespace in the root element. For example, urn:iso:std:iso:20022:tech:xsd:camt.053.001.002 indicates version .002, while urn:iso:std:iso:20022:tech:xsd:camt.053.001.008 indicates version .008. The namespace is always in the Document element's xmlns attribute. ValidateFin detects the version automatically.

What does the BkTxCd (Bank Transaction Code) mean?

BkTxCd classifies each transaction using a three-level hierarchy: Domain (e.g., PMNT for payments), Family (e.g., RCDT for received credit transfers), and SubFamily (e.g., ESCT for SEPA Credit Transfer). This code enables automated categorization in your accounting system — for instance, you can route all PMNT/RCDT/ESCT entries to accounts receivable and all PMNT/RDDT/ESDD entries to direct debit collections.

Can a single camt.053 file contain multiple accounts?

Yes. A camt.053 file can contain multiple Stmt (Statement) elements, each for a different account identified by its IBAN in the Acct/Id/IBAN field. This is common when banks provide consolidated multi-account statements. Your parser should iterate over all Stmt elements and map each to the correct internal ledger account.

What is the difference between BookgDt and ValDt?

BookgDt (Booking Date) is when the bank recorded the transaction on your account. ValDt (Value Date) is the date used for interest calculation purposes. They often differ: a payment received on a Friday evening may have a BookgDt of Friday but a ValDt of Monday. For cash flow forecasting, ValDt is more relevant; for reconciliation, BookgDt matches your bank statement date.

How do I achieve high automatic matching rates with camt.053?

High matching rates (85-95%) depend on structured remittance data. Ensure your invoices include structured references (e.g., ISO 11649 RF creditor reference or Belgian OGM/VCS). Parse the full NtryDtls/TxDtls/RmtInf/Strd path for structured references, and use EndToEndId as a secondary matching key. The BkTxCd helps pre-categorize transactions before matching, reducing the search space for your reconciliation engine.

Is camt.053 data safe to process in the browser?

Yes. Bank statement files contain sensitive financial data including account numbers, balances, and transaction details. ValidateFin processes camt.053 files entirely in your browser using client-side JavaScript — no data is ever uploaded to a server. This approach meets strict data protection requirements and is safe for production bank statements.