CPT FIX to CME STP

CPT FIX to CME STP

This topic is for users migrating from the EBS Central Post Trade (CPT) FIX API to the CME STP API. CME STP supports FIX and FIXML API. Mappings apply to both APIs and provide CPT FIX equivalent fields in the CME STP that should be used with the CME STP documentation in related resources.

CME STP is the strategic solution for CME Post Trade services based on the industry standard FIX and FIXML protocol.

Overview

CPT FIX and CME STP FIX are both based on FIX 4.4, which should make the migration relatively straightforward; there are some key differences between the APIs.

 Subscription, Configuration and format changes

The table below describes differences in Session management between CME STP FIX and CPT FIX. FIXML is a different session protocol so it is inherently different to CPT FIX, CPT does not support FIXML and not compared in the table below.

Item

CME STP FIX

CPT FIX

Item

CME STP FIX

CPT FIX

Initialisation

Logon must always have tag 141-ResetSeqNumFlag=Y to reset sequence numbers with every session. Sequence numbers are not needed for recovery as client systems use TradeCaptureReportRequest (tag 35-MsgType=AD) for subscription or recovery of tickets. 

Logon must never have tag 141-ResetSeqNumFlag=Y (either omit or set to "N") as persistence is integral to recovery following a disconnection. 

Subscription

Client systems send a TradeCaptureReportRequest (tag 35-MsgType=AD) with tag263-SubscriptionRequestType=1 to initiate a subscription for tickets.

There can be only one subscription per established FIX Session.

Tickets are sent as soon as a session is connected and tickets are available

Recovery

Client systems can use TradeCaptureReportRequest (tag 35-MsgType=AD) with tag263-SubscriptionRequestType=0 to initiate trade recovery.

CPT uses FIX Session recovery to send messages that were not sent previously, user has no ability to re-request a message already sent.

Configuration/Filters

Client systems can use filters defined in TradeCaptureReportRequest (tag 35-MsgType=AD) to limit the scope of returned tickets. Different filter parameters are applicable to Subscription or Recovery request.

CPT is configured by CME and changes are only applied on the weekend

Message format

The TradeCaptureReport is a single sided message

The TradeCaptureReport is a two-sided message.

CPT FIX to CME STP FIX Mappings

A large difference between the CPT FIX message and the CME STP FIX message is the use of the sides group. On CPT FIX there were always 2 sides to the message with side 1 reflecting party 1 in the trade and side 2 reflecting party 2 (the counterparty). On CME STP there is one side and instead the 2 parties are represented by specific PartyRoles. The PartyRole mapping is handled in a separate table below this main one.

CPT FIX Tag

CPT FIX Name

CPT Usage Notes

Tag appears in CME STP

CME STP usage identical to CPT FIX

CME STP FIX Tag

CME STP FIX Tag Name

CME STP FIXML Attribute Name

Notes

CPT FIX Tag

CPT FIX Name

CPT Usage Notes

Tag appears in CME STP

CME STP usage identical to CPT FIX

CME STP FIX Tag

CME STP FIX Tag Name

CME STP FIXML Attribute Name

Notes

571

TradeReportID

Unique Identifier of the TradeCaptureReport. 

Used to identify duplicate tickets. 

Y

Y

571

TradeReportID

RptID

Same usage as CPT FIX.

Used to identify duplicate tickets. 

Note, when supported, Amends and Cancels will have a new TradeReportID value.

1003

TradeID

Deal ID, the globally unique EBS identifier for the trade.

Y

Y

1003

TradeID

TrdID

Same usage as CPT FIX

For relating to the trading APIs this maps to:

  • tag 17 on ER from Ai

  • tag 1797 on ER from iLink

  • tag 17 on ER from EBS Direct LC API

  • tag 11 on NOS to EBS Direct LP API

This is the unique deal ID that is common to the maker and taker. For Prime Banks that consume 2 tickets per trade the ticket ID (571) will be unique but the trade ID will be common. 

1040

SecondaryTradeID

LP assigned Trade Identifier. Up to 64 characters.

For LCs this field contains the same value as field 527, SecondaryExecID, on the FIX 4.4 API Execution Report. (Relevant only for MarketID=FXQDM.)

Y

N

527

SecondaryExecID

ExecID2

Only provided for EBS Direct disclosed tickets to LCs. Provides the LP's ExecID in the ER returned to EBS Direct by the LP.

For relating to the trading API it is mapped to:

  • tag 17 on ER from EBS Direct LP API

Note: 1040 on CME STP has a different ID with different meaning.

829

