Revolut Statement to CSV: Multi-Currency Done Properly
You need Revolut transactions in a spreadsheet, and you need them to be right — every card payment, every transfer, every currency in its own column of reality. Maybe you're assembling a mortgage file, answering a visa caseworker, handing a tax year to an accountant, or reconciling a side business that runs through a EUR balance.
Here is the honest version up front: Revolut's own export is good, and most of the time you should use it. This post covers when the native export is the right answer, what to do when only a PDF exists, and how to prove the resulting CSV matches the statement.
Quick answer
There are two ways to get Revolut transactions into CSV:
- Revolut's own statement export. From the app you can generate a statement for a currency account over a date range as PDF or Excel. Note what is not on that list: personal accounts get no CSV option — CSV is a Revolut Business feature. If you have app access, the Excel file is the quickest starting point.
- Convert the PDF statement. Sometimes only the PDF exists — an official stamped statement someone has already sent you, a statement produced for a lender or an immigration application, a period from an account you have since closed, or a client's file landing in your inbox. Upload it to a converter like BankStatementKit, which reads the transactions and balance-checks the output against the statement's own printed figures.
Rule of thumb: if you can open the app and the currency account is still there, export natively. If what you are holding is a PDF, convert the PDF.
Turn a Revolut PDF into a verified CSV
Option 1: Revolut's built-in statement download
If you still have app access, this is the shortest route — the data comes straight from Revolut.
- Open the Revolut app and go to Home.
- Tap Accounts below your balance and select the currency account you want a statement for.
- Tap the ... (more) option and choose Statement.
- Select the date range, choose a document type — PDF or Excel — and tap Generate, then export or share the file.
Repeat this once per currency account. There is no single combined statement across currencies, which is the first thing that surprises people.
Where the built-in download stops
Revolut's export is genuinely good, and it still runs out in predictable ways:
- Official documents come as PDFs. Lenders, letting agents and visa caseworkers ask for the statement document, not a spreadsheet you generated. What you can hand over and what you can analyse are two different files.
- Closed accounts. Once a Revolut account is closed, the in-app export is no longer something you can go back and re-run. Whatever PDFs you saved or were sent are what you have.
- Statements you did not generate. If a client, a business partner or a family member sends you their Revolut statement, you receive their PDF, not their app.
- One currency at a time. Multi-currency users end up running the export repeatedly, and stitching the outputs together is a manual job either way.
- The spreadsheet still needs cleanup. Native exports routinely need header trimming and column retyping before an accounting tool will import them.
Most of those cases end in the same place: a PDF.
Option 2: Convert the Revolut PDF statement to CSV
- Open the statement PDF you want to convert — one currency account at a time.
- Upload it. The file is processed in memory and never written to disk. If it happens to be password-protected, supply the password at upload.
- The transactions are read into standard columns: Date, Narration, Reference, Value Date, Debit, Credit, Balance. Money out lands in Debit and Money in lands in Credit.
- Check the verification label, then download the CSV.
Repeat per currency, and keep the files separate rather than concatenating them — see below for why.
Why Revolut PDFs trip up generic converters
Revolut statements are cleaner than most bank layouts, which lulls naive extraction into three specific mistakes.
Currencies get blended. This is the big one. A generic converter fed several Revolut statements will happily stack GBP, EUR and USD rows into one file. The rows survive, but the Balance column becomes meaningless: three separate running balances interleaved into a single column reconcile against nothing. Each currency statement is a self-contained ledger and has to stay one.
Dates are stamped in UTC. Revolut prints statement dates in UTC rather than your local time. A converter that helpfully localises them shifts transactions near midnight into the wrong day, which quietly breaks month-end cutoffs and tax-year boundaries. The right behaviour is to carry across exactly what the PDF prints.
Foreign-currency rows carry extra content. A card payment made in another currency prints additional detail alongside the transaction — the converted amount and the rate applied. Read line by line, that extra content can be mistaken for a transaction of its own, producing a phantom row with no amount attached. Rows have to be assembled around the date and amount columns, with the surrounding detail folded back into the transaction it describes.
Prove the CSV matches the statement
This is the step most people skip, and it is the one that matters when a lender or an accountant is going to read the file.
- The running balance chain. Each row on a Revolut statement prints the balance after that transaction. For every row, the previous balance minus Money out plus Money in must equal the printed balance. One dropped or duplicated row breaks the chain at exactly the point it went wrong — and because there is one chain per currency, this check only works if you kept the currencies separate.
- The period's opening and closing balances. The statement states where the currency account started and where it ended. Opening plus total credits minus total debits must equal closing.
Doing this by hand is ten to fifteen minutes per statement, and longer if you hold four currencies. BankStatementKit runs both checks on every conversion and labels the result VERIFIED, DISCREPANCY or FAILED, with a discrepancy pinpointing the row where the numbers stop reconciling. There is more on the layout on the Revolut statement converter page.
FAQ
Can I get one CSV covering all my Revolut currencies?
Not as a single reconciled ledger, and you should not want one. Each currency account has its own running balance, so merging them produces a Balance column that reconciles against nothing. Convert each currency statement separately, verify each one, then combine the transaction rows in a spreadsheet if your bookkeeping needs a single view.
Are Revolut statement dates local time or UTC?
Revolut stamps statement dates in UTC. That matters at period boundaries: a late-evening payment can appear on the following day relative to your local clock. The conversion carries across whatever the PDF prints rather than converting timezones, so your CSV and your PDF always agree.
What about a Revolut account I have already closed?
The in-app export is not something you can re-run once the account is gone, so you are working from whatever statement PDFs you saved or were sent at the time. Those convert the same way as any other Revolut statement PDF.
Will the CSV import into Xero, QuickBooks or Excel?
The output is standard CSV with Date, Narration, Reference, Value Date, Debit, Credit and Balance columns. Each of those tools accepts a CSV transaction import with a column-mapping step. There is no direct QBO or OFX export.
Is uploading a bank statement safe?
BankStatementKit never stores your PDF — files are processed in memory and discarded. Conversion history is kept for 30 days and you can delete it at any time. Uploads are limited to 20MB or 50 pages, and scanned statements fall back to OCR automatically. Questions? Contact us.
The bottom line
If you have app access and the currency account is live, use Revolut's own export — it is free, native and immediate. Convert the PDF when the PDF is all there is: official statements for a mortgage or visa file, closed accounts, and statements other people send you. Whichever route you take, keep each currency as its own ledger, and insist on a conversion you can prove.
Convert a Revolut statement without losing the balance chain
Every conversion is balance-checked against the statement's own printed totals, and your first one is free with no account required.
Convert a Revolut statement