Page tree
Skip to end of metadata
Go to start of metadata

After negotiation is complete, the customer must send an Establish message to start assigning sequence numbers. Once established, customers can submit orders and quotes.

35=Establish

TagNameBinary TypeBinary LengthReqEnumerationDescription
39003HMACVersionHMACVersion0YCME-1-SHA-256Constant.
39005HMACSignatureString32Req32Y

Contains the HMAC signature.

HMAC signature will be calculated using HMAC data consisting of the following fields which should be in ascending order and delimited with new line (\n) characters. There should be no trailing new line.

  • RequestTimestamp + '\n' +
  • UUID + '\n' +
  • SessionID + '\n' +
  • FirmID+ '\n' +
  • TradingSystemName + '\n' +
  • TradingSystemVersion + '\n' +
  • TradingSystemVendor + '\n' +
  • NextSeqNo + '\n' +
  • KeepAliveInterval

The HMAC signature is an encoded hash (digest) of the nine fields mentioned above using the Secret Key provided by CME. 

In pseudo code:

HmacSHA256(HmacData, secretKey)

39004AccessKeyIDString20Req20Y

Contains the AccessKeyID assigned to this session on this port.

For example: TXkgU2VjcmV0IEtleQ

1603TradingSystemNameString30Req30Y
Provides the name of the application system used to generate FIX application messages.
1604TradingSystemVersionString10Req10Y
Provides the version of the application system being used to initiate FIX application messages
1605TradingSystemVendorString10Req10Y
Provides the vendor of the application system.
39001UUIDuInt648Y

Session Identifier defined as type long (uInt64); CME Group recommends using timestamp as number of microseconds since epoch (Jan 1, 1970).

  • Unique at the beginning of the week on Sunday to start with sequence number 1
  • Keep using same UUID in midweek Establish messages to maintain continuous sequence numbers

CME track of last known used UUID.

The Negotiate message must be sent prior to the Establish message with a new UUID midweek.

When used after Negotiate, Negotiate.UUID should have the same value as Etablish.UUID or the message will be rejected.

Client systems must use the same UUID for both primary and backup connections if using active-active fault tolerance to ensure that the sequence numbers will continue after a failover. 

39002RequestTimestampuInt648Y
Time of request; CME Group recommends using the number of nanoseconds since epoch (Jan 1, 1970) as the timestamp.
39013NextSeqNouInt324Y

Next expected message sequence number.

On primary connection, the expected message sequence number of the next business message from customer to CME.

On primary connection the next expected message sequence number represents the sequence number of the next business message to be sent from customer to CME.

  • At the beginning of the week this should be set to 1
  • Should be set to last known message sequence number + 1 for Establish message sent midweek using same UUID as previous Establish message
  • Should be set to 1 for Establish message sent midweek using different UUID from previous Establish message

On backup connection, this will be set to 0.

39006SessionString3Req3Y
Session ID.
39007FirmString5Req5Y
Firm ID.
39014KeepAliveIntervaluInt162Y

The longest time in milliseconds the client system can remain silent before sending a keep alive message.

Allowed range is between 5000-60000. Any value outside this range will be rejected

If no message is sent from customer after 1 interval lapses, CME will send a Sequence message indicating that one keep alive interval from customer has lapsed.

If still no response is sent from the customer and the second keep alive interval lapses, the session will be terminated.

39008

Credentials

DATA

variable

N


Currently not supported; however the length of variable data needs to be set to 0, represented as two bytes 00 00.