DEGIRO, XTB, Interactive Brokers, Revolut, eToro and Trade Republic all export a transaction history. None of them agree on what to call the columns, and several export in whatever language your account is set to — which is why an importer that only recognises one broker’s wording fails on all of them.
The fix is not more guessing. It is asking you two questions about your own file, once.
What every broker export has in common
Underneath the naming, the files are the same shape. One row per event, and each row carries:
- a date, in one of about four formats
- an action — what happened, in the broker’s own words
- a ticker or ISIN
- a quantity and a price
- a total, usually in your account currency
Only two things differ in ways no amount of alias-matching can cover: the column headings, and the vocabulary in the action column. eToro writes “Open Position”. XTB writes “Stocks purchase”. A DEGIRO export in Dutch writes “Koop”. All three mean buy.
Which report to export
Brokers offer several downloads and they are not interchangeable. Broadly:
| Report type | Contains | Usable? |
|---|---|---|
| Transaction history / account statement | Every buy, sell, dividend, deposit, with dates | Yes — this is the one |
| Portfolio / positions | What you hold right now | No — no history, so no cost basis |
| Tax report | Realised gains for one tax year | Partial — one year, already aggregated |
| Trade confirmations | Individual contract notes | Usually one file per trade |
The one you want is the full transaction history, covering the entire life of the account, in any format that is not a PDF. CSV and Excel workbooks (.xlsx and .xls) both read — an Excel file is converted in your own browser before anything is uploaded. A PDF statement contains the same facts and no reliable way to read them back out.
Where it lives, by broker
These interfaces change, and any article listing exact menu paths goes stale within months. What does not change is the name of the thing you are looking for, so this describes that instead.
DEGIRO
Under the account or inbox area, alongside your statements. DEGIRO distinguishes an Account statement (all cash movement, including dividends and fees) from a Transactions report (trades only). Take both if offered — the trades give you positions, the account statement gives you dividends and deposits. Exports arrive in the account’s language.
XTB
In the account history or reports section of the web platform. XTB writes actions in phrases such as “Stocks purchase” and “Stocks sale”, and separates cash operations from trades in some report types.
Interactive Brokers
Under Reports or Statements — IBKR calls its exports Activity Statements and is the most configurable of the group. Choose a custom date range covering the whole account and CSV as the format. Its flex queries can produce exactly the columns you want, which is a real advantage once you have set one up.
Revolut
In the investing section of the app rather than with your bank statements — the trading account exports separately from the current account. Revolut generally offers a full account statement for the investment account as both CSV and PDF; take the CSV.
eToro
Under the account or portfolio history, as an Account Statement. eToro delivers an Excel workbook rather than a CSV, and the sheet that matters is the Transactions Report — the one with a row per cash movement. Upload the workbook as it downloaded; the right sheet is picked for you. Two things about the format are worth knowing: eToro names an instrument as a pair, “AAPL/USD”, and it does not write a unit price at all, so the price is worked back out of the amount and the units.
Trade Republic
Long the weakest of the group, and no longer. Trade Republic added a real CSV transaction export in April 2026 — Profile, Account Statements, Transaction Export — and one file covers both the brokerage and the cash account. Anything you read describing it as PDF-only predates that. See exporting from Trade Republic.
The step-by-step guides
This page is the overview. Each broker has its own quirks, and they are worth reading before you export rather than after:
- Trading 212 — two settings on the export screen decide whether the file is usable.
- DEGIRO — two separate exports, and a sale recorded only as a negative number.
- XTB — writes “Stocks purchase”, and splits withholding tax onto its own row.
- Interactive Brokers — trade rows with no action word, dividend rows with one.
- Revolut — the investing account is not the bank account.
- eToro — an Excel workbook with no price column.
- Trade Republic — a CSV export at last, as of April 2026.
The two questions
Once you upload a file that is not recognised automatically, the mapping screen asks:
- Which column is which? Your headers are shown with a best guess against each field. You correct the ones it got wrong, which is usually one or two rather than all of them.
- What does each action value mean? Every distinct value in your action column is listed with a row count, and you say whether each is a buy, a sell, a dividend, a deposit, a withdrawal, interest, or something to ignore.
The second list is shorter than people expect. A ten-year history usually contains six to ten distinct action values, and you classify a list, not a history.
Details that decide whether the numbers come out right
- Decimal commas. European exports write “1.234,56” where US ones write “1,234.56”. Read wrongly, a thousand-euro trade becomes a one-euro trade. Detection is by which separator appears last in the number, which is reliable in both conventions.
- Semicolon delimiters. A CSV from a European locale is frequently semicolon-separated, precisely because the comma is busy being a decimal point.
- Date order. 03/04/2026 is 3 April to a European broker and 4 March to a US one. Where a file contains any day above 12 the order is provable; where it does not, the broker’s locale decides.
- Negative quantities on sells. Some brokers write a sale as −10 shares, others as 10 shares with the action saying sell. Counted without noticing, a sale adds to your position.
- ISIN instead of ticker. Common at European brokers. An ISIN identifies the security unambiguously, which is more precise than a ticker, but it has to be resolved to one before prices can be fetched.
Several brokers, one portfolio
If you hold positions at two brokers, export both and upload both. The histories merge into a single position list, and total return across the pair becomes computable — which is the thing neither broker’s own app can show you, because each one can only see its own half.
One trap: a transfer of shares between brokers looks like a withdrawal in one file and a deposit in the other. Classified literally, it registers as money leaving and separate money arriving, and both accounts’ returns come out wrong. Mark those rows as ignored — see the piece on cash flows for why that matters to the calculation.
HaboFi reads Trading 212, DEGIRO, XTB, Interactive Brokers, Revolut and eToro exports automatically, and asks these two questions for any other broker. CSV or Excel, no broker login and no API key — a file you downloaded yourself, and nothing that keeps reading your account afterwards.
Try HaboFi free