Improved
Account creation request and error responses aligned by account type
September 9th, 2026
Broker API
The account creation contract now documents requirements per account type and matches the error shapes the API actually returns.
AccountCreationRequeststays a single flat object, with per-type requirements documented for trading, custodial, IRA, and donor-advised accounts.contact,identity,disclosures, andagreementsare no longer statically required; the server continues to enforce conditional requirements.- Adds
entity_id(donor-advised accounts reference an existing legal entity) andminor_identity(custodial accounts) to the request schema. - Create requests accept
trading,custodial,donor_advised, andira, and default totradingwhenaccount_typeis omitted. Account responses now document five additional values the API can return:trust,joint,hsa,omnibus_sub, andomnibus_non_disclosed. primary_account_holder_iddocuments creating an account for an existing holder for trading and IRA accounts; inline holder fields should be omitted when it is supplied.- HTTP 400 and 422 on account creation are now documented with the structured
{code, message}Errorobject instead of a string, with examples: malformed bodies return 400 with code40010000, validation failures return 422 with code40010001. - Attempting to change the immutable
primary_account_holder_idon account update now documents HTTP 403 with the structured error response. - Adds four named request examples (inline trading, custodial, donor-advised, and existing-holder IRA), and clarifies
TrustedContactrequirements: at least one ofemail_address,phone_number, orstreet_address, with address subfields required whenstreet_addressis set.tax_id_typeis required on custodial minor identity when a tax ID is provided.
Affected Endpoints
POST /v1/accountsGET /v1/accountsGET /v1/accounts/{account_id}PATCH /v1/accounts/{account_id}