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 |
|---|---|---|
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 |
|---|---|---|---|---|---|---|---|---|
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:
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:
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. 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: 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: | 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 MiFID II Reporting 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. | 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. | 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. | 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] | 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 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) | 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. The default is (N), meaning that the trade is disclosed. | 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: | 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: | Y | Y | 460 | Product | Prod | Same usage as CPT FIX |
167 | SecurityType | Valid Values: 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 |
541 | MaturityDate | NDF Fixing date (local market date) | ||||||
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.