tax_status, address.state, fatca.birth_country, bank account types,
nominee relationships and more. Free text works for none of them: a value
outside the exchange’s table either silently falls into a default bucket or
comes back as a rejection.
The masters endpoints here return those tables as option lists
({ "value", "label" }) sized for UI dropdowns — value is exactly what
you send in the request, label is what you display.
These are served from static tables we keep in sync with the exchange’s own
masters — no exchange call, nothing to paginate. Fetch them once when your
form loads and cache them.
Investor form options
tax_statuses today covers the three statuses the creation form supports —
Resident Individual and the two NRI variants. The request enum also accepts
MINOR, HUF, COMPANY and TRUST, but those need guardian/entity fields
we don’t catalog here yet; they’ll be added to this endpoint when the form
scope grows.
The resident / NRI cascade
tax_statuses carries a group so you can render the same two-step pick
most onboarding forms use:
- Investor type —
RESIDENTorNRI. - Account variant — enabled only for
NRI, listing that group’s options: NRE (NRI_REPATRIABLE) or NRO (NRI_NON_REPATRIABLE).
tax_status sent and the bank account the exchange
requires: an NRE investor must include at least one NE account, an NRO
investor at least one NO account. Defaulting the first bank row’s account
type to the variant’s NE/NO when the user picks NRE/NRO saves the most
common validation failure.
States
value is the exact string address.state accepts — the same list as the
valid state values table,
so you don’t have to maintain it by hand.
Countries
value being the
ISO 3166-1 alpha-2 code the FATCA fields take:
fatca.birth_country and fatca.tax_residency.
address.country is not a dropdown from this table — the domestic
address block is always registered as India regardless of what you send, so
hard-code it. This table is for the FATCA fields only.