ConvertCSV

Finance file converter

CAMT.053 XML to CSV 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.

  • No signup
  • Files stay on your device
  • Transaction preview
  • Download ready

1 · Source

Add your XML file

.xml.csv

2 · Result

Output preview

Nothing converted yet

A sample XML file is loaded — press “Convert to CSV” to see how the output looks.

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.

Check before you import

Each conversion shows the parsed transactions with money in, money out, and date range, plus warnings about ambiguous dates or missing account details.

Private browser workflow

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 to CSV Converter

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.

Key features

  • Reads every <Ntry> entry in a camt.053 file, with or without XML namespace prefixes.
  • Writes Date, Description, Amount, Memo, Category, ID and Type columns, with the bank’s AcctSvcrRef or NtryRef in ID and the bank transaction family code in Type.
  • Signs amounts by the CdtDbtInd flag, so debits are negative and credits are positive.
  • Uses ISO dates (YYYY-MM-DD), which sort correctly in Excel and Google Sheets.
  • Shows a preview before you download, so you can check the first rows against the statement.
  • Runs in the browser. The statement is not sent to a server during conversion.

About the CAMT.053 XML to CSV format

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.

How it works

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>.

Common use cases

  • A finance team receives a daily camt.053 file from its bank and wants a sheet to tag each payment before month-end close.
  • A treasury analyst compares the sum of signed amounts with the closing balance printed in the same file.
  • A bookkeeper needs camt.053 activity in the same column layout as the bank’s CSV exports, so one import template covers both.
  • A developer checking a parser asks for a quick table of entries with their AcctSvcrRef values to match against the bank portal.

How to use this tool

  1. Download the camt.053 (or “ISO 20022 statement”) file from your bank’s portal or from its file transfer folder.
  2. Open the camt.053 to CSV converter, then paste the XML or upload the .xml file.
  3. Check the preview: the row count should match the entries on the bank’s statement screen, and the first booking date should match the period.
  4. Download the CSV and open it in Excel or Google Sheets. Keep the original XML beside it.

Example

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,

Tips for best results

  • Check the number of rows against the number of <Ntry> blocks you can see in the file. If they differ, the file probably holds more than one statement.
  • Keep the ID column. The AcctSvcrRef is the bank’s own reference, and it is the fastest way to match a row back to the bank portal.
  • Sort the CSV by Date and then Amount before reconciling. Entries booked on the same day are listed in the order the bank wrote them.
  • Save the original XML with the CSV. camt.053 is the record of what the bank reported, and the CSV is a working copy.

Common pitfalls

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.

Frequently asked questions

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.