TrdSubType

The only valid value for this tag is “40” (Wash Trade)

N

N/A

99103

PostTradeType

PostTrdTyp

On CPT this indicated the Prime Broker (and Prime of Prime) Synthetic tickets only. 

On CME STP this maps to value 4 - Prime Give Up (Synthetic) tickets.

Note that Prime Customers will also see value 4 (as that is a Synthetic ticket) so 829=40 maps to 99103=4 only for Prime Broker and Prime of Prime Broker Synthetic tickets. To programmatically differentiate between Prime Customer Synthetic tickets and Prime (and Prime of Prime) Broker Synthetic tickets please use PartyRole 79, which is only present on tickets to Prime (and Prime of Prime) Brokers.

150

ExecType

Describes the purpose of the TCR.
Values:
F = Trade (standard trade)

For eFix, clients have the option of receiving a reference ticket at the time of the match, followed by a restated ticket when the trade price is fixed. These will be reported with the following ExecTypes: 
z  =  Reference Trade (Match-time eFix ticket containing a reference rate.) - custom value
D = Restated (updated eFix ticket containing the fixing rate)

If the client opts to wait until after the fixing for the eFix ticket to be issued, then they will receive a single standard eFix ticket. (ExecType=F).

In future releases, additional ExecType values will support trade corrections and cancels.

N

N/A

 

 

 

CME STP does not provide match tickets, for eFix there is no equivalent of this tag on CME STP.

572

TradeReportRefID

When providing a 2nd eFix ticket (a restated trade) this is a reference to the TradeReportID of the original (match time) ticket. It is only provided on the 2nd eFix fixing ticket.

N

N/A

 

 

 

CME STP does not provide match tickets, for eFix there is no equivalent of this tag on CME STP.

378

ExecRestatementReason

Only value:
3 = Repricing of Order (only sent when ExecType=D[Restated], which is part of eFix flow)

N

N/A

 

 

 

CME STP does not provide match tickets, for eFix there is no equivalent of this tag on CME STP.

RegulatoryTradeIDGrp

N

N/A

SideRegulatoryTradeIDGrp

 

1907

NoRegulatoryTradeIDs

Number of trade identifiers in the repeating group.

This group is always provided even if the trade does not fall within a specific reporting regulatory requirement.

For Swaps an id is provided per leg (with a reference to that leg). 

Will be 1 or 2 (for single leg instruments or swaps).

N

N/A

 

10034

NoSideRegTradeIDs

 

Number of entries in the repeating group

→1903

RegulatoryTradeID

Transaction identifier required by government regulators or other regulatory organizations for regulatory reporting purposes. Will contain the leg's transaction ID (unique in EBS).

Note:

USI or UTI
This is created by concatenating RegulatoryTradeIDSource (1905) with RegulatoryTradeID.

MiFID II Reporting
The hyphens should be removed as ESMA does not accept hyphens.

Required when NoRegulatoryTradeIDs (1907) > 0.

N

N/A

→10027

SideRegulatoryTradeID

ID

The Regulatory Trade ID. Unlike CPT FIX for CME STP this represents a specific regulatory ID with each repetition of the group. 

Tag 10030 indicates the type of ID.

Tag 20058 indicates the applicable regulatory jurisdiction.

→1905

RegulatoryTradeIDSource

Identifies the reporting entity that originated the value in 1903.

Will contain the relevant namespace.

Required when NoRegulatoryTradeIDs (1907) > 0.

N

N/A

→10028

SideRegulatoryTradeIDSource

Src

The requirement to provide the namespace was dropped when UTI was introduced.

→1904

RegulatoryTradeIDEvent

Identifies the event that caused the origination of the identifier.
Will always be ‘0’ – Initial Block Trade. Required when NoRegulatoryTradeIDs (1907) > 0

N

N/A

→10029

SideRegulatoryTradeIDEvent

Evnt

Always 0 as per CPT FIX

→1906

RegulatoryTradeIDType

Specifies the type of trade identifier provided in 1903 within the context of the hierarchy of trade events.
Will always be ‘0’ - Current (Default value). Required when NoRegulatoryTradeIDs (1907) > 0

N

N/A

→10030

SideRegulatoryTradeIDType

 Typ

Will be 0 usually until 10027 is the TradingVenueTransactionID (TVTID) in which case this is 5. 

On CPT FIX is always 0.

→2411

RegulatoryLegRefID

Identifies the leg of the trade the entry applies to by referencing the leg's LegID(1788).

N

N/A

 

 

 

FX Swaps on EBS Direct are not currently supported on CME STP 

