Working…
This can take up to 15 seconds — please don't close this tab.

Schedule FA from Interactive Brokers — Step-by-Step

Updated 5 August 2026 · For ROR Indian residents · AY 2026-27

Interactive Brokers is the hardest broker to file Schedule FA from, and not because the data is missing. It is because IBKR gives you a report builder rather than a report — and the one setting that decides whether your export is usable at all is buried three levels down.

The short version. Build an Activity Flex Query. Include Trades, Open Positions and Cash Transactions. Set Trades → Closed Lots and Open Positions → Lot. Without those two, your file has no acquisition dates and no Schedule FA can be built from it.
Watch: Schedule FA in 2 minutes — Interactive Brokers to ITR-2 Watch: Schedule FA in 2 minutes — Interactive Brokers

1. Why IBKR is different from a stock-plan broker

If you hold RSUs through Fidelity NetBenefits or Charles Schwab, your account contains one company's shares, priced in dollars, administered by your employer. Almost every Schedule FA guide is written for that case.

An IBKR account breaks three of those assumptions at once:

There is also no employer stock-plan trust, so Table F does not apply to an IBKR account. That one is a relief rather than a complication.

2. Building the Flex Query

IBKR has no one-click "download my holdings" export. You build a Flex Query once, and it is reusable every year afterwards — about ten minutes of setup that you never repeat.

  1. Log in to interactivebrokers.com
  2. Performance & Reports → Flex Queries → Activity Flex Query → +
  3. Add the Trades, Open Positions and Cash Transactions sections
  4. Set each section's Level of Detail — see the next section, this is the step that matters
  5. In each section tick: Symbol, ISIN, Asset Class, Currency, Listing Exchange, Date, Quantity, Proceeds, Cost Basis, Realized P/L and Open Date Time
  6. Set Format to CSV and Period to 1 January – 31 December of the year you are filing for
  7. Save, Run, download

The single CSV that comes out carries holdings, sales, dividends and cash interest together — there is nothing else to download.

3. The Level of Detail setting everyone misses

Schedule FA needs a date of acquisition for every holding. IBKR will give you one — but only if you ask correctly.

Open Positions → tick "Lot". At Summary level, IBKR emits the Open Date Time column but leaves every value blank.
Trades → tick "Closed Lots". An execution-level trade row has no acquisition date even when it closes a position; only the closed-lot rows carry one.

This is the single most common reason an IBKR export cannot be used. The file looks complete — the columns are all there — and every acquisition date in it is empty.

What a Summary-level export looks like (note the trailing empty field):

Symbol,ISIN,Quantity,CostBasisPrice,LevelOfDetail,OpenDateTime
VWCE,IE00BK5BQT80,1,142.78,SUMMARY,

The same query at Lot level:

Symbol,ISIN,Quantity,CostBasisPrice,LevelOfDetail,OpenDateTime
VWCE,IE00BK5BQT80,1,142.78,LOT,12/05/2024;11:17:45

Same query, same fields, one checkbox apart. If you have already downloaded a file and the dates are blank, you do not need a different report — tick those two boxes and run the same query again.

4. Which table each holding goes in

TableWhat goes in itNeeds peak value?
A2The IBKR account itself — one row-set, with peak and closing balance and the income creditedYes
A3Each equity holding, one row per lotYes
DOptions, futures, warrants — capital assets that are not equity or debtNo
FNot applicable to IBKR — there is no stock-plan trust

Table A2 describes the account, A3 itemises the shares inside it. Both are required; they are not alternatives.

5. Multi-currency: one rate per currency

Rule 115 converts foreign income at the SBI telegraphic transfer buying rate for the currency the income is actually in. A euro holding uses SBI's EUR rate. A Hong Kong listing uses the HKD rate.

Converting everything through the dollar is a silent error: a euro figure billed at the USD rate is wrong by the whole cross-rate difference, and nothing on the face of the return shows it. If a currency has no SBI TTBR published at all, the honest answer is to report that holding separately with your CA rather than approximate it.

One more subtlety: the peak value Schedule FA asks for is the highest rupee value the holding reached. The rupee moves independently of the share price, so for a stable-NAV holding — a short-bond ETF, say — the peak is driven almost entirely by the exchange rate, not the price. More on Rule 115 →

