Swap orders

Create swap order

Move an investor's holdings directly from one share class to another. This is materialized by a linked redemption/subscription pair.

  • accountId must belong to investorId and must already hold an active line for toShareClassId; otherwise the order is rejected with MissingAccountLineError. Add the line with POST /v0/accounts/{accountId}/lines and retry.
  • The quantity field supports three modes:
    • {"mode":"amount","amount":{"value":"1000","currency":"USD"}} - swap a specific amount
    • {"mode":"shares","shares":"10.5"} - swap a specific number of shares
    • {"mode":"total"} - swap the whole position
  • In amount mode, amount.currency must be the currency of fromShareClassId (USD for SAFO, EUR for eurSAFO, and so on). Any other currency, including the target share class currency, is rejected with an ApplicationError carrying customErrorCode: "CurrencyNotSupported". A swap is always sized on the side it leaves from; the conversion to the target currency happens at execution.
  • Not every pair of share classes can be swapped. An unavailable pair is rejected with SwapNotAvailableError, whose reason says why (share-classes-not-swappable, no-conversion-path, …).
  • Where the two share classes are denominated in different currencies, the conversion is applied at execution using that day's rate. The rate is not known when the order is created, so it appears in settlement.exchangeRate only once the order reaches executed.
  • The order stays created until both sides have been valued, then becomes executed and carries a settlement with both sides' amounts, shares and applied NAVs. Depending on the funds involved, the two sides are valued either on the same day or a few business days apart.

Distribute-with-Spiko's-license distributors cannot place this order. Swap orders are not yet available through an Investor JWT.

post/v0/swap-orders/

Request

Request body

investorIdstring uuid required

a Universally Unique Identifier

accountIdstring uuid required

a Universally Unique Identifier

fromShareClassIdstring uuid required

a Universally Unique Identifier

toShareClassIdstring uuid required

a Universally Unique Identifier

Response

Success

OR
OR

Changes

No recorded changes to this operation across all 1 revision of this API.