CME STP FIX Core

This topic describes the common and core rules of engagement for CME STP Financial Information Exchange (CME STP FIX) protocol, which is applicable to all markets and venues of CME Group. 

Use this search bar to search topics within CME STP FIX Core:

Contents:

Related Content

Related Content

Connectivity

Customers can connect to the CME STP FIX API New Release or Production environment via the following options:

New Release Environment

Connectivity Type

Products

IP Address

URL

Port

Connectivity Type

Products

IP Address

URL

Port

Internet (only)

This URL uses certificates signed by an official trusted Certificate Authority (CA). Additional certificates are not required.

All

n/a

fixstpnr.cmegroup.com

443

 Production Environment - Internet or Dedicated Connection

Connectivity Type

Products

IP Address

URL

Port

Connectivity Type

Products

IP Address

URL

Port

Internet

This URL uses certificates signed by an official trusted Certificate Authority (CA). Additional certificates are not required.

All

n/a

stpfixapi.cmegroup.com

443

Dedicated - CME Globex Connectivity

Futures and Options

167.204.41.90



stpfixapi.cmegroup.com



443

Dedicated - CME Globex Connectivity, Leased Lines

Fixed Income (BrokerTec)

167.204.72.90

Dedicated - CME Globex Connectivity, Leased Lines, Rnet

FX (EBS)

167.204.72.190

Dedicated CME Globex Connectivity includes standard options: CME GLink, CME EConnect, LNet and CME Globex Hub. Leased lines are connectivity solutions available for some legacy EBS and BrokerTec clients. See also - Network Connectivity

Customers using dedicated connections must create a Domain Name Service (DNS) record to associate the DNS name (stpfixapi.cmegroup.com) to the relevant IP or a certificate error may occur.

 Disaster Recovery Considerations

During a Disaster Recovery (DR) event client systems will automatically be directed to the DR instance of CME STP FIX. Customers do not need to make any connectivity changes.

See CME Group connectivity options.

Session Connectivity and Session Layer Management

The FIX session layer must be compatible with CME STP standards. Customers must connect using TCP/IP over Transport Layer Security (TLS) 1.2, use CME API identifiers for authentication and establish connectivity using FIX 4.4.

The minimum supported version of Transport Layer Security (TLS)  for CME STP FIX is TLS 1.2.

Password changes via the API and a User Notification (CB) message will not be supported.

Development Considerations

CME STP FIX based on standard FIX 4.4, https://www.fixtrading.org/standards/fix-4-4/) with custom CME Group extensions.

All FIX administration-level messages are supported. The structure and semantics of FIX messages adhere to the standard, with some modifications.   
The following FIX application-level messages are supported:

  • From FIX Client to CME STP FIX:

    • Trade Capture Report Request (tag 35-MsgType= AD).

  • From CME STP FIX to FIX Client:

    • Trade Capture Report Request Ack (tag 35-MsgType = AQ);

    • Trade Capture Report (tag 35-MsgType = AE).

Other application-level messages are not supported from client systems to CME STP FIX. If an unsupported message is received by CME STP FIX, Session Level Reject (tag 35-MsgType= 3) message is sent in a response.

Other application-level messages are supported from CME STP FIX to Client for different markets or venues.

All FIX messages contain Standard Message Header and Standard Message Trailer component blocks. CME STP FIX usage of these blocks is compliant with standard FIX 4.4. 

FIX Session Layer - Identification of FIX Session

TCP/IP over SSL is required to establish a physical connection to CME STP FIX. FIX Client should act as an initiator and use the following details when establishing FIX Session to CME STP FIX.

Sequence Numbers Reset

CME STP FIX expects the FIX Client to reset incoming and outgoing sequence numbers every time a FIX session is established (i.e. CME STP FIX expects a Logon (tag 35-MsgType = A) message from the FIX Client to contain tag 34-MsgSeqNum = 1 and tag 141-ResetSeqNumFlag = Y).

This includes scenarios where connectivity has been lost.

