Skip to main content

Unsolicited events

Unsolicited events are sent by the exchange when activity occurs on your resting orders or quotes without you directly requesting it — for example, fills as a maker, system cancellations, or MMP triggers.
Maker vs. taker fills: OrderFilled unsolicited events are only sent to the maker. If your order or quote was the aggressor (taker), all fill information is returned directly on the acknowledgement message (NewOrderResponse, AmendOrderResponse, or MassQuoteResponse). You will not receive a separate OrderFilled event for taker fills.

OrderFilled (300)

Event generated when one or more resting orders are filled by a taker order. This may include orders from different instruments if the taker order was for a combo instrument and matched an implied order.
FieldNameTypeLengthDescription
1transactTimeint648Nanoseconds since echo. Time of entry into the order book
2execIdint648Exchange-assigned event ID
3blockLengthOfFillsuint16260 (bytes)
4numberOfFillsuint162Indicates the length of the following repeating group containing all immediate fills when the order was submitted
->5clientOrderIdint648Numeric client order ID. Set to the quoteId if the order was submitted as part of a MassQuote
->6orderIdint648Numeric exchange assigned order ID
->7instrumentIdint648Numeric instrument ID
->8matchIdint648Transaction ID representing match, shared by all fills within match
->9fillPricePrice98Price of fill
->10fillQtyDecimal729Quantity of fill
->11totalFilledDecimal729Cumulative amount filled
->12sideint811=BUY
-1=SELL
->13flagsuint81Defined in following table
14blockLengthOfLegsuint16234 (bytes)
15numberOfLegsuint162Indicates the length of the following repeating group containing all combo leg quantities and prices.
Non-zero for trades on combo instruments only.
->16matchIdint648Transaction ID representing match.
->17instrumentIdint648Numeric instrument ID.
->18legPricePrice98Price of this leg in the combo instrument
->19legQuantityDecimal729Quantity of this leg in the combo instrument
->20legSideint811=BUY
-1=SELL
The table below outlines the content of field 13 (flags).
Bit number (from last to first)NameDescription
1isQuote0=False (order)
1=True (quote)
2isFullyFilled0=PartiallyFilled
1=FullyFilled
3Reserved for future use
4Reserved for future use
5Reserved for future use
6Reserved for future use
7Reserved for future use
8Reserved for future use

OrdersCanceled (310)

Event generated when one or more orders and/or quotes submitted via this binary API session are canceled for some reason other than in direct response to a client request (NewOrderRequest, AmendOrderRequest, CancelOrderRequest, MassQuoteRequest). For example, due to end-of-day expiries, liquidation, admin action, or as part of a mass cancel request or MMP trigger event.
FieldNameTypeLengthDescription
1transactTimeint648Nanoseconds since epoch. Time of entry into the order book
2execIdint648Exchange-assigned event ID
3flagsuint810=isLastMessage
4blockLengthOfOrdersuint16235 (bytes)
5numberOfOrdersuint162Length of the following repeating group of canceled orders
->6clientOrderIdint648Numeric client order ID
->7orderIdint648Numeric exchange assigned order ID
->8instrumentIdint648Numeric instrument ID
->9totalFilledDecimal729Filled quantity of canceled order
->10cancelReasonint81See OrdersCanceled Cancel Reasons
->11flagsuint811=isQuote

OrderPlaced (312)

Unsolicited event sent when a speed-bumped order completes the speed bump period and is entered into the book. Sent to the session that originally submitted the order. When the order matches immediately upon book entry, numberOfFills is greater than 0 and the fills repeating group is populated.
FieldNameTypeLengthDescription
1transactTimeint648Nanoseconds since epoch. Time of entry into the order book
2execIdint648Exchange-assigned event ID
3clientOrderIdint648Numeric client order ID
4orderIdint648Numeric exchange assigned order ID
5instrumentIdint648Numeric instrument ID
6limitPricePrice98Price at which the order was placed in the book
7quantityDecimal729Quantity
8totalFilledDecimal729Total quantity filled upon book entry. 0 if no immediate fills
9sideint811=BUY
-1=SELL
10statusint811=Active
2=Filled
3=Cancelled (if cancelled during the speed bump period)
11blockLengthOfFillsuint16225 (bytes)
12numberOfFillsuint162Number of fills. 0 if the order entered the book without immediately matching
->13matchIdint648Transaction ID representing match
->14fillPricePrice98Price of fill
->15fillQtyDecimal729Quantity of fill
16blockLengthOfLegsuint16234 (bytes)
17numberOfLegsuint162Indicates the length of the following repeating group containing all combo leg quantities and prices.
Non-zero for trades on combo instruments only.
->18matchIdint648Transaction ID representing match.
->19instrumentIdint648Numeric instrument ID
->20legPricePrice98Price of this leg in the combo instrument
->21legQtyDecimal729Quantity of this leg in the combo instrument
->22legSideint811=BUY
-1=SELL

