Export an IBKR Trade Confirmation Flex Query for manual upload
The second Interactive Brokers recipe: build a Trade Confirmation Flex Query, download the CSV, and upload it to VEXA. Its settings differ from the auto-sync recipe.
What this does
A Trade Confirmation Flex Query produces a file you download from Interactive Brokers and upload to VEXA yourself. Use it when you want history further back than the automatic sync reaches, or when you would rather not store a token in VEXA at all.
This is the second of IBKR’s two Flex Query types, and it is a different report from the one the automatic sync uses.
| Query type | What it is for | Date Format | Date/Time separator |
|---|---|---|---|
| Activity Flex Query | the automatic sync | yyyy-MM-dd | a single space |
| Trade Confirmation Flex Query | the file upload on this page | yyyyMMdd | ; semicolon |
Neither set of values is wrong. They belong to different reports. If you want the automatic sync instead, use Set up an IBKR Activity Flex Query.
Before you start
- Build the query in a desktop browser. You can upload the finished file from any device, though a phone has to be able to reach the downloaded file.
- Broker connections need the Edge tier or above.
- No Flex token is needed for this route. You are downloading a file, not granting access.
- Trade Confirmation queries reach back further than the sync window, so this is the route for backfilling old history.
Build the query in IBKR
- Sign in to IBKR Client Portal at
interactivebrokers.com/portal. - Open Performance & Reports, then Flex Queries.
- Find the Trade Confirmation Flex Query heading. It is a separate section from Activity Flex Query, further down the same page.
- Click + next to it to create a new one.
- Name it something you will recognise, such as
VEXA Trade History Export. - Under Sections, choose Trade Confirmations.
- Tick ALL the fields in that section. Selecting everything is the reliable choice, and extra fields cost you nothing.
- Set Format to CSV. XML and HTML files are rejected on upload.
- Choose a Period: Last 90 Days, Last 365 Days, Last 3 Years, or All. Pick the longest window you actually want, since overlapping uploads are safe.
- Set the date and time options exactly as listed below.
- Save the query.
The settings that matter
| Setting | Value |
|---|---|
| Format | CSV |
| Date Format | yyyyMMdd |
| Time Format | HH:mm:ss |
| Date/Time separator | ; semicolon |
| Profit and Loss | Default |
| Include Cancelled Trades | No |
| Include Currency Rates | No |
| Include Audit Trail Fields | No |
| Display Account Alias in Place of Account ID | No |
| Breakout by Day | No |
Download the file
- Open the saved query and press Run.
- Wait for the status to read Completed.
- Download the file. It arrives named something like
TradeConfirm_20260726.csv.
Steps
Upload the file to VEXA.
- Open Profile from the sidebar card that shows your name with View Profile under it.
- Open Connected Brokers and choose your Interactive Brokers account, or press Connect Your First Broker and pick Interactive Brokers.
- Switch to the Manual Upload tab.
- Give the account a name in the alias field if this is the first upload. Leave it blank to have VEXA name it from your broker data.
- Drag the CSV onto the drop zone, or click it to browse.
- Press Upload & Import Trades.
- Keep the tab open until the overlay clears.
- Tap the circular avatar at the top right of Home.
- Tap Connected Services, then your Interactive Brokers account row.
- On Account Details, tap Manual Upload.
- Tap Manual CSV Upload, then Select CSV File.
- Pick the downloaded file.
- Confirm the upload and keep the app open until it finishes.
- Tap the profile chip at the bottom of the sidebar, then View Profile.
- Tap Connected Services, then your Interactive Brokers account row.
- On Account Details, tap Manual Upload.
- Tap Manual CSV Upload, then Select CSV File.
- Pick the downloaded file.
- Confirm the upload and keep the app open until it finishes.
- Tap the circular avatar at the top right of Home.
- Tap Connected Brokers, then your Interactive Brokers account.
- Open the Manual Upload tab.
- Choose the downloaded file.
- Start the import and keep the app open until it finishes.
- Tap the profile chip at the bottom of the sidebar.
- Tap Connected Brokers, then Interactive Brokers.
- Open the Manual Upload tab.
- Choose the downloaded file.
- Start the import and keep the app open until it finishes.
What you should see
A result panel naming the detected format and counting what happened: closed trades imported, open positions saved, and how many rows were already in your account from earlier uploads. A footer line reads “Processed N executions from M rows”.
If you hold several IBKR accounts, the file is split by account ID and each one becomes its own account in VEXA.
Uploading the same file again is safe. The second run reports every trade as already imported.
If it doesn’t work
- “No valid executions found in file after parsing and validation”. The file is XML or HTML rather than CSV, or the query was built without the Trade Confirmations section. Check step 8.
- The import succeeded but nothing appeared. See My import said success but nothing appeared.
- The file is rejected before uploading. Accepted extensions and the size ceiling are covered in File formats, size limits and upload errors.
- Every account merged into one. The alias option in the settings table was left on. Turn it off, re-run the query, and upload again.
Related
Related
Still stuck? Email support@vexatrade.ai.