Logon - Unsuccessful

  1. FIX Client sends Logon (tag 35-MsgType = A) message to CME STP FIX in order to establish FIX session.

  2. CME STP FIX rejects login attempt with Logout (tag 35-MsgType = 5) message.

  3. FIX session between FIX Client and CME STP FIX is not established.

Logout

FIX Clients are required to use the Logout (tag 35-MsgType=5) message to gracefully terminate a FIX Session with CME STP.

  • FIX Client sends Logout (tag 35-MsgType = 5) message to CME STP FIX to close FIX session.

  • CME STP FIX sends Logout (tag 35-MsgType = 5) message to FIX Client and closes FIX session.

Client Sequence Number Less Than Expected

The FIX Client will be disconnected if it sends a sequence number less than what is expected by CME STP FIX.

Service Availability – Internal Errors

On rare occasions, the CME STP FIX gateway may be available to clients but upstream CME Group systems are unavailable. In these scenarios, CME STP FIX clients would experience the following messaging flows.

Internal Error – Client Logon

If CME STP FIX does not have access to upstream CME Group systems:

  • Logon request will be rejected by CME STP FIX with a Logout message.

  • Clients should continue to retry Logons no more frequently than one message every 30 seconds.

Internal Error – Before First TradeCaptureReportRequest (AD)

If CME STP FIX losses access to upstream CME Group systems after a successful Logon—

  • CME STP FIX will send a TradeCaptureReportRequestAck with error in tag 58-Text, on loss of access to upstream CME Group systems.

  • Clients should retry a TradeCaptureReportRequest no more frequently than one message every 30 seconds.

Internal Errors – After First TradeCaptureReportRequest (AD)

If CME STP FIX losses access to upstream CME Group systems after a successful TradeCaptureReportRequest—

  • CME STP FIX will send an unsolicited TradeCaptureReportRequestAck with error in tag 58-Text.

  • Clients should resend Trade Capture Report Request no more frequently than one message every 30 seconds.



Scenario

Triggering Client Message

Identifying CME STP FIX Message

Client Response

Scenario

Triggering Client Message

Identifying CME STP FIX Message

Client Response

Internal Error at Client Login

Logon (35=A)

Logon Reject with Logout (35=5)

Resend Logon (35=A) every 30 seconds until successful

Internal Error Before Trade Capture Report Request

Trade Capture Report Request (35=AD)

Trade Capture Report Request Acknowledgment (35=AQ) where

tag 749-TradeRequestResult = 99 (Other)

tag 750 TradeRequestStatus = 1 (Completed)

tag 58-Text = Transport Error: Connection to CME was lost

Resend Trade Capture Report Request (35=AD) every 30 seconds until successful

Internal Error After a Successful Trade Capture Report Request

Unsolicited

Trade Capture Report Request Acknowledgment (35=AQ) where

tag 749-TradeRequestResult = 99 (Other)

tag 750 TradeRequestStatus = 1 (Completed)

tag 58-Text = Transport Error: Connection to CME was lost

Resend Trade Capture Report Request (35=AD) every 30 seconds until successful

Trade Snapshot and Subscriptions

CME STP Credentials

In order to subscribe for CME Group trade, the FIX Client should provide the following:

  • CME STP Username – provided in Logon (tag 35-MsgType = A)

  • CME STP Password – provided in Logon (tag 35-MsgType = A)

  • CME STP FirmID and Role – provided in Parties group of Trade Capture Report Request (tag 35-MsgType = AD)

Trade Snapshot Request: Successful Request – Trades Match Request Criteria 

  1. FIX Client sends Trade Capture Report Request (tag 35-MsgType = AD) with the following tags:

    • tag 569-TradeRequestType = 1 (All trades)

    • tag 263-SubscriptionRequestType = 0 (Snapshot)

    • tag 453-NoPartyIDs ≥ 1 and tag 448-PartyID = Firm ID and tag 452-PartyRole = Firm Role 
      Note: All PartyRoles must be identical within a single request.

    • tag 9593-StartTime is specified and is within timeframe supported by CME STP

    • for optional use: snapshot specific filters and/or tag 9594-EndTime are specified 

  2. CME STP FIX sends Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 0 (Accepted) to FIX Client.

  3. CME STP FIX sends CME Group trades matching requested criteria (Trade Capture Report (tag 35-MsgType = AE) message(s)) to FIX Client.

  4. CME STP FIX notifies FIX Client that all CME Group trades matching request criteria are sent and snapshot is processed with Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 1 (Completed) to FIX Client.

