Application Message Fields

Table 1. Application Message Fields
Field NameFIX Field NameLengthTypeDescription
Account116Alphanumeric
  • Unique account identifier associated with an order. This field will be reflected back on execution reports associated with this order.
  • The first 10 characters are sent to the OCC in the Account # field. The entire 16 character string will appear in the optional CM Data field. Valid characters include ASCII 32-126.
BaseLiquidityIndicator97301Alphanumeric
  • Indicates whether the trade added or removed liquidity.
  • A = Added Liquidity
  • R = Removed Liquidity
  • C = Market opening / re-opening trade
CancelledOrderCount76964BinaryNumber of orders cancelled.
CancelOrigOnReject96191Alpha
  • N = Leave original order alone.
  • Y = Cancel original order if modification fails.
CancelReason58*1TextSee Order Reason Codes.
CancelRejectReason58*1TextSee Order Reason Codes.
Capacity471Alphanumeric
  • C = Customer
  • F = Firm
  • The Capacity refers to the OCC account type. A value of "C" denotes an account that clears in the Customer range at OCC. A value of "F" denotes an account that clears in the Clearing Firm range at OCC.
ClearingAccount4404Text
  • Supplemental identifier. Recorded and made available in execution reports. Available via Drop feeds.
  • This field can be blank or populated with an optional four character string, except for comma, semicolon, and pipe.
  • This field is not sent to the OCC.
ClearingFirm1154Alpha
  • EFID that will clear the trade. Port attribute value of ‘Default EFID’ is used if not provided.
  • Sent to OCC in Exec Broker field.
ClearingPrice210508BinaryPricePrice as sent to clearing after applying post-close conversions to the original LastPx value.
ClearingSize210514BinarySize to clear with OCC. Same value as LastShares, except in VA and VAO where ClearingSize is 0 on execution, and the converted clearing size on restatement.
ClearingSymbol210538AlphanumericSymbol as sent to clearing; after applying post-close conversions to the original Symbol.
ClOrdId1120Text
  • Unique Id chosen by the client. Characters in the ASCII range 33-126 are allowed, except for comma, semicolon, and pipe.
  • If the ClOrdId matches a live order, the order will be rejected as duplicate. A leading tilde (~) cannot be sent on any ClOrdId and will result in a reject. These are reserved for internal use by CFE and could be received as a result of a CFE-generated ClordId.
  • Sent to the OCC in the OrderId field.
  • Note: CFE only enforces uniqueness of ClOrdId values among currently live orders, which includes long-lived GTC and GTD orders. However, using unique ClOrdId values is strongly recommend.
CMTANumber4394Binary
  • CMTA Number of the firm that will clear the trade. Must be specified for CMTA orders and left unspecified for non-CMTA orders.
  • Sent to the OCC in the CMTA CM# field.
CorrectedPrice96208BinaryPrice
  • For trade corrections, this is the new trade price.
  • For trade breaks, this is set to 0.
CustomGroupID76992BinaryUsed to group orders for use in mass cancels where multiple orders can be cancelled by specifying a list of CustomGroupIds. A zero value is treated as "no CustomGroupIds".
CtiCode97021Alphanumeric
  • Valid values: 1, 2, 3, 4
  • 1 = CTI 1: Transactions initiated and executed by an individual TPH for the TPH’s own account, for an account the TPH controls, or for the account in which the TPH has an ownership or financial interest.
  • 2 = CTI 2: Transactions executed for the proprietary account of a clearing TPH or non-clearing TPH.
  • 3 = CTI 3: Transactions where an individual TPH or authorized trader executes for the personal account of another individual TPH, for an account the other individual TPH controls or for an account in which the other individual TPH has an ownership or financial interest.
  • 4 = CTI 4: Any transaction not meeting the definition of CTI 1, 2 or 3. (These should be non-TPH customer transactions).
