Skip to main content
The service reports order acceptance, rejection, fills, cancellation, amendment, and pending states with ExecutionReport (35=8). Cancel and replace failures are reported with OrderCancelReject (35=9).

Response mapping

Client request or eventResponse
NewOrderSingle (35=D) acceptedExecutionReport (35=8), OrdStatus (39)=0, ExecType (150)=0.
NewOrderSingle (35=D) rejectedExecutionReport (35=8), OrdStatus (39)=8, ExecType (150)=8.
Cancel request acceptedExecutionReport (35=8), OrdStatus (39)=6, ExecType (150)=6.
Cancel succeedsExecutionReport (35=8), OrdStatus (39)=4, ExecType (150)=4.
Cancel rejectedOrderCancelReject (35=9).
Replace request acceptedExecutionReport (35=8), OrdStatus (39)=E, ExecType (150)=E.
Replace succeedsExecutionReport (35=8), ExecType (150)=5.
Replace rejectedOrderCancelReject (35=9).
Partial fillExecutionReport (35=8), OrdStatus (39)=1, ExecType (150)=1.
Full fillExecutionReport (35=8), OrdStatus (39)=2, ExecType (150)=2.
Order cancelled by another authorized channelExecutionReport (35=8), OrdStatus (39)=4, ExecType (150)=4.
Order amended by another authorized channelExecutionReport (35=8), ExecType (150)=5.
When cross-channel reporting is enabled for your session, orders placed through another authorized channel may generate ExecutionReport (35=8) messages on the FIX session. Subsequent order lifecycle events use the same response mapping.

ExecutionReport fields

TagNameReqTypeDescription
37OrderIDYStringService-assigned order identifier.
11ClOrdIDYStringClient order identifier for the order or request.
17ExecIDYStringUnique execution report identifier.
150ExecTypeYCharExecution event type.
39OrdStatusYCharCurrent order status.
20ExecTransTypeNCharFIX 4.2 execution transaction type when provided.
1AccountNStringTrading account number.
55SymbolYStringSymbol code.
54SideYCharOrder side. Use 1=Buy or 2=Sell.
38OrderQtyYQtyOrder quantity.
44PriceNPriceOrder price. Required for limit-price reporting when applicable.
59TimeInForceNCharOrder validity.
151LeavesQtyYQtyOpen quantity. Normally OrderQty (38) - CumQty (14). Use 0 for cancelled, rejected, or otherwise inactive orders.
14CumQtyYQtyCumulative matched quantity. Use 0 for a newly accepted order with no fills.
6AvgPxYPriceAverage matched price. Use 0 when there are no fills.
60TransactTimeYUTCTimestampTime of the reported event.
58TextNStringRejection detail, cancellation detail, or other report text.

Common status and execution values

ValueOrdStatus (39)ExecType (150)
0NewNew
1Partially filledPartial fill
2FilledFill
4CanceledCanceled
5Replaced status when applicableReplaced
6Pending cancelPending cancel
8RejectedRejected
APending newPending new
EPending replacePending replace

OrderCancelReject fields

TagNameReqTypeDescription
37OrderIDYStringService-assigned order identifier when known.
11ClOrdIDYStringClient identifier of the cancel or replace request.
41OrigClOrdIDYStringClient identifier of the original order.
39OrdStatusYCharCurrent status of the target order.
1AccountNStringTrading account number.
58TextNStringRejection detail.
434CxlRejResponseToYCharRequest type being rejected. Use 1=OrderCancelRequest or 2=OrderCancelReplaceRequest.
102CxlRejReasonNIntCancel or replace rejection code when provided.

MTL report sequences

MTL outcomeReport sequence
Partial fill with remaining quantityNew (39=0, 150=0) then Partial fill (39=1, 150=1) then Replaced (39=1, 150=5) to report the remaining order as limit.
Full fillNew (39=0, 150=0) then Fill (39=2, 150=2).
No available contra orderNew (39=0, 150=0) then Canceled (39=4, 150=4).