6. The country is the issuer's, not the exchange's

Table A3 asks for the country where the company is registered. Not where the share trades, and not the currency you paid in. Three real examples from one account:

HoldingCountry reportedListed onCurrency
Accenture plcIrelandNYSEUSD
Endeavour MiningCayman IslandsTorontoCAD
iShares Core MSCI WorldIrelandXetraEUR

All three differ across all three columns. The ISIN is what settles it — the first two characters are the country of registration, so IE00B4L5Y983 is Ireland whatever exchange or currency it traded in. That is why the Flex Query field list above includes ISIN.

Most low-cost world ETFs held by Indian investors are Irish or Luxembourgish, chosen deliberately to limit US estate-tax exposure. Reporting them as US holdings is a common and avoidable error.

7. Options and futures

Options and futures are foreign capital assets and carry the same disclosure obligation as shares — but they belong in Table D, not A3. An option is neither equity nor debt interest.

Table D is, helpfully, the easier table: it asks for no peak balance and no closing value, only the date of acquisition, the amount invested and the income derived. That matters, because an expired contract has no price history to compute a peak from.

The income treatment is a separate question. For a resident, gains from futures and options are often treated as non-speculative business income — which is filed in ITR-3, not as capital gains in ITR-2. The Schedule FA disclosure is the same either way, but which form you file and where the income is offered is a question for your CA.

8. Three files look similar — which one you have

IBKR can hand you three different CSV layouts, and they are easy to confuse. Check the first two columns of your file:

First line looks likeWhat you haveUsable?
Statement,Header,...Default Activity StatementUsable, but often lacks Open Date Time
HEADER,TRNT,...Flex Query, several sectionsYes — this is the one
ClientAccountID,Currency,...Flex Query, single sectionYes, but only covers that one section

All three are accepted. The thing that matters is not which layout you have, but whether OpenDateTime has values in it.

9. A worked example, in rupees

One euro holding, start to finish, so you can check the arithmetic against your own file. VWCE, an Ireland-domiciled world ETF, bought on Xetra:

ISINIE00BK5BQT80 → country reported: Ireland (not Germany, not the US)
Acquired12 May 2024 — cost €142.78
Initial value€142.78 × SBI EUR TTBR on 12 May 2024
Peak valueHighest rupee value across the year — see below
Closing valueUnits × 31 Dec price × SBI EUR TTBR on 31 Dec

Every rate here is the EUR TTBR. Using the USD rate — even correctly looked up — gives a figure that is wrong by the whole EUR/USD cross rate, and nothing on the return would show it.

Why the peak is a rupee number, not a price number

Schedule FA asks for the peak value, and value is measured in rupees. Since the rupee moves independently of the share price, the day your holding was worth the most in rupees is often not the day the price peaked.

This matters most for stable-NAV holdings. A short-duration bond ETF barely moves in price, so its rupee peak is driven almost entirely by the exchange rate — checking a sample of these across 2025, taking the price peak instead of the rupee peak understated the figure by up to 7%. For a volatile stock the two usually coincide; for a treasury ETF they rarely do.

10. Troubleshooting

SymptomCauseFix
No holdings found in the fileQuery has no Open Positions section, or it is at Summary levelAdd the section, set Level of Detail to Lot
Holdings appear but sales are missingTrades section is at Execution levelTick Closed Lots under Trades
A holding shows a value of zeroNo price could be retrieved — usually a company delisted or acquired mid-yearEnter its share price from your statement when prompted
A holding is missing entirelyIts currency has no SBI TTBR, or its exchange could not be pricedCheck the notes on the review page — each exclusion is named
Country looks wrongISIN field was not included in the queryAdd ISIN, or correct the country on the review page
Dates are seven months outAmbiguous slash dates (12/05 is 12 May or 5 Dec)Set the Flex Query date format to yyyyMMdd
One thing IBKR will not give you: your account opening date, which Table A2 asks for. It is on your first IBKR statement, or in Client Portal under Settings → Account Settings. Worth digging out once and keeping — you need it every year.

11. Common mistakes

Or let the tool do it. Upload your Flex Query CSV and get Table A2, A3 and D filled in — per-currency SBI TTBR conversion, issuer country from the ISIN, and a portal-ready ITR-2 JSON plus an Excel working copy.