MassQuoteOrdersPlaced (314)

Unsolicited event sent when one or more speed-bumped quote sides complete the speed bump period and are entered into the book. Sent to the session that originally submitted the MassQuoteRequest.
FieldNameTypeLengthDescription
1transactTimeint648Nanoseconds since epoch. Time of entry into the order book
2execIdint648Exchange-assigned event ID
3quoteIdint648Numeric client quote ID from the originating MassQuoteRequest
4mmpGroupIdint648Identifier of MMP group
5blockLengthOfQuotesuint16244 (bytes)
6numberOfQuotesuint162Number of placed quote entries in this message
->7instrumentIdint648Numeric instrument ID
->8buyOrderIdint648Numeric exchange assigned order ID for buy side, or 0 if not placed
->9sellOrderIdint648Numeric exchange assigned order ID for sell side, or 0 if not placed
->10buyPricePrice98Limit price of buy side
->11sellPricePrice98Limit price of sell side
->12buyAmountDecimal729Remaining buy amount
->13sellAmountDecimal729Remaining sell amount
->14buyQuoteStatusint810=Inactive
1=Unmodified
2=QuantityReduced
3=Updated
4=Filled
5=CanceledByRequest
6=CanceledByMmp
7=CanceledBySelfMatch
->15sellQuoteStatusint81Refer to buyQuoteStatus for possible values

MassQuoteMmpTriggered (320)

Event generated when a mass quote Market Maker Protection limit is triggered. Followed by one or more OrderCanceled messages..
FieldNameTypeLengthDescription
1transactTimeint648Nanoseconds since echo. Time of trigger in the order book
2execIdint648Exchange-assigned event ID
3mmpGroupIdint648Identifier of MMP group
4frozenUntilint648Nanoseconds since epoch
5quantityLeveldouble8The total traded quantity, within a given interval, at the time of the trigger
6vegaLeveldouble8The change in vega exposure within a given interval, at the time of the trigger
7deltaLeveldouble8The change in delta within a given interval, at the time of the trigger
8triggerint810=quantity
1=delta
2=vega

OrdersMmpTriggered (322)

Event generated when an orders Market Maker Protection limit is triggered. Followed by one or OrderCanceled messages.
FieldNameTypeLengthDescription
1transactTimeint648Nanoseconds since echo. Time of trigger in the order book
2execIdint648Exchange-assigned event ID
3indexIdint648Numeric index ID
4frozenUntilint648Nanoseconds since epoch
5quantityLeveldouble8The total traded quantity, within a given interval, at the time of the trigger
6vegaLeveldouble8The change in vega exposure within a given interval, at the time of the trigger
7deltaLeveldouble8The change in delta within a given interval
8triggerint810=quantity
1=delta
2=vega

MassQuoteMmpUnfrozen (324)

Event generated when a mass quote Market Maker Protection group is unfrozen, either in response to a reset request or because the frozenUntil timer elapsed.
FieldNameTypeLengthDescription
1transactTimeint648Nanoseconds since epoch. Time of trigger in the order book
2execIdint648Exchange-assigned event ID
3mmpGroupIdint648Identifier of MMP group
4correlationIdint648Client-assigned ID, or 0x8000000000000000 if unsolicited (timer elapsed)

OrdersMmpUnfrozen (326)

Event generated when an orders Market Maker Protection group is unfrozen, either in response to a reset request or because the frozenUntil timer elapsed.
FieldNameTypeLengthDescription
1transactTimeint648Nanoseconds since epoch. Time of trigger in the order book
2execIdint648Exchange-assigned event ID
3indexIdint648Numeric index ID
4correlationIdint648Client-assigned ID, or 0x8000000000000000 if unsolicited (timer elapsed)