CME STP FIX - Use Cases for BrokerTec Trades
This topic includes CME STP FIX session management use cases and FIX Client subscription and request use cases.
- 1 CME STP FIX Session Management Use Cases
- 2 Service Availability – Internal Errors
- 3 CME STP FIX Client Subscribes for CME Group Trades
- 3.1 Subscription Samples
- 3.2 FIX Client Subscribes for CME Group Trades after Successful Log In - Successful Subscription Without Filters
- 3.3 FIX Client Subscribes for CME Group Trades after Successful Log In - Successful Subscription With Filters
- 3.4 FIX Client Duplicated Subscription Request for CME Group Trades
- 3.5 FIX Client Subscribes for CME Group Trades after Successful Log In - Resend Request
- 4 FIX Client Requests Snapshot of CME Group Trades
- 4.1 FIX Client Requests Snapshot of CME Group Trades after Successful Log In (Successful Request – CME Group Trades Match Request Criteria)
- 4.2 FIX Client Requests Snapshot of CME Group Trades after Successful Log In (Successful Request – No CME Group Trades Match Request Criteria)
- 4.3 FIX Client Requests Snapshot of CME Group Trades after Successful Log In (Failed Request – Missing Start Time or Invalid Combination of Filters)
- 5 FIX Client Requests CME Group Trades Using Multiple FirmIDs
- 5.1 FIX Client Requests CME Group Trades with Multiple FirmIDs (Successful Request)
- 5.2 FIX Client Requests CME Group Trades with Multiple FirmIDs (Failed request – at Least One FirmID is Invalid)
- 5.3 FIX Client Requests CME Group Trades with Multiple FirmIDs (Failed Request – Specified FirmIDs have Different Party Roles)
- 6 FIX Client Requests CME Group Trades with Invalid Credentials after Successful Log In
CME STP FIX Session Management Use Cases
Logon Samples
Login sample and Login Ack sample
Trade Capture Report Request (tag 35-MsgType = AD) sample
Logon - Successful
FIX Client sends Logon (tag 35-MsgType = A) message to CME STP FIX to establish FIX session.
CME STP FIX responds with Logon (tag 35-MsgType = A) message.
CME STP FIX session between FIX Client and CME STP FIX is established.
CME STP FIX waits for a Trade Capture Report Request (tag 35-MsgType = AD) message from CME STP FIX Client.
Logon - Unsuccessful
FIX Client sends Logon (tag 35-MsgType = A) message to CME STP FIX in order to establish FIX session.
CME STP FIX rejects login attempt with Logout (tag 35-MsgType = 5) message.
FIX session between FIX Client and CME STP FIX is not established.
if a Logon request is sent during the pending period between a Logout request and termination, the Logon request cannot establish a connection and will give an error.
FIX Session Log Off and Disconnect
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.
CME STP FIX waits for FIX Client to reestablish FIX session.
Sequence Number Reset
The FIX Client should reset incoming and outgoing sequence numbers every time a CME STP FIX session is established.
This includes scenarios where connectivity has been lost. These sessions should not be reestablished.
FIX Client sends Logon (tag 35-MsgType = A) message from FIX Client to contain tag 34-MsgSeqNum = 1 and tag 141-ResetSeqNumFlag = Y.
CME STP FIX responds with Logon (tag 35-MsgType = A) message.
CME STP FIX session between FIX Client and CME STP FIX is established.
CME STP FIX waits for a Trade Capture Report Request (tag 35-MsgType = AD) message from CME STP FIX Client.
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.
Preconditions: Customer has successfully logged in to CME STP: FIX interface using Logon (tag 35-MsgType=A)
Note: MsgSeqNum must be incremented by 1 for each message sent.
FIX Client sends a message (tag 35-MsgType ) with the following tags:
tag 34-MsgSeqNum = n
CME STP FIX sends a message (tag 35-MsgType) with the following tags:
tag 34-MsgSeqNum = x
FIX Client sends a message (tag 35-MsgType ) with the following tags:
tag 34-MsgSeqNum = n+1
CME STP FIX sends a message (tag 35-MsgType) with the following tags:
tag 34-MsgSeqNum = x +1
FIX Client sends a message (tag 35-MsgType ) with the following tags:
tag 34-MsgSeqNum = n
CME STP FIX sends Logout message (tag 35-MsgType = 5) message and 58-Text = 'MsgSeqNum too low, expecting n+2 but received n' to FIX Client and closes FIX session.
Service Availability – Internal Errors
On rare occasions, the CME STP FIX gateway may be available to clients but upstream systems are unavailable. In these scenarios, CME STP FIX clients would experience the following messaging flows.
In all scenarios, CME Group strongly recommends client systems resend messages no more frequently than one message every 30 seconds.
Internal Errors – Client Logon
If CME STP FIX does not have access to upstream CME Group systems—
When the client sends a Logon (tag 35-MsgType=A) message, CME STP FIX will send a Logon Reject with Logout (tag 35=5) message.
Then the client must send Logon messages until their session is successfully established and Acknowledged with a Logon (tag 35-MsgType = A) message,
And the client can send the Trade Capture Report Request (tag 35-MsgType = AD) message to retrieve trades.
Internal Errors – Before First Trade Capture Report Request (AD)
If the client has logged on successfully—
And CME STP FIX loses access to upstream CME Group systems after the client logon but before the client sends their first Trade Capture Report Request (tag 35-MsgType = AD):
Then as a result of first Trade Capture Report Request (tag 35-MsgType = AD), CME STP FIX will send a Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 99 (Other), tag 750-TradeRequestStatus = 1 (Completed) and 58-Text = 'Transport Error: Connection to CME was lost',
Then the client must resend Trade Capture Report Request (tag 35-MsgType = AD) messages until the request is successfully acknowledged with a Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 0 (Accepted)
Internal Errors – After First Trade Capture Report Request (AD)
If the client has logged on successfully—
And the client sends a Trade Capture Report Request (tag 35-MsgType = AD) that is successfully acknowledged with a Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 0 (Accepted) and any CME Group trades (Trade Capture Report (tag 35-MsgType = AE) message(s))
Then CME STP FIX loses access to upstream CME Group systems
Then CME STP FIX will send an unsolicited Trade Capture Report Request Ack (tag 35-MsgType = AQ ) with tag 749-TradeRequestResult = 99 (Other) tag 750-TradeRequestStatus = 1 (Completed) and 58-Text = 'Transport Error: Connection to CME was lost'
Then the client must resend Trade Capture Report Request (tag 35-MsgType = AD) messages until the request is successfully acknowledged with a Trade Capture Report Request Ack (tag 35-MsgType = AQ) with tag 749-TradeRequestResult = 0 (Successful) and tag 750-TradeRequestStatus = 0 (Accepted)
Scenario | Triggering Client Message | Identifying CME STP FIX Message | Client Response |
---|---|---|---|
Internal Errors at Client Login | Logon (35=A) | Logon Reject with Logout (35=5) | Resend Logon (35=A) every 30 seconds until successful |
Internal Errors 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 Errors 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 |
CME STP FIX Client Subscribes for CME Group Trades
Subscription Samples
Trade Capture Report Request Ack (tag 35-MsgType = AQ)
FIX Client Subscribes for CME Group Trades after Successful Log In - Successful Subscription Without Filters
Preconditions: Customer has successfully logged in to CME STP FIX interface using Logon (tag 35-MsgType=A) message.
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 requesttag 779-LastUpdateTime is within timeframe supported by CME STP
Subscription specific filters are not specified (see Trade Capture Report Request (AD) for list of supported filters)
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.
CME STP FIX sends all CME Group trades (Trade Capture Report (tag 35-MsgType = AE) message(s)) received from CME STP back to FIX Client.
CME STP FIX waits for new message from FIX Client
FIX Client Subscribes for CME Group Trades after Successful Log In - Successful Subscription With Filters
Preconditions: Customer has successfully logged in to CME STP FIX interface using Logon (tag 35-MsgType=A) message.
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 requesttag 779-LastUpdateTime is within timeframe supported by CME STP
One or multiple filters are specified (see Trade Capture Report Request (AD) for list of supported filters)
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.
CME STP FIX sends CME Group trades limited to specified filters (Trade Capture Report (tag 35-MsgType = AE) message(s)) to FIX Client.
CME STP FIX waits for new message from FIX Client
FIX Client Duplicated Subscription Request for CME Group Trades
Preconditions: FIX session between FIX Client and CME STP FIX is established; FIX Client is successfully subscribed for CME STP data
FIX Client sends duplicate Trade Capture Report Request (tag 35-MsgType=AD) to CME STP FIX.
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.
CME STP FIX does not interrupt existing FIX Client's subscription to CME Group trades.
CME STP FIX waits for new message from FIX Client.
FIX Client Subscribes for CME Group Trades after Successful Log In - Resend Request
Preconditions: FIX session between FIX Client and CME STP FIX is established; FIX Client is successfully subscribed for CME STP data
FIX Client sends Resend Request (tag 35-MsgType = 2) with the following tags:
tag 7-BeginSeqNo = # (Valid sequence number for session)
tag 16-EndSeqNo =0,1 (0=Up to 2500 messages, when available. 1 - 2500=Up to specified number of messages, when available)
CME STP FIX resends all requested CME Group trades (Trade Capture Report (tag 35-MsgType = AE) message(s)) received from CME STP back to FIX Client.
CME STP FIX waits for new message from FIX Client.
FIX Client Requests Snapshot of CME Group Trades
FIX Client Requests Snapshot of CME Group Trades after Successful Log In (Successful Request – CME Group Trades Match Request Criteria)
Preconditions: Customer has successfully logged in to CME STP FIX interface using Logon (tag 35-MsgType=A) message.
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 (see "Trade Capture Report Request (tag 35=AD)" for list of supported filters) and/or tag 9594-EndTime are specified
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.
CME STP FIX sends CME Group trades matching requested criteria (Trade Capture Report (tag 35-MsgType = AE) message(s)) to FIX Client.
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.
CME STP FIX waits for new message from FIX Client.
FIX Client Requests Snapshot of CME Group Trades after Successful Log In (Successful Request – No CME Group Trades Match Request Criteria)
Preconditions: Customer has successfully logged in to CME STP FIX interface using Logon (tag 35-MsgType=A) message.
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 (see "Trade Capture Report Request (tag 35=AD)" for list of supported filters) and/or tag 9594-EndTime are specified
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.
There are no CME Group trades matching requested criteria.
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.
CME STP FIX waits for new message from FIX Client.
FIX Client Requests Snapshot of CME Group Trades after Successful Log In (Failed Request – Missing Start Time or Invalid Combination of Filters)
Preconditions: Customer has successfully logged in to CME STP FIX interface using Logon (tag 35-MsgType=A) message.
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 (see Trade Capture Report Request (AD) for list of supported filters) is specified.
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.
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.
CME STP FIX waits for new message from FIX Client.
FIX Client Requests CME Group Trades Using Multiple FirmIDs
FIX Client Requests CME Group Trades with Multiple FirmIDs (Successful Request)
Preconditions: Customer has successfully logged in to CME STP FIX interface using Logon (tag 35-MsgType=A) message.
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.
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.
CME STP FIX waits for new message from FIX Client.
FIX Client Requests CME Group Trades 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.
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)
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 API_CMESTP_EPAM_SYSTEMS can NOT query on behalf of [FirmID_A] as [Firm Role value]' to FIX Client.
CME STP FIX waits for new message from FIX Client
FIX Client Requests CME Group Trades 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.
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)
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.
CME STP FIX waits for new message from FIX Client.
FIX Client Requests CME Group Trades with Invalid Credentials after Successful Log In
Preconditions: Customer has successfully logged in to CME STP FIX interface using Logon (tag 35-MsgType=A) message.
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 (Subscribe)
tag 453-NoPartyIDs ≥ 1 and tag 448-PartyID = Firm ID and tag 452-PartyRole = Firm Role
Note: All Party Roles must be identical within a single request to CME STP FIX.
CME STP FIX sends Logout message (tag 35-MsgType = 5) message and 58-Text = 'Unable to satisfy the request' to FIX Client and closes FIX session.
CME STP FIX waits for FIX Client to reestablish FIX session.
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.