Designed for finance exports
The parser recognises date, description, amount, debit/credit, memo, category, and transaction id fields, including headers like Narration or Withdrawal Amt. used by many banks.
Finance file converter
Read ISO 20022 camt.053 end-of-day statement entries and write one CSV row per transaction. Upload a file or paste its contents, check the parsed transactions, then download the CSV file.
1 · Source
2 · Result
Nothing converted yet
A sample XML file is loaded — press “Convert to CSV” to see how the output looks.
The parser recognises date, description, amount, debit/credit, memo, category, and transaction id fields, including headers like Narration or Withdrawal Amt. used by many banks.
Each conversion shows the parsed transactions with money in, money out, and date range, plus warnings about ambiguous dates or missing account details.
PDFs and text files are read by your browser and never sent to a server. Close the tab and the data is gone.
camt.053 is the ISO 20022 “bank to customer statement” message. Many European and Asian banks send it as the end-of-day account report, and it is replacing the older MT940 text format in several markets. Open the XML in a text editor and every transaction sits in an <Ntry> block, with the amount, a debit or credit flag, a booking date and nested party and remittance tags. Excel cannot read that nesting, so the entries stay trapped in the markup until something flattens them.
This camt.053 to CSV Converter reads each <Ntry> entry in the file and writes one CSV row for it. The date comes from the booking date, the amount is signed (debits are negative), the description is the remittance text or the counterparty name, and the reference from the account servicer is kept in the ID column. The file is parsed in your browser, so the statement is not uploaded anywhere.
A camt.053 document has a header, then one or more <Stmt> blocks, one per account. Balances (<Bal>) are listed with the account, and the transactions follow as <Ntry> entries. Each entry carries <Amt Ccy="…"> with the value and currency, a <CdtDbtInd> of CRDT or DBIT, a <Sts> status such as BOOK, and a <BookgDt> with the date. Optional blocks, such as <NtryDtls><TxDtls>, hold the remittance information (<Ustrd>) and the related parties (<RltdPties>).
The converter takes the counterparty from <Cdtr> for debits and from <Dbtr> for credits, because that is the other party in each direction. When an entry has unstructured remittance text, that text becomes the description and the counterparty moves to the Memo column. When there is no remittance text, the counterparty becomes the description and the entry’s AddtlNtryInf text goes to Memo. Namespace prefixes such as <ns2:Ntry> are accepted, so files from different banks read the same way.
The converter finds every <Ntry> block in the file. Inside each entry it reads the amount from the first <Amt> tag, which is the entry-level value, not a detail amount, and it reads the debit or credit flag from <CdtDbtInd>.
The booking date comes from <BookgDt>, and <ValDt> is used only when no booking date is present. The description is built from every <Ustrd> remittance line joined by a space. If there is none, the converter uses the counterparty name, then <AddtlNtryInf>.
camt.053 (trimmed)
<Ntry>
<Amt Ccy="EUR">39.99</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<BookgDt><Dt>2026-05-03</Dt></BookgDt>
<AcctSvcrRef>BK-1001</AcctSvcrRef>
<NtryDtls><TxDtls>
<RltdPties><Cdtr><Nm>Cloud Hosting Ltd</Nm></Cdtr></RltdPties>
<RmtInf><Ustrd>Invoice 4411</Ustrd></RmtInf>
</TxDtls></NtryDtls>
</Ntry>CSV
date,description,amount,memo,category,id,type
2026-05-03,Invoice 4411,-39.99,Cloud Hosting Ltd,,BK-1001,Reading the sign wrongly. DBIT (money out) becomes a negative amount and CRDT (money in) stays positive. That matches the bank view, but some accounting imports expect expenses as positive numbers, so check the template before importing.
Assuming the Description is always the payee. When the bank fills in unstructured remittance text, that text is used and the counterparty goes to Memo. Both are kept, so search either column.
Expecting a currency column. The CSV shows amounts without the Ccy attribute. If one file holds several currencies, check the source XML for the Ccy value on each entry before you total the column.
Expecting balances. Opening and closing balances (<Bal>) are not written as rows. Use the bank’s printed balance or the file’s <Bal> tags to check your totals.
Feeding in a camt.052 (intraday) or camt.054 (notification) file and assuming it is an end-of-day statement. The converter reads any file that uses the same <Ntry> entries, so those reports are read too. Check the message type before you total the rows.
Is camt.053 the same as MT940?
No. Both describe account statements, but camt.053 is an XML message from the ISO 20022 family and MT940 is a text message from the older SWIFT standard. Many banks now offer both, and the same entries appear in each.
Why is the Description sometimes a name and sometimes a reference?
The converter uses the remittance text when the bank supplies it. When that text is missing, it falls back to the counterparty name, and it keeps the other value in Memo so nothing is lost.
Does the converter read camt.052 or camt.054 files?
It reads any file with <Ntry> entries, which camt.052 and camt.054 also use. The converter does not check the message type, so confirm from the file header which report you have.
For more background on data formats and conversion workflows, read our format guides.