Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This section describes the FIXML Message Specification for the messages used by CME STP. 

Use this search bar to search topics within CME STP.

Page Tree Search
rootPageCME STP

This section describes the FIXML Message Specification for the messages used by CME STP. 

See the following topics on this page:

Table of Contents
maxLevel5
minLevel3
 

Related Content
Children Display

FIXML Message Elements and Attributes

Messages are comprised of elements, which may be non-repeating or repeating. Elements contain Attributes that define the trade characteristics.

  • Repeating Elements are indicated by "(repeating)" in the gray highlighted Element definition row.
  • Some Elements, such as Instrument (Instrmt), have a large number of attributes, and are therefore allocated their own page.
  • The first defined Element level on any specification page is considered the highest level for that page. Elements may have sub-elements on the same page, as indicated by an arrow () preceding the field name.
  • A sub-element one level down contains an arrow preceding it in the field name, for example:

→ Sender ID

Elements two levels down will have two preceding arrows:

→→ Leg Underlying Product Code

  • The highest level on any page will not be preceded by an arrow, though it may still be a sub-element. For example, Instrument is a sub-element of Trade Capture Report Message, but because it is the highest level for that page, the Field Names will not be preceded by an arrow.

Required FIXML Element Attributes

The following attributes must be included on the FIXML element of each message sent to the CME STP, and will appear on all FIXML messages sent by the API.

FieldDescriptionValid ValueXPath

FIX Version Number

Indicates the version of FIX being used (including Service Pack).

5.0 SP2

/FIXML/@v

Schema Release Date

Indicates the release date of the FIXML Schema.

20090815

/FIXML/@s

FIXML Extension Version

Indicates the FIX Extension version.

109

/FIXML/@xv

Custom Application Version

Indicates the Custom Application version.

CME.0001

/FIXML/@cv

Standard Header

All FIXML messages or Batch containers must include a Standard Header with the following four required fields. The following table indicates fields sent on messages from the user to the API. When responding to the user, the API will swap Hdr/@SID with Hdr/@TID, and Hdr/@SSub with Hdr/@TSub

FieldDescriptionValid ValueXPath

Sender Comp ID

Indicates the sender of the message. Generally a firm level identifier.

Assigned by CME

Hdr/@SID

Target Comp ID

Indicates the recipient of the message. This value is always CME for inbound messages.

CME

Hdr/@TID

Sender Sub ID

Indicates the sender entity. This value must match the username sent via HTTP Basic authentication, and must be in all uppercase letters.

Assigned by CME

Hdr/@SSub

Target Sub ID

Indicates the recipient entity. This value is  always STP for inbound messages.

STP

Hdr/@TSub

Batch Container

CME STP returns trades (FIXML Trade Capture Report messages) to HTTP clients by encapsulating a single Standard Header followed by zero or more Trade Capture Report messages within the /FIXML/Batch element. The Trade Capture Report messages themselves will not contain Hdr elements themselves. CME STP may send an empty Batch, containing a Hdr but no TrdCaptRpt messages, either because a Query returned no results, or because no new activity occurred for a Subscription. However, in the case of an empty batch for a Subscription, the user must still extract the token and use it in subsequent requests.

Info

A batch can return a maximum of 250 Trade Capture Report messages.  

Example of a FIXML Batch:

Code Block
languagexml
titleExample FIXML Batch
<?xml version="1.0" encoding="UTF-8"?>
<FIXML v="5.0 SP2" s="20090815" xv="109" cv="CME.0001">
    <Batch>
        <Hdr SID="CME" TID="RYAN" SSub="STP" TSub="RYAN123"/>    
        <TrdCaptRpt ...>
		...
		</TrdCaptRpt>
        <TrdCaptRpt ...>
		...
		</TrdCaptRpt>
        <TrdCaptRpt ...>
		...
		</TrdCaptRpt>
		...
	</Batch>
</FIXML>

