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

Schedule FA CSV Bulk-Upload — The Exact Format That Works

8 min read · Published July 2026 · Applies to AY 2026-27

Short version: the portal's Schedule FA CSV upload works, but it rejects almost every hand-built file for reasons the error messages don't explain. The dropdown columns want internal codes (2, BENEFICIAL_OWNER, D) — not the text the dropdown shows you. Dates want YYYY-MM-DD. And a single comma anywhere in a value silently deletes the whole row.

Most Schedule FA guides describe two ways to file: type each row into the portal by hand, or prepare a full return in the Offline Utility and import its JSON. There's a third route that's easy to miss because nothing announces it — each of Tables A2, A3 and F has its own "Upload CSV" option with a downloadable template. It genuinely works and it will save you a lot of typing on a large Table A3. But the template ships with no example row, and the validation errors point at columns without saying what's actually wrong with them, so the first few attempts usually fail.

Below is the format that the portal actually accepts, established by working through repeated rejections on a real filing and then confirming each rule against the validation logic the portal itself runs in the browser.

Skip the hand-building entirely — upload your broker files and ITRFA.in computes every value in these exact columns. Try it free →

Rule 1 — dropdown columns want internal codes, not the visible text

This is the one that causes the "Please select the status…" and "Select the nature of amount from the drop downs provided…" errors. The validator checks your value against a lookup table of internal codes. The readable text you see in the dropdown is what that table maps to — it is never accepted as input. Neither is the numbered position of the option.