Trade Snapshot Request: Successful Request – No CME Group Trades Match Request Criteria

  1. FIX Client sends Trade Capture Report Request (tag 35-MsgType = AD) with the following tags:

    • tag 569-TradeRequestType = 1 (All trades)

    • tag 263-SubscriptionRequestType = 0 (Snapshot)

    • tag 453-NoPartyIDs ≥ 1 and tag 448-PartyID = Firm ID and tag 452-PartyRole = Firm Role 
      Note: All PartyRoles must be identical within a single request.

    • tag 9593-StartTime is specified and is within timeframe supported by CME STP

    • for optional use: snapshot specific filters and/or tag 9594-EndTime are specified 

  2. CME STP FIX sends Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 0 (Accepted) to FIX Client.

  3. There are no CME Group trades matching requested criteria.

  4. CME STP FIX notifies FIX Client that all CME Group trades matching request criteria have been sent and snapshot is complete with Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 1 (Completed) to FIX Client.

Trade Snapshot Request: Failed Request – Missing Start Time or Invalid Combination of Filters

  1. FIX Client sends Trade Capture Report Request (tag 35-MsgType = AD) with the following tags:

    • tag 569-TradeRequestType = 1 (All trades)

    • tag 263-SubscriptionRequestType = 0 (Snapshot)

    • tag 453-NoPartyIDs ≥ 1 and tag 448-PartyID = Firm ID and tag 452-PartyRole = Firm Role
      Note: All PartyRoles must be identical within a single request.

    • tag 9593-StartTime is absent or invalid combination of snapshot specific filters is specified.

  2. CME STP FIX sends Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 0 (Accepted) to FIX Client.

  3. CME STP FIX rejects subscription with Trade Capture Report Request Ack (tag 35-MsgType =AQ) with tag 750-TradeRequestStatus = 2 (Rejected), tag 749-TradeRequestResult = 9 (Unauthorized for Trade Capture Report Request) and tag 58-Text containing the reject reason.

Successful Subscription Without Filters

  1. FIX Client sends Trade Capture Report Request (tag 35-MsgType = AD) with the following tags:

    • tag 569-TradeRequestType = 1 (All trades)

    • tag 263-SubscriptionRequestType = 1 (Subscribe)

    • tag 453-NoPartyIDs ≥ 1 and tag 448-PartyID = Firm ID and tag 452-PartyRole = Firm Role
      Note: All PartyRoles must be identical within a single request 

    • tag 779-LastUpdateTime is within timeframe supported by CME STP

    • Subscription specific filters are not specified

  2. CME STP FIX sends Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 0 (Accepted) to FIX Client.

  3. CME STP FIX sends all trades (Trade Capture Report (tag 35-MsgType = AE) message(s)) from LastUpdateTime back to FIX Client.

  4. CME STP FIX will send any new trades (Trade Capture Report (tag 35-MsgType = AE) message(s)) in near real-time to FIX Client

Successful Subscription With Filters

Preconditions: Customer has successfully logged in to CME STP FIX interface using Logon (tag 35-MsgType=A) message. 

  1. FIX Client sends Trade Capture Report Request (tag 35-MsgType = AD) with the following tags:

    • tag 569-TradeRequestType = 1 (All trades)

    • tag 263-SubscriptionRequestType = 1 (Subscribe)

    • tag 453-NoPartyIDs ≥ 1 and tag 448-PartyID = Firm ID and tag 452-PartyRole = Firm Role
      Note: All PartyRoles must be identical within a single request 

    • tag 779-LastUpdateTime is within timeframe supported by CME STP

    • One or multiple filters are specified

  2. CME STP FIX sends Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 0 (Accepted) to FIX Client.

  3. CME STP FIX sends trades (Trade Capture Report (tag 35-MsgType = AE) message(s)) limited to specified filters back to FIX Client.

  4. CME STP FIX will send any new trades (Trade Capture Report (tag 35-MsgType = AE) message(s)) in near real-time to FIX Client