CustomGroupIdCnt76981BinaryNumber of repeating CustomGroupId’s included in this message.
CustOrderHandlingInst10311Alphanumeric
  • Execution source code provided during order entry to describe broker service. A default value can be set using the ‘Default Customer Order Handling Instruction’ port attribute.
  • W = Desk (high touch)
  • Y = Electronic
  • C = Vendor-provided platform, billed by Executing Broker
  • G = Sponsored Access via Exchange API or FIX, provided by executing broker
  • H = Premium algorithmic trading provider, billed by executing broker
  • D = Other, including other-provided screen
  • NUL (0x00) = Apply port default (initially 'Y')
ExecId178Binary
  • Sent to the OCC in the Trade Id field.
  • Execution Id. Unique across all matching units on a given day. Note: ExecIds will be represented on ODROP and FIXDROP ports as base 36 ASCII.*
ExecRefId198BinaryRefers to the ExecId of the fill being cancelled or corrected.
ExpireTime4248DateTimeRequired for TimeInForce = 6 orders, specifies the date-time (in UTC) that the order expires.
FeeCode98822AlphanumericIndicates fee associated with an execution. Fee codes are published in the pricing schedule. New fee codes may be sent with little or no notice. TPHs are encouraged to code their systems to accept unknown fee codes.
FrequentTraderId210976AlphanumericSupplemental customer identifier used for billing related programs.
LastPx318BinaryPricePrice of this fill. Note the use of Price type to represent positive and negative prices, which can occur with spread instruments.
LastShares324BinaryExecuted contracts quantity.
LeavesQty1514BinaryQuantity still open for further execution. If zero, the order is complete.
LegCnt5551BinaryFor complex orders, the number of legs of the complex instrument specified in the Symbol field. For simple orders, this should be set to zero and the OpenClose field should be used.
LegPositionEffect5641Text
  • Indicates status of client position in the option for this leg.
  • O = Open
  • C = Close
  • N = None
LegRatioQty6234Binary
  • Ratio of number of contracts in this leg per order quantity.
  • Accepted values are 1-99,999
LegSide6241Text
  • 1 = Buy
  • 2 = Sell
LegSymbol6008AlphanumericThe symbol id for the Simple Options on Futures instrument.
ManualOrderIndicator10281Alpha
  • Y = Manual order entry
  • N = Automated order entry
MassCancelId769520TextUser-defined identifier of the mass cancel or purge request.
MassCancelInst770016Text
  • Corresponds to MassCancelInst (7700) in CFE FIX. Used for specification of Purge Orders functionality and optionally used for specification of Mass Cancel functionality associated with the Cancel Order message.
  • At least one character must be provided (Clearing Firm Filter). Contiguous characters must be specified up to total length. Truncated/unspecified characters will default to values indicated (D) below.
  • 1st Character : Clearing Firm Filter
  • A = No filtering by clearing firm relationship is performed.
  • F = All orders that were sent under the clearing relationship specified in ClearingFirm optional field. If "F" specified and ClearingFirm not provided, the Mass Cancel or Purge request will be rejected.
  • 2nd Character : Acknowledgement Style
  • M = (D) Order Cancelled messages are sent for each cancelled order. If "M" is set, any MassCancelId value is ignored.
  • S = A single Mass Cancel Acknowledgement message is sent once all cancels have been processed. The MassCancelId optional field must be specified or the Mass Cancel or Purge Request will be rejected.
  • B = Both individual Order Cancelled and Mass Cancel Acknowledgement messages will be sent. Also requires MassCancelId optional field to be specified or the Mass Cancel or Purge request will be rejected.
  • 3rd Character : Lockout Instruction
  • N = (D) No lockout
  • L = Lockout until corresponding Reset Risk received. Lockout can be used only with Clearing Firm Filter set to "F", otherwise the Mass Cancel or Purge request will be rejected. Lockout will apply to all New Order, Quote Update, and Modify Order messages for the ClearingFirm (and ProductName or CustomGroupIds, if specified), regardless of other filtering in the Purge Orders or Cancel Order message.
  • 4th Character : Instrument Type Filter
  • B = (D) Cancel both Simple and Complex orders
  • S = Cancel Simple orders only
  • C = Cancel Spread orders only
  • 5th Character : GTC Order Filter
  • C = (D) Cancel GTC and GTD orders
  • P = Don’t cancel (preserve) GTC and GTD orders
  • 6th Character : Security Type
  • F = Cancel orders (Futures only)
  • O = Cancel orders (Options only)
  • A = (D) Cancel All Futures and Options orders
  • If ProductName optional field is specified, it must contain a valid futures root symbol (e.g., "VX"), in which case only orders/quotes associated with the specified product will be cancelled.
  • A self-imposed lockout can be released using the Reset Risk message. An appropriate reset is required to be sent for each lockout type in order to resume trading. For example, a product-level lockout requires a product-level reset. For more information, refer to the Cboe Titanium Cboe Futures Exchange Risk Management Specification.
