How to Read a camt.053 File (ISO 20022 Bank Statement Structure)

Jul 20, 2026

Convert your bank statement to Excel now

PDF, JPG, PNG, BMP, HEIC, TIFF, MT940

Upload your bank statement

Last updated July 2026.

A camt.053 file is an end-of-day bank statement written in ISO 20022 XML, where every piece of data lives inside a named, nested tag rather than a fixed-width position. To read it, work down the hierarchy: the Document wraps a BkToCstmrStmt, which holds one GrpHdr for file-level details and one or more Stmt elements, each being a full statement for a single account. Inside each Stmt you find the account, a set of Bal (balance) elements, and a series of Ntry (entry) elements, one per transaction. Once you recognize that GrpHdr to Stmt to Ntry path and know a few balance and indicator codes, a camt.053 file reads cleanly and maps straight into spreadsheet columns.

camt.053 is the ISO 20022 replacement for the older SWIFT MT940 statement, and US and European banks are steadily moving corporate customers onto it. Because the format is verbose XML, most people who receive one want the transactions in Excel or CSV to reconcile and post, not the raw tags. If that is you, the camt.053 to Excel converter parses the structure below and lays out the rows. This article explains what those tags mean so the output makes sense.

What is a camt.053 file?

camt.053 is the ISO 20022 message type for a Bank-to-Customer Statement, delivered as an XML file that reports an account's booked transactions and balances for a closed period, usually the prior business day. The name comes from the ISO 20022 catalogue: camt is the Cash Management family, and 053 is the statement message. Its intraday sibling is camt.052 (an account report sent during the day), and camt.054 is a debit or credit notification. Where MT940 packs data into positional fields you have to count, camt.053 labels every value with a tag, so the file is larger but far less ambiguous to parse and validate.

The camt.053 structure, top to bottom

The document is a strict hierarchy. Reading it is a matter of walking down the nesting until you reach individual transactions.

ElementLevelWhat it holds
DocumentRootThe outer wrapper for the whole message.
BkToCstmrStmtMessageBank-to-Customer Statement. Contains the header and the statements.
GrpHdrHeaderMsgId (a unique file reference) and CreDtTm (creation date and time).
StmtStatementOne account's statement for one period. Repeats per account.
AcctInside StmtThe account identifier (IBAN or other) and currency.
BalInside StmtBalance elements: opening, closing, and available.
NtryInside StmtOne booked transaction. Repeats per transaction.

Reading the balances: OPBD, CLBD, and CLAV

Each Bal element carries a balance type in Tp/CdOrPrtry/Cd, an amount with its currency, and a credit or debit indicator. The three you meet most are OPBD, the opening booked balance at the start of the period; CLBD, the closing booked balance at the end; and CLAV, the closing available balance, meaning the funds you can actually draw on after holds. A statement can also carry PRCD (the previously closed booked balance, which should match the prior day's CLBD) and forward-available figures. The CdtDbtInd on a balance tells you its sign: CRDT for a positive balance, DBIT for an overdrawn one.

Balance codeMeaning
OPBDOpening booked balance (start of the period)
CLBDClosing booked balance (end of the period)
CLAVClosing available balance (drawable funds)
PRCDPreviously closed booked balance (prior day's close)

Reading the transactions: the Ntry element

Every Ntry is one booked transaction, and its key children are the ones you turn into columns. Amt holds the amount, with the currency in a Ccy attribute. CdtDbtInd says CRDT for money in or DBIT for money out. Sts is the status, normally BOOK for a posted entry (a PDNG status means pending, which camt.053 usually excludes). BookgDt is the booking date and ValDt is the value date. BkTxCd is the bank transaction code that classifies the entry, carrying both an ISO external code and the bank's proprietary code. The detail sits deeper, in NtryDtls and TxDtls: there you find references like EndToEndId and AcctSvcrRef, the counterparty in RltdPties, and the remittance information in RmtInf, which can be unstructured text (Ustrd) or structured invoice data (Strd).

TagMaps to spreadsheet column
BookgDtDate
Amt + CdtDbtIndAmount, signed as credit or debit
RmtInf / RltdPtiesDescription and counterparty
AcctSvcrRef / EndToEndIdReference
BkTxCdTransaction type / category

A short camt.053 example

Here is a trimmed statement for one account with a single credit of 2,500.00 USD. The nesting is deep, but each value is labeled, so you never have to count positions.

XMLReads as
<GrpHdr><MsgId>STMT-260719</MsgId><CreDtTm>2026-07-20T08:00:00</CreDtTm></GrpHdr>File reference and creation time.
<Bal><Tp><CdOrPrtry><Cd>OPBD</Cd></CdOrPrtry></Tp><Amt Ccy="USD">5000.00</Amt><CdtDbtInd>CRDT</CdtDbtInd></Bal>Opening booked balance: 5,000.00 USD.
<Ntry><Amt Ccy="USD">2500.00</Amt><CdtDbtInd>CRDT</CdtDbtInd><Sts><Cd>BOOK</Cd></Sts><BookgDt><Dt>2026-07-19</Dt></BookgDt></Ntry>Credit of 2,500.00 USD, booked July 19.
<Bal><Tp><CdOrPrtry><Cd>CLBD</Cd></CdOrPrtry></Tp><Amt Ccy="USD">7500.00</Amt><CdtDbtInd>CRDT</CdtDbtInd></Bal>Closing booked balance: 7,500.00 USD.

The opening balance plus the credit equals the closing balance, which is exactly the check a reconciliation runs. Flattened, that one Ntry becomes a spreadsheet row with a date, a signed amount, a description, and a reference, and the two Bal elements give you the opening and closing figures to tie against.

camt.053 versus MT940

If you are moving from the SWIFT statement to the ISO 20022 one, the mental model changes from counting fields to walking tags. MT940 is compact and positional, with tags like 60F for the opening balance and 61 for each transaction line; camt.053 is verbose and labeled, with OPBD and Ntry. The side-by-side in camt.053 vs MT940 maps each MT940 tag to its camt.053 element, and the broader MT940 vs BAI2 vs camt.053 comparison covers when a bank sends each. The reading approach that works for the SWIFT format is in how to read an MT940 file.

Turning a camt.053 file into a spreadsheet

Reading the XML by hand is fine for one statement, but nobody reconciles a month of accounts by scrolling tags. Upload the file to the camt.053 to Excel converter and each Ntry comes out as a row with the booking date, signed amount, counterparty, and reference, plus the OPBD and CLBD balances broken out so you can confirm the statement foots. Once the entries are booked, rolling those numbers into a set of board-ready financial statements is the usual next step, and a standard reconciliation ties the closing booked balance to your ledger.

The short version

Read a camt.053 file by walking the hierarchy: Document to BkToCstmrStmt to GrpHdr and Stmt, then Bal for balances and Ntry for transactions. The balance codes OPBD and CLBD are your opening and closing figures, CdtDbtInd tells you credit or debit, and each Ntry flattens to one transaction row. Because every value is tagged, the format is unambiguous once you know the tags, and a converter turns the whole thing into a sheet in one step.

Ready to convert your bank statement?

Upload a PDF and get clean Excel or CSV in seconds. Works with statements from any bank.

Convert to Excel now

Free to try, no credit card required

From the same family of tools