API status

Sell-to-cover orders

Selling securities to cover outstanding fees is one of the most commonly used cash collection strategies at Upvest. It has the advantage that it does not depend on the user's cash balance, so the chances of collecting the fee are much higher.

If the ‘sell-to-cover’ method is chosen, it is important that the client has a legal licence from the user to initiate such orders. This should not be a matter for portfolio managers, but if you do not have this licence, you must have the relevant points in the General Terms and Conditions (standing order).

Process flow

In this cash collection scenario, the workflow runs through the following steps after the fee collection has been triggered:

  1. Sell-to-cover orders

    Sell-to-cover orders are created and executed on the next working day after the fee collection is created; order events are then issued accordingly.

    • Upvest sells the securities with the largest position to cover the outstanding fee.
    • Orders that are created to cover fees can be recognised by the initiation_flow value in the order event: SELL_TO_COVER_FEES.
    • Since in most cases the amount received from a sell order is taxed, Upvest adds a 10% buffer to the order. The amount to be sold is calculated as [fee amount]*1.1.

  2. Order events

    A sell-to-cover order triggers the same events as any other order, including a PDF report event.


  3. Positions update

    Positions are updated; cash and securities transaction events are triggered.
    If, after the execution of a sell order to cover the fees, the cash received is not sufficient to cover the fees (this can happen due to high taxes or unexpected price fluctuations), another sell order is triggered for a residual amount with an increased buffer of 20%.


  4. Fee collection

    Once the sell order to cover the fee has been settled, the fee is collected and the fee collection and cash transaction events are triggered.


    The remaining unused cash can be withdrawn shortly after the fee has been deducted.


Sell-to-cover order example

A sell-to-cover order is placed with the following request:

POST /orders

{
"id": "8962b496-8d42-4560-bfab-10490dd1a721",
"created_at": "2021-07-21T14:10:00.00Z",
"type": "ORDER.NEW",
"object": {
    "id": "eb5ba93f-5dfe-4bf1-8571-4da0caacc80c",
    "created_at": "2021-07-21T14:10:00.00Z",
    "updated_at": "2021-07-21T14:10:00.00Z",
    "user_id": "2dedfeb0-58cd-44f2-ae08-0e41fe0413d9",
    "account_id": "689f7566-2ca3-4007-b99d-e501be8c7783",
    "cash_amount": "22.00",
    "currency": "EUR",
    "side": "BUY",
    "instrument_id": "IE00B27YCP72",
    "instrument_id_type": "ISIN",
    "order_type": "MARKET",
    "quantity": "1.2",
    "user_instrument_fit_acknowledgement": true,
    "limit_price": "",
    "stop_price": "",
    "status": "NEW",
    "fee": "",
    "executions": [],
    "client_reference": "",
    "initiation_flow": "SELL_TO_COVER_FEES"
},
"webhook_id": "9df39835-be87-4243-9018-f2500b39cee6"
}