MassCancelRejectReason58*1TextReason for the mass cancel rejection. See Order Reason Codes.
MaturityDate200, 2054Date
  • When specifying the Symbol for a New Order message the user can specify the mapped symbol identifier in the Symbol field. Alternatively, the product class (e.g., "VX", "VXT", etc.) can be supplied for the Symbol field and the MaturityDate field is used to specify the expiration date of the symbol within the specified product class.
  • If a value is provided for MaturityDate, the Symbol field must correspond to a valid product or the order will be rejected with reason code C (Unknown Product Name). If an invalid MaturityDate is provided, the order will be rejected with reason code B (Unknown Maturity Date).
MinQty1104Binary
  • Minimum fill quantity for IOC orders. Ignored for other Simple instrument orders.
  • Not supported for Spread instruments. Spread instrument orders with specified MinQty will be rejected.
ModifyRejectReason1031TextSee Order Reason Codes.
MultilegReportingType4421Text
  • Present on Order Execution and TAS Restatement messages representing either Spread orders or Simple orders that are part Spread execution.
  • 1 = Simple instrument execution
  • 2 = Simple instrument execution that is part of a Spread execution
  • 3 = Spread instrument execution
OEOID250041Alphanumeric
  • Identifies the Order Entry Operator responsible for this message.
  • Min length 3, max length 18. Values in ASCII range 33-126 except comma, semicolon, and pipe are permissible.
OpenClose771Alphanumeric
  • Indicates status of client position in a trade resulting from the order.
  • O = Open
  • C = Close
  • N = None
  • NUL (0x00) = None
OrderId378Binary
  • Order identifier supplied by CFE. This identifier corresponds to the identifiers used in CFE market data products.
  • Sent to the OCC in the Exchange Data field.
OrderQty31BinaryOrder quantity. System limit is 999,999 contracts.
OrderRejectReason1031TextSee Order Reason Codes.
OrdType401Alphanumeric
  • 1 = Market
  • 2 = Limit (default)
  • 4 = Stop Limit (Futures only)
  • Market implies TimeInForce of IOC (3). Stop Limit orders must have a TimeInForce of DAY (0), GTC (1), or GTD (6).
OrigClOrdId4120TextThe ClOrdId of the original order.
OrigTime428DateTimeThe date and time of the original trade, in GMT.
PendingStatus1Text
  • Field is provided as a convenience to determine whether an Order Execution message is a preliminary notification representing a pending trade. The value ‘P’ indicates that the execution is associated with a product for which the Order Execution message is a preliminary notification of an execution and for which a post-settlement restatement will be sent.
  • N = Not applicable
  • P = Pending
PreventMatch79283Alpha
  • Three characters:
  • 1st character - MTP Modifier:
  • N = Cancel Newest
  • O = Cancel Oldest
  • B = Cancel Both
  • 2nd character - Unique Id Level:
  • F = Prevent Match at Firm (TPH) Level
  • M = Prevent Match at EFID Level
  • N = None (do not prevent match at any level)
  • 3rd character - Trading Group Id (optional):
  • TPH specified alphanumeric value 0-9, A-Z, or a-z.
  • The unique Id level (character 2) of both orders must match to prevent a trade. If specified on both orders, Trading Group Id (character 3) must match to prevent a trade.
  • Note that in the event of a Spread order match with a Simple order, the Spread order will always be cancelled irrespective of the 1st character value.
  • On New Orders, an empty PreventMatch string (NUL filled) results in default Port Attribute settings applied.
