REVOLUT BUSINESS STATEMENT TO JOURNAL · RUNS IN YOUR BROWSER · NOTHING UPLOADED

Turn a Revolut currency statement into a Xero or QuickBooks journal with the FX gain or loss

Paste or drop the statement CSV for one Revolut currency balance. Every row is valued in the currency your books are kept in at the rates you type, the balance is tracked at average cost, and money received, sent, spent on the card, fees and conversions go to their own accounts with the realised exchange gain or loss on its own line. The running balance is proved row by row, and the result is a balanced journal per month for Xero, QuickBooks Online, QuickBooks Desktop (IIF) or plain CSV, plus a workings CSV your accountant can audit.

The file is read in this browser tab and never leaves your device. Independent of Revolut, Xero and Intuit. The statement layout and the importer layouts are read from memory of public help documents; no real Revolut statement and no live Xero or QuickBooks import was available when this was written. If your file is refused, the findings say which column was missing.

1. Your Revolut statement

Revolut Business > Accounts > the currency account > Statement > Excel/CSV. One currency account at a time. Columns are matched by name (Date completed (UTC), Type, Description, Payment currency, Amount, Total amount, Exchange rate, Fee, Balance).

Choose a file or paste the text, then click Read, check and build journals.

The model, and what it leaves out

Common questions

How do I record Revolut multi-currency transactions in QuickBooks or Xero?

Download the statement CSV for one currency balance from Revolut, paste it here, choose the currency your books are kept in and type the exchange rates you use for the books. The page values every row in your base currency, books money received, money sent, card spending, fees and conversions to their own accounts, puts the realised exchange gain or loss on its own line, and writes a balanced journal per month for Xero, QuickBooks Online or QuickBooks Desktop.

What is realised FX gain or loss on a Revolut balance?

When you hold foreign currency and later spend, send or convert it, the base-currency value it leaves at can differ from what it cost you to acquire. That difference is a realised exchange gain or loss and belongs in your profit and loss. This page tracks the balance at average cost and books the difference on each row that takes money out.

Which exchange rates does it use?

Rates you type, in base currency per 1 unit of the statement currency, either for a day (2026-09-10 1.1200) or for a whole month (2026-09 1.1050); a day with no rate uses the nearest earlier one. For a conversion into your base currency it uses the exchange rate Revolut printed on that row, so the proceeds match what landed. The page never fetches rates.

How does it prove the statement is complete?

Every Revolut row carries a running balance. The page checks that each balance equals the one before plus the row's amount (and works out whether Revolut's Fee column is inside the Amount or on top of it), lists the first row where the chain breaks, and checks the closing balance against the figure you type from your Revolut account.

What about opening balances from before the statement?

The first row's running balance implies an opening balance. If you type its base-currency cost, gains carry over correctly from earlier periods; if you do not, it is valued at the first day's rate and the page says so.

Is it safe to paste a Revolut statement into a web page?

The page runs in your browser, the file is read locally and nothing is uploaded; a test in the code asserts there are no network calls. A statement shows counterparties and references; delete those columns if you would rather not have them on screen, because the page only needs the date, amount, currency, description, running balance, fees and exchange columns.

What does this not check?

Whether the statement matches your Revolut account or your books, tax treatment of foreign exchange anywhere (some jurisdictions treat small personal-use gains differently, and business rules vary), unrealised gains at period end (shown for information, not journalled), conversions between two non-base currencies (valued at your rate, not Revolut's), and that the account names or codes exist in your accounting software.