Improved
Named schemas and type discriminators for ACATS and portfolio weights
October 30th, 2026
Broker API
The ACATS transfer-details and portfolio-weight request schemas now reference named component schemas selected by a type discriminator instead of inline branches. Accepted JSON is unchanged, apart from one validation relaxation on full ACATS transfers.
AcatsInitiateTransferDetailsnow selectsFullTransferorPartialTransferontype.PartialTransferis a plain object withtype,cash, andsecurities, and still requires a non-emptycasharray, a non-emptysecurities.equitiesarray, or both.FullTransfernow rejects only a non-emptycashorsecurities.equitiesarray; omitted or empty values are accepted, matching ACATS behavior.PortfolioWeightRequestnow selectsPortfolioWeightCashEntryorPortfolioWeightAssetEntryontype, with shared fields onPortfolioWeightRequestBase.percentremains a decimal string. Portfolio-weight validation is unchanged.
Clients generated from the Broker API description will see renamed models for these branches and should follow a breaking-change adoption path rather than a routine regeneration.
Affected Endpoints
POST /v1beta1/acats/{account_id}POST /v1/rebalancing/portfoliosPATCH /v1/rebalancing/portfolios/{portfolio_id}POST /v1/rebalancing/runs