Orders Messages

New Order Single

The NewOrderSingle message is used to submit a new order. Market and Limit orders are currently supported. Orders are routed using the default routing strategy. Specifying order strategy and algo parameters will be supported in a future release.

TagField NameReq'dComments
<MessageHeader>YMsgType <35> = D
11ClOrdIDYUnique identifier for Order as assigned by the client. Must be <= 36 characters. UUIDs are recommended.
55SymbolYThe symbol of the currency pair to place an order on. For example, BTC-USD
54SideYSide of order: 1 = Buy, 2 = Sell
40OrdTypeYOrder type: 1 = Market, 2 = Limit, A = LimitAllIn, requested price/size includes fees
38OrderQtyYSize of the order
15CurrencyNThe currency the quantity is specified in. If not specified, defaults to the base currency for the symbol.
44PriceNPrice of the order. Required for limit orders.
59TimeInForceYSpecifies how long the order remains in effect: 1 = Good Till Cancel (GTC), 3 = Immediate Or Cancel (IOC), 4 = Fill Or Kill (FOK)
60TransactTimeYBusiness timestamp for this request.
126ExpireTimeNOptional expiration time for the order. Only valid on orders with TimeInForce=1 (GTC). UTC Timestamp.
168EffectiveTimeNTime at which this order will activate and begin sending orders to the market. UTC Timestamp.
20030CancelOnDisconnectNWhether or not this order should be canceled when this session is disconnected, Y / N. Defaults to Y.
<MessageTrailer>Y

Order Cancel Request

The OrderCancelRequest message is used to cancel an existing order.

TagField NameReq'dComments
<MessageHeader>YMsgType <35> = F
11ClOrdIDYUnique ID of cancel request as assigned by the client. Must be <= 36 characters. UUIDs are recommended.
41OrigClOrdIDYClOrdID(11) of the previous non-rejected order.
55SymbolYThe symbol of the currency pair of the order. For example, BTC-USD
54SideYSide of order: 1 = Buy, 2 = Sell
60TransactTimeYBusiness timestamp for this request.
<MessageTrailer>Y

Order Cancel Replace Request

The OrderCancelReplaceRequest message is used to amend the price, quantity, or markets for an existing order

TagField NameReq'dComments
<MessageHeader>YMsgType <35> = G
11ClOrdIDYUnique ID of cancel request as assigned by the client. Must be <= 36 characters. UUIDs are recommended.
41OrigClOrdIDYClOrdID(11) of the previous non-rejected order.
55SymbolYThe symbol of the currency pair of the order. For example, BTC-USD
54SideYSide of order: 1 = Buy, 2 = Sell
40OrdTypeYOrder type: 1 = Market, 2 = Limit, A = LimitAllIn, requested price/size includes fees
38OrderQtyYSize of the order
44PriceNPrice of the order. Required for limit orders.
60TransactTimeYBusiness timestamp for this request.
<MessageTrailer>Y

Execution Report

The ExecutionReport message is used to acknowledge/reject an order or changes to an order, and to relay order status and fill updates