ColumnWhat the dropdown showsWhat the CSV needs
Status (A2)OwnerOWNER
Beneficial ownerBENEFICIAL_OWNER
BeneficiaryBENIFICIARY (the portal's own spelling)
Nature of Amount (A2)InterestI
DividendD
Proceeds from sale or redemption of financial assetsS
Other incomeO
No Amount paid/creditedN
Country Name and Code
(A2, A3 and F)
2-UNITED STATES OF AMERICA2
Income taxable in your hands? (F)Yes / NoY / N

The country code is the portal's own numeric code, which is not the ISO code — the United States is 2, not US or 840. The first column, "Country/Region name", is separate free text and takes the readable name (UNITED STATES OF AMERICA).

Rule 2 — dates must be YYYY-MM-DD

Use 2024-05-15. Not 15-May-2024, even though that's exactly what the manual entry form's date picker displays and what its placeholder text suggests. The CSV validator applies a strict pattern that only accepts the ISO form, so a file that looks consistent with the on-screen form will still fail. This affects Account opening date in A2, Date of acquiring the interest in A3, and Date since position held in Table F.

Rule 3 — no commas in any value, and quoting won't save you

This one fails silently. The portal splits each row on every comma with no quote handling whatsoever. A properly-quoted "ServiceNow, Inc." is read as two separate cells, which throws the column count off, and the row is discarded without an error message — you just end up with fewer rows than you uploaded.

Company names (ServiceNow, Inc.) and addresses (2225 Lawson Lane, Santa Clara, CA) are where this bites. Strip the commas before uploading — ServiceNow Inc. and 2225 Lawson Lane Santa Clara CA are accepted and read correctly. On a Table A3 with dozens of lots that all share one company name, a single stray comma can wipe out every row in the file.

Rule 4 — column order and count must match exactly

Keep the template's header row as it downloads and don't reorder, add or remove columns. Every data row needs exactly as many comma-separated cells as there are columns — including trailing empty cells for fields you're leaving blank. A row with the wrong number of cells is skipped, again quietly.

Table A2 — column order

#ColumnFormat
1Country/Region nameText
2Country Name and CodeCode2
3Name of financial institutionText, no commas
4Address of financial institutionText, no commas
5ZIP CodeMax 8 chars
6Account NumberText
7StatusCode
8Account opening dateYYYY-MM-DD
9Peak Balance During the PeriodInteger INR
10Closing balanceInteger INR
11Nature of AmountCode
12AmountInteger INR

A working A2 row looks like this:

UNITED STATES OF AMERICA,2,Fidelity Investments (NetBenefits),82 Devonshire Street Boston MA 02109,02109,X12-345678,BENEFICIAL_OWNER,2023-01-15,5485283,4797068,D,1571
Each row carries exactly one Nature of Amount and one Amount. An account with both dividend income and sale proceeds in the same calendar year needs two rows — identical institution, address, account number, status and balances on both, differing only in columns 11 and 12 (D with the dividend, then S with the proceeds). See Table A2 vs A3 for a worked example.

Table A3 — column order

#ColumnFormat
1Country/Region nameText
2Country Name and CodeCode2
3Name of entityText, no commas
4Address of entityText, no commas
5ZIP CodeMax 8 chars
6Nature of entityFree text, max 34
7Date of acquiring the interestYYYY-MM-DD
8Initial value of the investmentInteger INR
9Peak value of investment during the PeriodInteger INR
10Closing balanceInteger INR
11Total gross amount paid/credited …Integer INR
12Total gross proceeds from sale or redemption …Integer INR

Country is the only coded column in A3 — Nature of entity is free text despite the similar name, and unlike A2 there's no Nature-of-Amount split: income and sale proceeds are two separate columns on the same row. One row per lot held at any point in the calendar year, including lots sold during the year (closing balance 0, proceeds filled in).

Table F — column order

For a foreign trust — e.g. the plan-administrator trust holding unvested RSU/ESPP shares.

#ColumnFormat
1Country/Region Name and codeText
2Country Name and CodeCode2
3ZIP CodeMax 8 chars
4Name of the trustText, no commas
5Address of the trustText, no commas
6Name of trusteesText, no commas
7Address of trusteesText, no commas
8Name of SettlorText, no commas
9Address of SettlorText, no commas
10Name of BeneficiariesText, no commas
11Address of BeneficiariesText, no commas
12Date since position heldYYYY-MM-DD
13Whether income derived is taxable in your hands?CodeY/N
14If (13) is yes, Income derived in the accountInteger INR
15AmountInteger INR
16Schedule where offeredText
17Item number of scheduleText

If it still rejects a valid-looking file

One quirk worth knowing: the validator sometimes reads the value sitting in the on-screen form rather than the one in your file, which makes a correctly-formatted row fail on the dropdown columns anyway. If everything above checks out and you're still getting "please select" errors, clear the existing rows from the table before uploading and try again on an empty grid.

Also worth checking: the error dialog paginates. It shows three errors at a time, so use the arrows to see whether the remaining errors are the same columns repeating on later rows or something new.

Where to find it on the portal

On the Select Schedule screen, Schedule FA sits under the "Others" category — not "Income", where most people look first. Open Schedule FA, go to the table you want, and the template download and upload options sit alongside the usual "+Add" button.

Getting the numbers right is the harder half

The format rules above only get the file accepted. You still need the right peak balance, closing balance, and correctly-dated SBI TTBR conversions in every row — which is where the genuinely consequential mistakes happen: using the wrong exchange-rate rule, converting a peak value at the wrong date's rate, or collapsing an account's dividend and sale proceeds into one row. ITRFA.in computes all of it from your broker exports and gives you the values already worked out.

Get the numbers computed for you

Upload your Fidelity, Schwab, E*TRADE, or Morgan Stanley files. ITRFA.in works out every Table A2/A3 value — peak balance at the right date's rate, closing balance, and the per-nature A2 row split.

Generate your Schedule FA values →

FAQ

The dropdown columns need internal codes, not the visible text: 2 for the United States, BENEFICIAL_OWNER for status, and a single letter (D, S, I, O, N) for Nature of Amount.

YYYY-MM-DD. The DD-MMM-YYYY format the manual form's date picker shows is rejected by the CSV validator.

Almost certainly a comma inside a value — a company name like "ServiceNow, Inc." or a comma-separated address. The portal splits rows on every comma and ignores quoting, so those rows fail the column count and are dropped silently. Remove the commas.

Under "Others", not "Income".

Related guides

Informational only, based on current law (FY 2025-26 / AY 2026-27) and the live portal as of July 2026 — the portal's behaviour and codes can change without notice. Consult a chartered accountant for your situation.