Price448BinaryPrice
  • Limit price. Four implied decimal places.
  • Required for limit orders (OrdType = 2). If specified on market order (OrdType = 1), the order will be rejected.
  • Orders will be rejected if Price does not fall on the applicable minimum trading increment.
  • For all contracts other than Trade at Settlement contracts, simple orders will be rejected if Price is less than or equal to zero, or greater than or equal to 100,000. For Trade at Settlement (TAS) contracts, simple orders will be rejected if Price is outside the price limits presented in the contract specification.
  • Spread orders will be rejected if Price is outside the price limits implied by the spread instrument definition and constituent instrument min and max prices.
ProductName556Text
  • Used to specify product class (e.g., "VX", "VA", etc.) for Purge Orders and Cancel Order message cancel by product functionality.
  • If an unrecognized ProductName is provided, the associated request will be rejected with reason code C (Unknown Product Name).
PurgeRejectReason58*1TextReason for the purge rejection. See Order Reason Codes
QuoteCntn/a1BinaryNumber of repeating groups included in this message. Allowed values are 1-20.
QuoteRejectReasonn/a1TextSee Section Quote Reason Codes
QuoteResultn/a1Text
  • Result of the quote request.
  • Acceptance:
  • A = New Quote
  • L = Modified; loss of priority
  • R = Modified; retains priority (size reduction)
  • N = No change, matches existing quote
  • D = New Quote, but may remove liquidity
  • d = Modified, but may remove liquidity
  • Cancellation:
  • U = User cancelled (zero size/price requested)
  • Rejection:
  • a = Admin
  • O = Rejected, doesn’t match a known quote
  • P = Rejected, can’t post
  • f = Risk management EFID or Custom Group Id level
  • S = Rejected, symbol not found
  • p = Rejected, invalid price
  • s = Risk management product root level
  • n = Risk management configuration is insuffcient
  • u = Rejected, other reason
QuoteSymbol556AlphanumericCFE native identifier of the instrument being quoted.
QuoteUpdateIdn/a1Text
  • Id chosen by the client. Characters in the ASCII range 33-126 are allowed, except for comma, semicolon, and pipe.
  • All quote response messages will include this identifier.
  • Note: CFE strongly recommends that QuoteUpdateId be kept unique for a trading day across both Futures and Options.
RequestReceivedTimen/a8DateTime
  • The earliest timestamp, populated with nanosecond precision, recorded by CFE of the corresponding inbound message being acknowledged.
  • Populated with zero in event of failover to Port B or Port C.
RestatementReasonn/a1Text
  • The reason for this Quote Restated message.
  • Q = Liquidity
  • W = Wash
  • CFE reserves the right to add new values as necessary without prior notice.
RiskStatusId16Text
  • Unique identifier for this Reset Risk request. Response message will have this corresponding identifier.
  • Note: CFE only enforces uniqueness of RiskStatusId values among currently unacknowledged requests. However, we strongly recommend that you keep your RiskStatusId values day-unique.
RiskReset76928Text
  • Single Character Values (Values may be combined)
  • S = Product-level risk/lockout reset
  • (Futures only)
  • F = Firm-level risk/lockout reset
  • (Futures only)
  • C = CustomGroupId lockout reset
  • (Futures only)
  • R = Product-level risk/lockout reset
  • (Options only)
  • I = Firm-level risk/lockout reset
  • (Options only)
  • D = CustomGroupId lockout reset
  • (Options only)
  • Values may be combined together to allow for resets of multiple risk trips or self-imposed lockouts in a single message. For example, "FS", "SC", "FC", and "SFC" are all acceptable values.
  • The characters may be combined in any order. For example, to "reset all futures", set this field to ‘SFC’, which is the equivalent to ‘CFS’. To "reset all options", set this field to ‘RID’, which is equivalent to ‘DIR’. To "reset all futures and options" set the field to ‘SFCRID’, which is equivalent to ‘DIRCFS’.
  • For more information, refer to the Cboe Titanium Cboe Futures Exchange Risk Management Specification.