TagField NameReq'dComments
<MessageHeader>YMsgType <35> = 8
11ClOrdIDNClOrdID of the order.
41OrigClOrdIDNSet to the ClOrdID of the previous accepted order when responding to a Cancel or Cancel/Replace request
37OrderIDYUnique identifier of most recent order as assigned by {{ Customer }}.
55SymbolYThe symbol of the currency pair of the order. For example, BTC-USD
54SideYSide of order: 1 = Buy, 2 = Sell
38OrderQtyYSize of the order
44PriceNPrice of the order. Required for limit orders.
60TransactTimeNBusiness timestamp for this execution.
17ExecIDYUnique identifier of execution message as assigned by {{ Customer }}.
527SecondaryExecIDNUnique identifier of execution message as assigned by the exchange or liquidity provider. Only specified when ExecType=Trade.
150ExecTypeYDescribes the specific ExecutionRpt (e.g. Pending Cancel) while OrdStatus(39) will always identify the current order status (e.g. Partially Filled). 0 = New, 3 = Done for day, 4 = Canceled, 5 = Replaced, 6 = Pending Cancel (e.g. result of Order Cancel Request), 8 = Rejected, A = Pending New, E = Pending Replace (e.g. result of Order Cancel/Replace Request), F = Trade (partial fill or fill)
59TimeInForceYSpecifies how long the order remains in effect: 1 = Good Till Cancel (GTC), 3 = Immediate Or Cancel (IOC), 4 = Fill Or Kill (FOK)
40OrdTypeYOrder type: 1 = Market, 2 = Limit
39OrdStatusYDescribes the current state of the order, same scope as OrderQty, CumQty, LeavesQty, and AvgPx: 0 = New, 1 = Partially filled, 2 = Filled, 3 = Done for day, 4 = Canceled, 6 = Pending Cancel (i.e. result of Order Cancel Request), 8 = Rejected, A = Pending New, E = Pending Replace (i.e. result of Order Cancel/Replace Request)
151LeavesQtyYQuantity open for further execution. If the OrdStatus(39) is = 4 (Canceled), 3 (Done For Day), or 8 (Rejected) (in which case the order is no longer active) then LeavesQty(151) could be 0, otherwise LeavesQty(151) = OrderQty(38) - CumQty(14).
14CumQtyYCurrently executed quantity for chain of orders.
6AvgPxYCalculated average price of all fills on this order.
103OrdRejReasonNFor optional use with ExecType = 8 (Rejected): 0 = Broker / Exchange option, 1 = Unknown symbol, 2 = Exchange closed, 3 = Order exceeds limit, 5 = Unknown order, 6 = Duplicate Order (e.g. dupe ClOrdID), 7 = Duplicate of a verbally communicated order, 8 = Stale order
31LastPxNPrice of this (last) fill. Required if ExecType(150) = F (Trade)
32LastQtyNQuantity bought/sold on this (last) fill. Required if ExecType(150) = F (Trade)
381GrossTradeAmtNLast amount traded (i.e. quantity * price) expressed in units of counter currency. Required if ExecType(150) = F (Trade)
4015CumAmtNTotal amount traded (i.e. quantity * price) expressed in units of counter currency.
4016CumFeeNTotal fee expressed in units of FeeCurrency.
4033LastFeeNLast fee expressed in units of FeeCurrency
4034LastFeeCurrencyNCurrency of the Fee
20030CancelOnDisconnectNWhether or not this order will be canceled when this session is disconnected, Y / N
20032DecisionStatusNThe current decision-status of the order: A = Active (default), P = Paused, U = Pending Pause, R = Pending Resume, W = Waiting for StartTime, T = Waiting for Trigger. Paused / Staged orders can be edited and resumed from the {{ Customer }} UI. Pending statuses are intermediate states.
58TextN
<MessageTrailer>Y

Order Cancel Reject

The OrderCancelReject message is used to reject invalid cancel or cancel/replace requests

TagField NameReq'dComments
<MessageHeader>YMsgType <35> = 9
11ClOrdIDYClOrdID(11) which could not be canceled/replaced.
41OrigClOrdIDYClOrdID of the previous accepted order
37OrderIDYUnique identifier of most recent order as assigned by {{ Customer }}. If CxlRejReason="Unknown order", then will be "NONE".
60TransactTimeNBusiness timestamp for this reject.
39OrdStatusYIdentifies current status of order: 0 = New, 1 = Partially filled, 2 = Filled, 4 = Canceled, 6 = Pending Cancel (i.e. result of Order Cancel Request), 8 = Rejected, A = Pending New, E = Pending Replace (i.e. result of Order Cancel/Replace Request)
434CxlRejResponseToYIdentifies the type of request that a Cancel Reject is in response to: 1 = Order cancel request, 2 = Order cancel/replace request
102CxlRejReasonNCode to identify reason for cancel rejection: 0 = Too late to cancel, 1 = Unknown order, 2 = Broker / Exchange Option, 3 = Order already in Pending Cancel or Pending Replace status
58TextN
<MessageTrailer>Y