Purge Orders Message Fields
Request to cancel a group of orders across all the firm's sessions. This differs from a mass cancel request sent via a Cancel Order message as the purge is applied across all of the firm's sessions, not just the session on which the message was received.
A purge requires populating the MassCancelInst field. The ClearingFirm (EFID) is also required if a list of configured/allowed EFIDS has not been configured on the session. If a list of configured EFIDs is present, sending a blank (0x00) ClearingFirm value will result in the purge applying to all configured EFIDs. In addition, a firm may choose to further filter the purge to target specific orders using either the CustomGroupID or RiskRoot fields. If both RiskRoot and a list of CustomGroupID values are specified, the Purge Orders message request will be rejected. The items below should also be considered.
- Users must specify the MassCancelId if the Acknowledgement Style is set to S or B.
- Users may Initiate a self-imposed, risk lockout using the MassCancelInst field.
- EFID values specified in the ClearingFirm field that are not allowed to clear for the firm will be rejected.
- CustomGroupID or EFID (ClearingFirm) purges with no RiskRoot may be directed to a specific matching unit using the MatchingUnit optional field. If MatchingUnit is zero or not specified, these purge types will be sent to all matching units starting with unit 1. Note that this may result in self-imposed, risk lockouts occurring on select units while other units are still trading.
When specifying the RiskRoot field, using the underlying symbol is strongly recommended. Mass cancellations are always performed at the risk root (underlying) level.
All Members that send purges must include the SendTime field. This is required to ensure that a valid cancellation send time is captured and reported to CAT.
The system limits the rate at which identical Purge Orders message requests can be submitted to the system. Requests are restricted to ten (10) messages per second per port.
An identical purge message is defined as a message having all of the same CustomGroupID, Symbol, Clearing Firm, MatchingUnit, Lockout Instruction, Instrument Type Filter and GTC Order Filter field values, as a previously received message.
Permitted input optional fields are described in Purge Orders.
| Field | Offset | Length | Data Type | Description |
|---|---|---|---|---|
| StartOfMessage | 0 | 2 | Binary | Must be 0xBA 0xBA. |
| MessageLength | 2 | 2 | Binary | Number of bytes for the message, including this field but not including the two bytes for the StartOfMessage field. |
| MessageType | 4 | 1 | Binary | 0x47 |
| MatchingUnit | 5 | 1 | Binary | Always 0 for inbound (Member to Cboe) messages. |
| SequenceNumber | 6 | 4 | Binary | The sequence number for this message. |
| Reserved | 10 | 1 | Binary | Reserved for future expansion. To maintain forward compatibility, fill with 0. |
| NumberOfPurgeOrdersBitfields | 11 | 1 | Binary | Bitfield identifying bitfields which are set. May be 0. Field values must be appended to the end of the message. |
| PurgeOrderBitfield¹ | 12 | 1 | Binary | Bitfield identifying fields to follow. Only present if NumberOfPurgeOrdersBitfields is non-zero. |
| CustomGroupIDCnt | 13 | 1 | Binary | Number of repeating CustomGroupID included in this message. Integer 0-10. |
| CustomGroupID¹ | 2 | Binary | First CustomGroupID. Only present if CustomGroupIDCnt is non-zero. | |
| … | ||||
| CustomGroupIDᶯ | 2 | Binary | Last CustomGroupID. | |
| Optional fields. . . |
| Field Name | Hexadecimal | Notes |
|---|---|---|
| StartOfMessage | BA BA | Start of message bytes |
| MessageLength | 41 00 | 65 bytes |
| MessageType | 47 | Purge Orders |
| MatchingUnit | 00 | Always 0 for inbound messages |
| SequenceNumber | 64 00 00 00 | Sequence number 100 |
| Reserved | 00 | Reserved |
| NumberOfPurgeOrderBitfields | 02 | Two bitfields to follow |
| PurgeOrdersBitfield1 | 15 | ClearingFirm,MassCancelInst, MassCancelID |
| PurgeOrdersBitfield2 | 40 | SendTime |
| CustomGroupIDCnt | 02 | Two CustomGroupIDs to follow |
| CustomGroupID1 | BF BE | First CustomGroupID of 48831 |
| CustomGroupID2 | CO BE | Second CustomGroupID of 48832 |
| ClearingFirm | 54 45 53 54 | TEST |
| MassCancelInst | 46 53 4C 42 00 00 00 00 00 00
00 00 00 00 00 00 |
|
| MassCancelID | 41 42 43 31 32 33 00 00 00 00
00 00 00 00 00 00 00 00 00 00 | ABC123 |
| SendTime | E0 7A B9 DA 13 3B 42 16 | 1,603,909,373,757,324,000 = Wed, Oct 28, 2020 at 14:22:53.757324 ET. |
| Field Name | Hexadecimal | Notes |
|---|---|---|
| StartOfMessage | BA BA | Start of message bytes |
| MessageLength | 43 00 | 67 bytes |
| MessageType | 47 | Purge Orders |
| MatchingUnit | 00 | Always 0 for inbound messages |
| SequenceNumber | 64 00 00 00 | Sequence number 100 |
| Reserved | 00 | Reserved |
| NumberOfPurge | 02 | Two bitfields to follow |
| OrderBitfields | ||
| PurgeOrdersBitfield1 | 1D | ClearingFirm, MassCancelInst, RiskRoot, MassCancelID |
| PurgeOrdersBitfield2 | 40 | SendTime |
| CustomGroupIDCnt | 00 | No CustomGroupIDs to follow |
| ClearingFirm | 54 45 53 54 | TEST |
| MassCancelInst | 46 53 4E 42 00 00 00 00 00 00
00 00 00 00 00 00 |
|
| RiskRoot | 41 42 43 00 00 00 | ABC |
| MassCancelID | 41 42 43 31 32 33 00 00 00 00
00 00 00 00 00 00 00 00 00 00 | ABC123 |
| SendTime | E0 7A B9 DA 13 3B 42 16 | 1,603,909,373,757,324,000 = Wed, Oct 28, 2020 at 14:22:53.757324 ET. |





