Differences with prior versions of BOE
Notable differences between BOEv3 and the prior major version of BOE (BOEv2) include:
- BOEv3 has statically sized messages except when sizing variability is required due to (statically sized) repeating groups of fields. Consequently, BOEv3 does not support optional fields on input nor bitfield-specified optional return fields. This provides a more consistent and predictable experience for all users.
- Connectivity is now managed as a port specific to a matching unit. Consequently, separate ports will be required for access to each matching unit.
- The Logout Response message no longer returns the LastReceivedSequenceNumber, nor the highest available sequence numbers of the matching unit(s).
- There is no longer a systematically enforced limit on the number of open orders or quotes a firm may have entered on the exchange.
- BOEv3 requires that the EFID (ClearingFirm) be specified on all Cancel Order and Modify Order messages (either via Port default or by specifying in the message). This differs from prior versions of BOE where this was only required of service bureau TPHs.
- If CustOrderHandingInst is not specified on a Modify Order message the port default will be applied. In prior versions of BOE, the CustOrderHandingInst would have been carried forward from the current version of the order.
- When logging in, TPHs may specify a behavior of "Fail" for unspecified matching units (fail the login if a matching unit was not specified). This in addition to the "Skip" and "Replay" behaviors, as detailed in Login, Replay, and Sequencing.
- The Cancel Order message type now cancels a single order. A new message type Mass Cancel Order provides all multi-order cancellation requests.
- There no longer exists a condition where a TPH would send a Modify Order followed immediately by a Cancel Order message and it was not deterministic as to which OrigClOrdId value was correct on the Cancel Order message. In BOEv3, the OrigClOrdId on a cancel should be the ClOrdId sent on the most recent Modify Order (or New Order if no modifies have been sent), even if the corresponding response has not yet been seen. CancelOrigOnReject should be set to Y to ensure that a rejected Modify Order does not leave behind a live order.
- TPH risk trips and self-imposed lockouts are now required to be reset using the Reset Risk message. They can no longer be reset via the New Order message.
- BOEv3 Trade Cancel or Correct messages are not suppressible by port parameter.
- Added requirement for TPHs to record and connect to secondary IP in event of failover to secondary port in the primary, Secaucus Datacenter as detailed in Failover and Disaster Recovery (DR).
- Risk resets on a BOEv3 port only apply for the unit associated with that port. In BOEv2 and FIX, risk resets apply to all units.
- Unlike BOEv2, BOEv3 does not support sequenced messages from TPH to CFE with a sequence number of zero. A sequenced BOEv3 message sent from TPH to CFE having a sequence number of zero will disconnect the port.
- BOEv3 introduces a number of changes to the information returned to the member in the Application Messages:
- MaturityDate will return with all zeros (i.e. blank) if it is all zeros on input.
- TimeInForce will no longer be included on Order Modified, as this field is unmodifiable.
- Order Acknowledgment will no longer include the fields DayOrderQty, DayCumQty, AvgPx, and DayAvgPx as they have limited use in an order ack.
- QuoteRejectReason will no longer be included on the Quote Update Acknowledgment message since all rejects of an entire message block are reported via the Quote Update Rejected message.
- In the Order Rejected message, the optional fields from BOEv2 which echoed back fields of the rejected order are no longer supported; only ClOrdId and ClearingFirm are included on the rejection message.
- In the Order Modified message, several optional fields supported under BOEv2 are not included in BOEv3 in the interest of message brevity: Side, OrdType, TimeInForce, MinQty, Symbol, Capacity, Account, ClearingAccount, PreventMatch, MaturityDate, OpenClose, ExpireTime, CmtaNumber, CtiCode, OEOID.
- In the Order Cancelled and Cancel Rejected messages, none of BOEv2 the optional fields are included.
- In the Order Executed message, the BOEv2 field ContraBroker has been removed (it was always CFE).
- In the Order Executed message, several BOEv2 optional fields are no longer included in this message in the interest of message brevity: Price, PrdType, TimeInForce, MinQty, Capacity, Account, ClearingAccount, OrderQty, PreventMatch, OpenClose, ExpireTime, StopPx, CmtaNumber, CtiCode, ManualOrderIndicator, OEOID, TradeDate, CumQty, DayOrderQty, DayCumQty, AvgPx, DayAvgPx.
- In the TAS Restatement message, several BOEv2 optional fields are no longer included in the BOEv3 message in the interest of message brevity: OrdType, TimeInForce, MinQty, Capacity, Account, ClearingFirm, ClearingAccount, PreventMatch, MaturityDate, OpenClose, OrigClOrdId, StopPx,CmtaNumber, CritCode, ManualOrderIndicator, OEOID, FrequentTraderId, CustOrderHandlingType.
- In the Order Cancelled message, none of the optional BOEv2 fields are present in the BOEv3 version of the message.
- A new field, RequestReceivedTime, has been added to the Order Acknowledgement, Quote Update Acknowledgement, Order Modified, Order Cancelled, and Mass Cancel Acknowledgment messages. This will inform the TPH of the earliest timestamp, with nanosecond precision, recorded by CFE of the corresponding inbound message being acknowledged. This will be the timestamp as received in turn by the process providing all Unit Ports for the matching unit (BOEv3 ports are provided per matching unit).





