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
Monzo converter

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 rows
Awaiting statementrows render here as they parse

Pre-flight

awaiting file

Output format compliance

[OFX SGML Specification v1.0.2 Compliant]
[QuickBooks Desktop-compatible Web Connect ID]
[SHA-1 Transaction Deduplication Protection]

Guest threshold reached

Daily guest threshold reached. Create a free account to unlock unlimited conversions.

Guests get 2 conversions every 24 hours. Your file stays loaded — close this to keep working on the mapping.

Upgrade to convert this file

This statement has 0 transactions. The free tier converts up to 50 per file.

Sign in to upgrade

Your file never leaves the browser. Only the subscription check and anonymous usage counters touch the network, and neither carries statement data.

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.

Monzo CSV columns and the field each becomes
#Column in exportPre-selected as
1Transaction IDreferenceNumber
2Datedate
3Timeignored
4Typetype
5Nameignored
6Emojiignored
7Categoryignored
8Amountignored
9Currencyignored
10Local amountamount
11Local currencycurrency
12Notes and #tagsmemo
13Addressignored
14Receiptignored
15Descriptiondescription
16Category splitcategory

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.