Monzo Bank · checking account · UK
Convert Monzo CSV Statements to QuickBooks QBO/OFX Format
Drop a Monzo export below. The columns are pre-selected for this layout, the rows are checked for the problems that break imports, and the QBO, OFX or QFX file is generated on this page. Your statement is parsed by a Web Worker inside your own browser and never leaves the device.
Imports into Xero, QuickBooks, FreeAgent and Sage.
- No upload — parsed locally
- Pre-mapped for this layout
- Ready for Xero
Statement conversion workspace
Statement file input
Data is parsed entirely in local memory via client-side Web Workers. Zero server uploads. Impenetrable compliance.
Column mapping rules
mapping rules
Live preview
0 rowsPre-flight
awaiting file
Output format compliance
The Monzo CSV layout
What a Monzo export contains, and which field each column becomes in the converted file.
- Date format
- DD/MM/YYYY (DMY)
- Amount convention
- One signed column — spending negative, income positive
- Header row
- 16 columns
- Currency
- £ GBP · e.g. £1,234.56
- Layout checked
- 2026-09-05
This layout is compiled from published export formats and has not yet been diffed against a live Monzo download. Banks change their columns, and the shape differs between account types. Your conversion is unaffected — the converter reads the real schema from your file — so adjust the mapping above if your export differs from the table.
| # | Column in export | Pre-selected as |
|---|---|---|
| 1 | Transaction ID | referenceNumber |
| 2 | Date | date |
| 3 | Time | ignored |
| 4 | Type | type |
| 5 | Name | ignored |
| 6 | Emoji | ignored |
| 7 | Category | ignored |
| 8 | Amount | ignored |
| 9 | Currency | ignored |
| 10 | Local amount | amount |
| 11 | Local currency | currency |
| 12 | Notes and #tags | memo |
| 13 | Address | ignored |
| 14 | Receipt | ignored |
| 15 | Description | description |
| 16 | Category split | category |
Import errors this layout causes, and what happens instead
Monzo exports sixteen columns including a genuine multi-currency pair: Amount/Currency for the settled GBP figure, and "Local amount"/"Local currency" for what the merchant actually charged abroad. An importer that grabs the wrong amount column books foreign-currency figures as GBP — a 50 EUR spend entered as £50, an implied exchange rate of exactly 1.0. OFX carries one currency per statement, so a mixed file has no valid representation; the converter detects more than one currency and refuses rather than relabelling. Monzo does emit a stable Transaction ID, which is a better deduplication key than any hash of date and amount because it survives a later amount correction.
No statement data leaves your device
Conversion runs in a Web Worker inside this page, so your statement is never uploaded. Because none of its contents reach our servers or any third party, there is no transfer of client financial data to a processor when you use this tool — the file, and every account number and payee name in it, stays on the machine that opened it.
Running off the main thread is also what keeps the page responsive. Encoding detection, a full parse and emitting a large document are heavy on a long statement; on the main thread that would freeze the interface. The worker carries a processing deadline, so a malformed file fails with a clear message rather than hanging.
Three things touch the network, and none carries statement data: a subscription check when a file exceeds the free row limit, an advertising tag recording that a conversion happened, and anonymous usage counters — the output format and a coarse size band such as “51–200 rows”. No filename, no amounts, no payee names, no account numbers. The file stays in the tab, and closing the tab discards it.
Monzo CSV conversion questions
- How do I convert a Monzo CSV statement to Xero?
- Export your Monzo Bank checking account transactions as CSV, then drop the file into the Luventra converter. The Monzo column layout is pre-selected, so the Date, Description and Amount fields map automatically. Generate a QBO, OFX or QFX file and import it into Xero. The statement is parsed inside your own browser, so the file is never uploaded.
- Why does my Monzo CSV fail to import into Xero?
- Monzo exports sixteen columns including a genuine multi-currency pair: Amount/Currency for the settled GBP figure, and "Local amount"/"Local currency" for what the merchant actually charged abroad. An importer that grabs the wrong amount column books foreign-currency figures as GBP — a 50 EUR spend entered as £50, an implied exchange rate of exactly 1.0. OFX carries one currency per statement, so a mixed file has no valid representation; the converter detects more than one currency and refuses rather than relabelling. Monzo does emit a stable Transaction ID, which is a better deduplication key than any hash of date and amount because it survives a later amount correction.
- What date format does a Monzo export use?
- Monzo exports dates in DD/MM/YYYY format. Luventra reads that order directly and rewrites each date into the OFX timestamp format that Xero expects, so days and months are not transposed on import.
- How does Monzo represent debits and credits in its CSV?
- One signed column — spending negative, income positive Luventra normalises this into a single signed amount per transaction before writing the QBO or OFX file, which is what Xero expects.
- Is my Monzo statement uploaded to a server?
- No. The Monzo CSV is parsed and converted entirely inside an isolated Web Worker in your own browser. No transaction text, amounts, payee names, account numbers or file names are transmitted to Luventra or any third party, and no copy of the statement is stored anywhere.
- Does a Monzo CSV export include a header row?
- Yes. A Monzo export starts with a header row: Transaction ID, Date, Time, Type, Name, Emoji, Category, Amount, Currency, Local amount, Local currency, Notes and #tags, Address, Receipt, Description, Category split. Luventra matches those column names automatically, so the mapping is already correct when the file loads.