Subscription with Multiple FirmIDs: Successful Request

Preconditions: Customer has successfully logged in to CME STP FIX interface using Logon (tag 35-MsgType=A) message.

  1. FIX Client sends Trade Capture Report Request (tag 35-MsgType = AD) with the following tags:

    • tag 569-TradeRequestType = 1 (All trades)

    • tag 263-SubscriptionRequestType = 0 (Snapshot) or 1 (Subscription)

    • tag 453-NoPartyIDs ≥ 2

      • tag 448-PartyID = Firm ID_A and tag 452-PartyRole = Firm Role(the same for all entries)

      • tag 448-PartyID = Firm ID_B and tag 452-PartyRole = Firm Role (the same for all entries)

    Note: All PartyRoles must be identical within a single request.

  2. CME STP FIX sends Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 0 (Accepted) to FIX Client.

Subscription with Multiple FirmIDs: Failed Request – at Least One FirmID is Invalid

Preconditions: Customer has successfully logged in to CME STP FIX interface using Logon (tag 35-MsgType=A) message.

  1. FIX Client sends Trade Capture Report Request (tag 35-MsgType = AD) with the following tags:

    • tag 569-TradeRequestType = 1 (All trades)

    • tag 263-SubscriptionRequestType = 0 (Snapshot) or 1 (Subscription)

    • tag 453-NoPartyIDs = 2

      • tag 448-PartyID = Firm ID_A and tag 452-PartyRole = Firm Role (the same for all entries)

      • tag 448-PatryID = Firm ID_B and tag 452-PartyRole = Firm Role (the same for all entries)

  2. CME STP FIX sends Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 750-TradeRequestStatus = 2 (Rejected), tag 749-TradeRequestResult = 9 (Unauthorized for Trade Capture Report Request) and tag 58-Text = 'Authorization FAILED: Authenticated User <<Logged in API ID>> can NOT query on behalf of [FirmID_A] as [Firm Role value]' to FIX Client.

Subscription with Multiple FirmIDs: Failed Request – Specified FirmIDs have Different Party Roles

Preconditions: Customer has successfully logged in to CME STP FIX interface using Logon (tag 35-MsgType=A) message.

  1. FIX Client sends Trade Capture Report Request (tag 35-MsgType = AD) with the following tags:

    • tag 569-TradeRequestType = 1 (All trades)

    • tag 263-SubscriptionRequestType = 0 (Snapshot) or 1 (Subscription)

    • tag 453-NoPartyIDs = 2

      • tag 448-PartyID = Firm ID_A and tag 452-PartyRole = Firm Role (different from the second entry)

      • tag 448-PartyID = Firm ID_B and tag 452-PartyRole = Firm Role (different from the first entry)

  2. CME STP FIX sends Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 750-TradeRequestStatus = 2 (Rejected), tag 749-TradeRequestResult = 9 (Unauthorized for Trade Capture Report Request) and tag 58-Text = 'Invalid PtyR. Only one role may be queried for at a time' to FIX Client.

Duplicate Subscription Request

Preconditions: FIX session between FIX Client and CME STP FIX is established; FIX Client is successfully subscribed for CME STP data

  1. FIX Client sends duplicate Trade Capture Report Request (tag 35-MsgType=AD) to CME STP FIX.

  2. CME STP FIX rejects subscription with Trade Capture Report Request Ack (tag 35-MsgType =AQ) having tag 750-TradeRequestStatus = 2 (Rejected), tag 749-TradeRequestResult = 9 (Unauthorized for Trade Capture Report Request) and tag 58-Text = Illegal subscription request.

  3. CME STP FIX does not interrupt existing FIX Client's subscription to CME Group trades.






How was your Client Systems Wiki Experience? Submit Feedback

Copyright © 2024 CME Group Inc. All rights reserved.