Improved

Account creation aligned by account type

Broker API

POST /v1/accounts is now documented as a single flat request object whose requirements vary by account type, with named examples for inline trading, custodial, donor-advised, and existing-holder IRA requests.

  • Documents per-type requirements: trading needs inline identity and contact (or an existing holder), custodial needs identity and minor_identity, IRA needs account_sub_type and US equity, and donor-advised needs entity_id. Omitting account_type still defaults to trading.
  • Adds entity_id and minor_identity to the account creation request schema.
  • Create requests accept the four public values trading, custodial, donor_advised, and ira; account responses now also document the runtime-reachable values trust, omnibus_non_disclosed, omnibus_sub, hsa, and joint.
  • Documents creating an account for an existing holder with primary_account_holder_id for trading and IRA accounts.
  • Relaxes static required on contact, identity, disclosures, and agreements so every documented creation flow is representable; conditional requirements are described in the schema and enforced by the server.
  • Corrects the HTTP 400 and 422 create responses to the structured Error object with code and message: malformed or undecodable bodies return 400 with code 40010000, and validation failures, including conflicting holder data, return 422 with code 40010001. Generated clients may need updated response models.
  • Corrects the immutable primary_account_holder_id behavior on PATCH /v1/accounts/{account_id}: supplying a different value returns HTTP 403, now documented with its error response.
  • Marks tax_id_type as required on the custodial minor identity schema and clarifies TrustedContact, which requires at least one of email_address, phone_number, or street_address.

Affected Endpoints

  • POST /v1/accounts
  • GET /v1/accounts
  • GET /v1/accounts/{account_id}
  • PATCH /v1/accounts/{account_id}