OpenAPI

Message to indicate some change of order status. 

Additional Fields

NameTypeDescription
AllocationKeyIdStringAllocationKey if order was placed as block trade on IB account.
AmountDecimalOrder amount
AssetTypeAssetTypeAssetType of instrument traded.
AveragePriceDecimalThe average price of the FilledAmount
BuySellBuySellIdentifies the side of the transaction. 
Buy: Buy the security. 
Sell: Sell the security.
CorrelationKeyStringCorrelationkey, relating orders for better visual correlation.
DisplayAndFormatInstrumentDisplayAndFormatInformation about the instrument and how to display it.
DurationOrderDurationOrder duration
ExecutionPriceDecimalExecution price of this particular fill (if multiple fills)

ExchangeInfo

InstrumentExchangeDetails

Information about the instrument's exchange and trading status.

FillAmountDecimalThe amount of the current fill.
FilledAmountDecimalAmount currently filled
HandledByStringWould be either UserId if initiated by a known user or System if handled by the system.

OptionData

OptionData

Information related to options.

OrderIdStringOrder Id
OrderRelationOpenOrderRelationRelation to other active orders.
OrderTypeOpenOrderTypeThe OrderType
PositionIdStringId of position created, if order is filled (partially filled)
PriceDecimalOrder price.
RelatedOrdersString []Id's of one or more related orders.
RelatedPositionIdStringId of position to which this order is related.
StatusOrderStatus

OrderStatusType. Currently we are returning the following status values:

  • Cancelled: Order cancel.
  • Changed: Order change.
  • DoneForDay: Order is 'done for day' in external EMS and pulled back to Saxo.
  • Expired: Order expired.
  • Fill: Order fill (partial fill).
  • FinalFill: Final fill of order.
  • Placed: Order placement.
SubStatusSubStatus

One of:

  • Confirmed: The order event has been accepted by other dependant systems, typically the external broker.
  • Rejected: The order event has been rejected by the dependant system.
StopLimitPriceDecimalSecondary price level for StopLimit orders.
SymbolstringSymbol- A combination of letters used to uniquely identify a traded instrument. e.g. ODAX/X13C8950:xeur.

TrailingStopDistanceToMarket

DecimalDistance to market for a trailing stop order.
TrailingStopStepDecimalStep size for trailing stop order.
UicIntUic of instrument traded
MultilegOrderIdIntMulti leg order Id. It Indicates that this order event is related to a leg of multi leg order.


Sample Message

An example of an order event message:

{
  "ReferenceId": "U_939",
  "Timestamp": "2018-07-11T13:39:30.239056Z",
  "Data": [
    {
      "AccountId": "IB-AMA-Cash",
      "ActivityTime": "2018-07-10T06:33:39.081874Z",
      "ActivityType": "Orders",
      "Amount": 10,
      "AssetType": "Stock",
      "AveragePrice": 177.64285714285714,
      "BuySell": "Buy",
      "ClientId": "2147045884",
      "CorrelationKey": "6f04c63d-5868-4b42-9269-cc55915f9fa9",
      "DisplayAndFormat": {
        "BarrierFormat": "Normal",
        "Currency": "USD",
        "Decimals": 2,
        "Description": "Apple Inc.",
        "Format": "Normal",
        "OrderDecimals": 2,
        "StrikeFormat": "Normal",
        "Symbol": "AAPL:xnas"
      },
      "Duration": {
        "DurationType": "GoodTillCancel",
        "ExpirationDateTime": "1/1/1900"
      },
      "ExchangeInfo": {
        "ExchangeId": "NASDAQ"
      },
      "ExecutionPrice": 175.5,
      "FillAmount": 4,
      "FilledAmount": 10,
      "HandledBy": "2147339098",
      "OrderId": "54016921",
      "OrderRelation": "StandAlone",
      "OrderType": "Limit",
      "PositionId": "150733135",
      "Price": 185.5,
      "SequenceId": "35350",
      "Status": "FinalFill",
      "SubStatus": "Confirmed",
      "Symbol": "AAPL:xnas",
      "Uic": 211
    }
  ]
}


Order Status and Sub Status

Order Status are used to indicate the intended new status of the order.

Order Status

The type of order event is provided in the Status field. The following values are possible:

Order Status

Description

CancelledOrder cancel initiated by client or dealer.
ChangedOrder change.
DoneForDayOrder is done for day in external OMS.
ExpiredOrder has expired.
FillOrder fill - (Also used for trade on quote in OrderLog)
FinalFillOrder fill - final fill of an open order.
PlacedNew order placement.

Order SubStatus

In the vast majority of cases an order event will be accepted by the underlying systems in which the Sub status of the event will be set to "Confirmed". If an order event is not accepted the sub status will be "Rejected", and you can effectively disregard the event, as the clients order will either not have been placed, or it will remain unchanged.


Order SubStatusDescription
ConfirmedThe order status provided in the Status field has been confirmed.
RejectedThe attempt to change the order status to the value in the Status field was rejected.


Multileg Orders

A multileg order is a type of order where we can simultaneously buy and sell multiple contract options with different strike price, expiry date and each option becomes leg of the multi leg order.

This type of order is primarily used in multi-legged option strategies such as a straddlestrangle,  butterfly etc. ENS does not provide a separate activity entry for the multileg orders, but if an individual order is part of a multileg order, the multileg order id is available as a field on the individual order.