Improved
Account creation contract aligned by account type
September 9th, 2026
Broker API
POST /v1/accounts is now documented as a single flat, permissive request object with account-type-specific requirements described in prose and named examples. The server contract is unchanged; generated client models may change.
- Documents requirements for trading, custodial, IRA, and donor-advised accounts, and confirms that an omitted
account_typedefaults totrading. - Adds
entity_idandminor_identityto the account creation request. Donor-advised accounts reference an existing legal entity throughentity_id; custodial accounts requireidentityandminor_identity. - Documents creating an account for an existing holder through
primary_account_holder_idfor trading and IRA accounts. - Splits account type enums: create requests use
AccountCreationType(trading,custodial,donor_advised,ira), while account responses useAccountType, which now also documentstrust,omnibus_non_disclosed,omnibus_sub,hsa, andjoint. - Removes
contact,identity,disclosures, andagreementsfrom the statically required list so every documented creation flow is representable; conditional requirements remain enforced server-side. - Corrects the account creation error responses to the structured
Errorobject withcodeandmessage: malformed or undecodable bodies return HTTP 400 with code40010000, and validation failures return HTTP 422 with code40010001for conflicting holder data. - Documents HTTP 403 on
PATCH /v1/accounts/{account_id}when a request supplies aprimary_account_holder_iddifferent from the account's current primary holder. - Adds four named request examples (inline trading, custodial, donor-advised, and existing-holder IRA), marks
tax_id_typeas required on the custodial minor identity, and clarifies thatTrustedContactrequires at least one ofemail_address,phone_number, orstreet_address.
Affected Endpoints
POST /v1/accountsGET /v1/accountsGET /v1/accounts/{account_id}PATCH /v1/accounts/{account_id}