RiskResetResultn/a1Text
  • <space> = Ignored; exceeds 1 reset per second
  • Y = Success
  • F = Rejected; exceeds firm reset limit
  • C = Rejected; exceeds Custom Group Id limit
  • E = Rejected; empty ResetRisk field
  • I = Rejected; Incorrect data center
  • S = Rejected; exceeds product level reset limit
  • U = Rejected; invalid RiskRoot
  • c = Rejected; invalid EFID/ClearingFirm
  • y = Rejected; in replay
  • Additional reject values may be added in the future without notice.
SecondaryExecId5278Binary Indicates whether an execution is a spread or a simple instrument execution that is part of a spread trade.

If SecondaryExecId field is not present, the execution is a simple instrument execution only. If SecondaryExecId is present and is the same as the ExecId required field, the execution represents a spread execution for which associated simple instrument executions will follow.

Simple instrument executions associated with a spread execution will contain a SecondaryExecId value that matches the ExecId of the associated spread execution.
Side541Text
  • 1 = Buy
  • 2 = Sell
SizeModifier1Text
  • Controls the behavior of the quote OrderQty field. Using "R" allows for a TPH to ensure that in-flight fills or cancels do not result in unwanted additional size exposure.
  • NULL (0x00) = New quote size will be set to value of OrderQty.
  • R = Reduce outstanding size of quote by the OrderQty provided.
  • When using "R", if the resulting size is zero or negative, then the quote is cancelled. TPHs are expected to track the remaining quantity of each quote as resulting size is not included on the Quote Update Acknowledgement message.
StopPx899BinaryPriceStop price. Required if OrdType = 4 (Stop Limit). Stop Limit orders will only be triggered off Last Sale Eligible trades.
SubLiquidityIndicator9730*1Text
  • Additional information about the liquidity of an order. CFE may add additional values without notice. TPHs must gracefully ignore unknown values.
  • NULL (0x00) = No Additional Information
  • C = Carried Order Indicator
  • U = Qualifying Market Turner order
Symbol558Alphanumeric
  • Simple Instruments can be specified by providing the mapped symbol format in the Symbol field or by providing the product name (e.g., "VX") in the Symbol field and maturity date in the MaturityDate field. Responses to the TPH will contain the instrument specification in the manner that was provided on the associated new order specification (e.g., either Symbol Id or Product and MaturityDate).
  • The Symbol field for Spread instrument related messages will always contain mapped symbol Id as product and maturity date does not completely specify the Spread instrument.
Text5860TextHuman readable text with more information.
TimeInForce591Text
  • 0 = Day (Expires at the end of the business day).
  • 1 = GTC (Good ‘till Cancel. Order remains until cancelled or contract expires).
  • 3 = IOC (Portion not filled immediately is cancelled. Market orders are implicitly IOC).
  • 4 = FOK (An IOC where the entire size must be filled, else the order will be cancelled back).
  • 6 = GTD (Good ‘till Date-Time Expires at the date-time specified in the ExpireTime field).
TradeDate754Date
  • Business date of the execution.
  • Note that on CFE, business date is not always the same as the calendar date. For example, the VX/VT products open for trading on the calendar day prior to the associated business date. Executions that occur after the open and before midnight will have a TradeDate value that is not the same as the calendar date of the execution.
TransactionTime608DateTimeThe time the event occurred in the CFE Matching Engine (not the time the message was sent).
WorkingPricen/a8BinaryPriceThe price at which the quote is working on the order book.
CountryCode2TextIdentifies the country code of the person or system submitting the order using the ISO 3166 two-character code (must be entered using uppercase letters only). An order with a country code for a comprehensively sanctioned country will be rejected.
Table 2. Application Message Fields Example Conversion
DecimalBase 36
28294005440239A1234B567
76335905726621R248BC23H
72855722818709AP05V2Z
Cboe Titanium Cboe Futures Exchange BOEv3 Specification - Application Message Fields | Cboe