Subscription and Query requests (FIXML Trade Capture Report Request messages) sent by the user to the API. as well as Application level error messages (FIXML Trade Capture Report Request Ack messages) sent by the API to the user, will not use the Batch container. The FIXML element will contain the the element for the message directly. The application level message itself will contain the Standard Header, e.g. /FIXML/TrdCaptRptReq/Hdr

Excluded Tags

The following tags are included in Trade Capture Report Messages for all asset classes except IRS/FRA:

  • /FIXML/TrdCaptRpt/@ExecID
    • ExecID will be present for on-exchange trades and Blocks, including Invoice Swap Spreads
    • ExecID will not be present for off-exchange IRS/FRA trades
  • /FIXML/TrdCaptRpt/@TrdID
  • /FIXML/TrdCaptRpt/@MtchID
  • /FIXML/TrdCaptRpt/@LastPx
  • /FIXML/TrdCaptRpt/@TxnTm
  • /FIXML/TrdCaptRpt/@PxTyp
  • /FIXML/TrdCaptRpt/RptSide/@Ccy
  • /FIXML/TrdCaptRpt/RptSide/TrdRegTS/@TS[@@Typ="1"]

Input Source

The Input Source field in the Trade Capture Report/RptSide block indicates the original system from which the trade originated. CME Clearing will treat this as a pass through field on cleared trade confirmations.

Example values include:

  • BRKR – Broker submission into FEC via UI or API, applicable to NY floor only.
  • CPC – CME ClearPort UI.
  • DLV - Delivery transfer. Represents the monthly delivering into a strip of individual daily positions and the transfer to establish the open position on the books of the firm or client.
  • GLBX, GBX – CME Globex.
  • FIRM – Clearing firm submission into FEC via UI or API.
  • HHT – CME handheld floor device, applicable to Chicago floor only.
  • OREC – Floor order routing e-Clerk, applicable to Chicago floor only.

Other values not listed above may be used for platform systems.

Malformed Messages

Responses to malformed messages use the FIXML Business Message Reject (located under Application Level Messages - Infrastructure in the FIX Specification).
 
The following actions can result in a Business Message Reject response:

  • If the Header information is incorrect.
  • If the message type is not recognized or supported.
  • If a component of a recognized message is missing.

HTTP Usage

Users will send Subscription and Query Requests to the API by invoking the HTTP POST method to a URL of the form https://{{Path}}/cmestp/query where CME will assign{{Path}} and communicate it to the user. The content of the POST method is the XML for the Trade Capture Report Request message. The API will respond with a FIXML Batch in case of success, or a Trade Capture Report Request Ack or Business Message Reject in case of an error.

HTTP requests can generate the following error responses:

Status CodeDescription
400 (Bad Request)In cases of malformed requests, where the API cannot parse valid FIXML, the API will send a Business Message Reject message as the response payload. Otherwise, should the trade fail validation rules, the API will send a Trade Capture Report Request Ack message.
500 (Server Error)Used when the user request is valid, but the API is experiencing an internal error and cannot process the request at this time. The API will send a Trade Capture Report Request Ack message as the response payload.

Connections to the API utilize HTTPS to provide security. Users will transmit a username and password, assigned by CME, via HTTP Basic authentication. Users must also send this username in the Hdr/@SSub field, and must send a CME assigned firm identifier in Hdr/@SID as well. CME maintains a list of entitlements, categorizing the username as a Trading Firm, Asset Manager, or Broker, and will enforce these entitlements when validating query or subscription requests.

The API utilizes the custom HTTP header x-cme-token which users must pass as a Request Header in their HTTP POST method calls to the API when requesting the continuation of a Subscription or Query. The API may return a token in the x-cme-token custom HTTP Response Header, as well as within the FIXML message itself.

Message Specification

MessageFIXML AbbreviationDescription
Trade Capture Report RequestTrdCaptRptReqSent from the user to the API to request trade data.
Trade Capture ReportTrdCaptRptSend from the API to the user, which contains trade data.
Trade Capture Report Request AckTrdCaptRptReqAckSent from the CME to the user in response to an application level error in the request.