End RegulatoryTradeIDGrp

570

PreviouslyReported

Indicates if the trade capture report was previously reported to the counterparty on a dynamic subscription.

If the TCR is sent as a drop copy or in a streaming subscription will be N.
If the TCR is sent as an action from support (e.g. client requested TCR to be sent again) then will be Y.

N

N/A

 

 

 

Not supported

1430

VenueType

Identifies the type of venue where a trade was executed.

Provided when traded on a regulated market (e.g., on SEF or MTF).

Y

N

→20058

FacilityType

FcltyTyp

20058 indicates the regulated facility.

On CPT FIX 1430 only had the value R, which indicated a regulated venue and other tags were needed to indicate the venue type. 

On CME STP 1430 indicates if the venue was the CLOB (E) or EBS Direct (Q).

1300

MarketSegmentID

QS  = ‘Quotes’ Sweepable [EBS Direct - QDM]
QF  = ‘Quotes’ Full Amount [EBS Direct - QDM]
QR  = ‘Quotes’ RFQ Off MTF [EBS Direct - QDM]
QRM = ‘Quotes’ RFQ On MTF [EBS Direct – QDM]
OC  = ‘Orders’ CLOB [Market - ODM]
OH  = ‘Orders’ HEDGE [Market - ODM]
OE  = ‘Orders’ eFIX [Market - ODM]

N

N/A

20060

VenueSubType

VenuSubTyp

The following mappings apply:

CPT FIX: OC = CME STP: C

CPT FIX: QF  = CME STP: S

CPT FIX: QS = CME STP: W 

To determine eFix use : tag 828=1000

ie

CPT FIX: QE if 828=1000. 

Note as RFQ is not supported CME STP, and the Hedge product was stopped the following do not have mappings on CMES TP:

QR  = ‘Quotes’ RFQ Off MTF 
QRM = ‘Quotes’ RFQ On MTF [EBS Direct – QDM]

OH  = ‘Orders’ HEDGE [Market - ODM]

1301

MarketID

A classification akin to 'venue' used to group Market Segments together.

FXQDM = FX Quote Driven Market (EBS Direct)
FXODM = FX Order Driven Market (EBS Market - CLOB)

N

N/A

1430

VenueType

VenuTyp

CPT FIX: FXODM = CME STP: E 

CPT FIX: FXQDM = CME STP: Q 

20400

NonDisclosedTrade

Flag indicating if this was a disclosed or non-disclosed trade.
 
Provided only on non-disclosed trades (with value Y).

The default is (N), meaning that the trade is disclosed.
 
Not relevant for EBS Market trades.

Y

Y

20400

NonDisclosedIndicator

NonDsclInd

Same usage as CPT FIX.

55

Symbol

Currency pair in CCY1/CCY2 format

Y

N

37725

FXCurrencySymbol

FXCcySym

The symbol in EBS notation (CCY1/CCY2) is provided in tag 37725 as Symbol (tag 55) is used to provide the unique instrument symbol.

SecurityAltIDGrp

454

NoSecurityAltID

Number of SecurityAltID entries

Y

Y

454

NoSecurityAltID

NumInGroup

Same usage as CPT FIX

→455

SecurityAltID

The ISIN for the instrument

Y

Y

→455

SecurityAltID

AltID

Same usage as CPT FIX

→456

SecurityAltIDSource

Identifies the class or source of the SecurityAltID.

Only supported value:
4 = ISIN

Y

Y

→456

SecurityAltIDSource

AltIDSrc

Same usage as CPT FIX for value 4.

More supported values including:

8 - Exchange Symbol

116 - eFix Session Name

End SecurityAltIDGrp

460

Product

Indication of the type of product the security is associated with. Valid Values:
2 = Commodity (for Metals)
4 = Currency (for FX)

Y

Y

460

Product

Prod

Same usage as CPT FIX

167

SecurityType

Valid Values:
FXSPOT
FXNDF
FXFWD
FXSWAP
FXNDS 

For SWAPs that are represented as two single leg tickets (MultiLegReportingType=2), the SecurityType will reflect that of the leg.

Y

Y

167

SecurityType

SecTyp

Same usage as CPT FIX

The following are not supported on CME STP:

FXFWD
FXSWAP
FXNDS 

541

MaturityDate

NDF Fixing date (local market date)
Provided only for NDF, or for NDS tickets in which the client has opted for a single ticket for each leg.




How was your Client Systems Wiki Experience? Submit Feedback

Copyright © 2024 CME Group Inc. All rights reserved.