Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Introduction

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.

Table of Contents

 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.

ItemCME STP FIXCPT FIX
InitialisationLogon 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
RecoveryClient 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/FiltersClient 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 formatThe TradeCaptureReport is a single sided messageThe 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 TagCPT FIX NameCPT Usage NotesTag appears in CME STPCME STP usage identical to CPT FIXCME STP FIX TagCME STP FIX Tag NameCME STP FIXML Attribute NameNotes

571

TradeReportID

Unique Identifier of the TradeCaptureReport. 

Used to identify duplicate tickets. 

Y

Y

571TradeReportIDRptID

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

1003TradeIDTrdID

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

527SecondaryExecIDExecID2

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

99103PostTradeTypePostTrdTyp

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/ASideRegulatoryTradeIDGrp

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


10034NoSideRegTradeIDs
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

→10027SideRegulatoryTradeIDID

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→10028SideRegulatoryTradeIDSourceSrcThe 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

→10029SideRegulatoryTradeIDEventEvnt

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

→10030SideRegulatoryTradeIDType 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

N20058FacilityTypeFcltyTyp

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/A20060VenueSubTypeVenuSubTyp

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/A1430VenueTypeVenuTyp

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

Y20400NonDisclosedIndicatorNonDsclIndSame usage as CPT FIX.

55

Symbol

Currency pair in CCY1/CCY2 format

Y

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

SecurityAltIDGrp

Y

YSecAltIDGrp

454

NoSecurityAltID

Number of SecurityAltID entriesYY454NoSecurityAltIDNumInGroupSame usage as CPT FIX

→455

SecurityAltID

The ISIN for the instrument

YY→455SecurityAltIDAltIDSame usage as CPT FIX

→456

SecurityAltIDSource

Identifies the class or source of the SecurityAltID.

Only supported value:
4 = ISIN

YY→456SecurityAltIDSourceAltIDSrc

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)
YY460ProductProdSame 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

Y167SecurityTypeSecTyp

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.

Y

Y541MaturityDateMatDtSame usage as CPT FIX

32

LastQty

The notional size of this trade, in units of the dealt currency.
On multileg tickets, only provided for even swaps.
For uneven swaps this will not be provided, and quantities will be provided in the NoLegs group.

Y

Y32LastQtyLastQtySame usage as CPT FIX

31

LastPx

The all-in rate of the dealt price. For multileg tickets this represents the swap points ((also provided in the LastSwapPoints field). For an eFIX or NDF TOD trade:
- On the reference ticket, equals the reference rate + points.
- On the restated ticket, equals the fixed rate + points.

Should there be no fixing rate available, this will be set to 0 (and customer will need to determine rate directly with other party).

Y

Y31LastPxLastPxSame usage as CPT FIX

1056

CalculatedCcyLastQty

Calculated quantity of the contra currency.

Not provided for multileg tickets. See tag 1074 instead

Y

Y1056CalculatedCcyLastQtyCalcCcyLastQtySame usage as CPT FIX

15

Currency

3 character ISO code of the dealing currency. May be either base (CCY1) or term (CCY2) currency.

Y

Y15CurrencyCcySame usage as CPT FIX

120

SettlCurrency

For non-NDF trades this is the contra-currency.
For NDF/NDS trades this is the base currency.

Y

Y120SettlCurrencySettlCcySame usage as CPT FIX

194

LastSpotRate

For FXFWD, the all-in rate (LastPx) is based on this Spot rate.
May be provided for FXNDF if available.
For multileg tickets this is provided in the NoLegs group.

N

N/AN/A

Not supported

195

LastForwardPoints

For FXFWD, points added to the LastSpotRate to calculate the all-in rate.
For multileg FXQDM tickets, points are provided in the NoLegs group.

Provided on all FXFWD tickets (including when 0).
May be provided for FXNDF if available.
Points are provided unscaled.

N

N/AN/A

Not supported

1071

LastSwapPoints

Provided when SecurityType= FXSWAP or NDS (and when SecurityType=FXSPOT or FXNDF and MultiLegReportingType=2).

N

N/AN/A

Not supported

20401

LastFixRate

Fixing rate of the trade only provided on eFIX trades after the fixing.
 
This will be zero when no fixing rate is available

Y

NY31LastPx

eFix trades will have the price in tag 31.

Note that CME STP uses tag 20401 for a completely different use.

20402

LastFixPoints

For eFix trades, the dealt points to be applied to the fixing rate.

N

N/AN/A

Not supported

20412

ReferenceRate

For eFix trades, prior to the fixing (ie the reference ticket) this is the reference rate.

N

N/AN/A

Not supported

75

TradeDate 

Effective business date of the transaction in YYYYMMDD format.

Y

Y75TradeDateTrdDtSame usage as CPT FIX

60

TransactTime

UTC Timestamp (Date/Time) of the transaction being reported in this ticket. 

For the second ticket of an eFix transaction, this represents the fixing time and not the match time. Expressed as the millisecond version of the UTCTimestamp.

Y

Y60TransactTimeTxnTmSame usage as CPT FIX

442

MultiLegReportingType

Used for multileg transactions (FXSWAP/FXNDS)
2 = Individual leg of a multileg transaction (Swap is reported in two single-leg tickets.)
3 = Multileg - (Swap is reported in a single multileg ticket.)

Y

N442MultiLegReportingTypeMLegRptTypFor EBS tickets will alway have value 1. For other asset classes this field will have other values.

555

NoLegs

Number of Legs (for Multileg tickets only)

Y

N555NoLegs
Not supported on CME STP for EBS as this was only used for swap products. The underlying component TrdInstrmtLegGrp is also not provided.
TrdRegTimestamps

N

N/ASideTrdRegTS

768

NoTrdRegTimestamps

Number of TrdRegTimestamp entries

N

N/A1016NoSideTrdRegTS
Same usage as equivalent tag in CPT FIX

→769

TrdRegTimestamp

Timestamp value in microseconds.

N

N/A1012SideTrdRegTimestampTSSame usage as equivalent tag in CPT FIX

→770

TrdRegTimestampType

Timestamp type
1 = Execution Time

N

N/A1013SideTrdRegTimestampTypeTypSame usage as equivalent tag in CPT FIX

End TrdRegTimestamps







63

SettlType

Instrument tenor. Only provided on single leg tickets. (For multi-leg tickets, the settlement dates of each leg will be provided in the NoLegs component.)
0 = Spot
1 = Today (T + 0)
2 = Tomorrow (T+1)
3 = T+2 (for instruments where Spot is not T+2, or as part of Swap legs)
C = Spot Next (Spot + 1)
Dx = FX tenor expression for days, e.g. D5
Mx = FX tenor expression for months, e.g. M3
Wx = FX tenor expression for weeks, e.g. W13
Yx = FX tenor expression for weeks, e.g. Y1
IMMx = IMM tenor expression. x = the nth IMM date on or after the trade date.
(Third Wednesday of the last month of the quarter)
B = Broken. Non-standard tenor indicated by SettlDate 
“Month of the year” NDF’s will be indicated by SettlType=”B” and the SettlDate of the trade.

Y

Y63SettlTypeSettlTyp

Same usage as CPT FIX but only 3 tenors are supported in CME STP for EBS Customers currently, which match the usage in CPT FIX.

0 (Spot)

Mx (Fx tenor expression for months)

B (broken date)

64

SettlDate

The settlement date of this trade in YYYYMMDD format. Not provided for multileg tickets. (See NoLegs group)

Y

Y64SettlDateSettlDtSame usage as CPT FIX

5899

SpotDate

For FXNDF, FXFWD, and FXSWAP the associated SPOT settlement date.
Not provided for FXSPOT

Y

Y5899SpotDateSpotDtSame usage as CPT FIX but only for NDFs (forwards and swaps are not supported for EBS on CME STP).

TrdCapRptSideGrp



TrdCapRptSideGrp

552

NoSides

Both sides of the trade are represented. The first instance of this repeating group is the ticket First Party.
Always 2.

Y

Y552NoSides
Same usage as CPT FIX but will have value 1 (as there is only 1 side)

→54

Side

1= Buy
2 = Sell
B = Multileg

For PBs there are always 2 tickets :
Market Ticket - Between the PB and other party and has same side as PC ticket
Synthetic Ticket - Between PB and PC is opposite side of PC ticket

Y

Y54SideSideSame usage as CPT FIX however it applies only to the firm represented in PartyRole 7 (the trading firm)

→37

OrderID

EBS-generated identifier of the order that was matched.
Provided on 1st side but not provided for 2nd side.

Not provided on LP tickets.

Y

Y37OrderIDOrdIDSame usage as CPT FIX

→198

SecondaryOrderID

OrderID on target execution system (for LP tickets this would be the LP's Order ID).Provided on 1st side only.

N

N/AN/A

Not supported

→11

ClOrdID

Client Order ID as per 1st side, and only provided on API orders.
Provided on 1st side but not provided for 2nd side unless it is the PB/PC synthetic ticket.

Note for LP tickets this would be the ClOrdID that the LP received on their inbound Order.

Y

Y11ClOrdIDClOrdID

For Globex and EBS Direct LCs this is the same usage as CPT FIX. 

For LPs this is no longer provided.

Parties







→453

NoPartyIDs

Number of PartyID (448), PartyIDSource (447), and PartyRole (452) entries. 448, 447, and 452 will be provided on each occurrence when NoPartyIDs is present.

Y

Y

453

1116

NoPartyIDs

NoRootPartyIDs


Same usage as CPT FIX but split between 2 party blocks - see next section for details

→→448

PartyID

Identifier of the party.
This will be qualified by the PartyRole and be applicable to this side. Required when NoPartyIDs > 0

Y

Y

448

1117

PartyID

RootPartyID

ID

ID

Same usage as CPT FIX but split between 2 party blocks - see next section for details

→→447

PartyIDSource

Identifies the source of PartyID value
D = Proprietary
G = MIC (Market Identifier Code)
N = LEI (Legal Entity Identifier)

Required when NoPartyIDs > 0

Y

Y

447

1118

PartyIDSource

RootPartyIDSource

Src

Src

Same usage as CPT but the enumerations and uses are split between 2 party blocks - see next section for details

for 447 values C, D N and P are supported.

for 1119 only values G  and N are supported

→→452

PartyRole

Valid values are below (see Party Role Definitions for details):

1   = Executing Firm
7   = Entering Firm
12 = Executing Trader
16 = Executing System
35 = LiquidityProvider
36 = Entering Trader
73 = Executing Venue
79 = Prime Broker
90 = Settlement Firm
102 = Data Repository
1001 = Institution

Required when NoPartyIDs > 0

Custom values.

Y

Y

452

→1119

PartyRole

RootPartyRole

R

R

Same usage as CPT but the enumerations and uses are split between 2 party blocks - see next section for details

for 452 values 1, 7, 17, 24, 37, 44, 55, 79, 90 and 122 are supported.

for 1119 only value 73 is supported

PartySubIDs







→→802

NoPartySubIDs

Used to provide further information to the specific PartyID

Y

Y→802NoPartySubIDs
Same usage as CPT FIX

→→→523

PartySubID

Identifier for the PartySubID (qualified by the PartySubIDType)

Y

Y→→523PartySubIDIDSame usage as CPT FIX

→→→803

PartySubIDType

Valid values are below (see PartySubIDType Definitions for details):
16 = BIC
1000 = AccountReference
1001 = Pricing Segment
1002 = IBAN

Custom values.

Y

Y→→803PartySubIDTypeTyp

Same usage as CPT FIX but new enumerations are supported - see next section for details. 

Value enumerations are:

5, 16, 84 and 1003

End PartySubIDs







End Partys







→1

Account

Floor code for first party (instance 1)
Account ID for 2nd party. This follows the general principle that a participant always sees their own floor code but the Account ID of other participants.
 
Provided on both sides.

N

N/AN/A

Not supported

→578

TradeInputSource

How the First Party entered into the trade, values:
API
Manual
Unknown

For PB tickets this field will not be provided

YN1028ManualOrderIndicatorManOrdInd

1028=N is the same as CPT 578=API

1028=Y is the same as CPT 578=Manual

In CME STP tag 578 has values GLBX and EBSD to indicate the trading venue.

→336

TradingSessionID

For eFix trades, provides the name of the fixing session. Provided on first side only.

N

N/AN/A

Not supported

→1057

AggressorIndicator

For EBS Direct:
Y = order initiator is aggressor (LC [and/or PB of LP])
N = order initiator is passive (LP [and/or PB of LC])

For EBS Market:
Y - Order matched as a Taker (aggressive fill)
N - Order matched as a Maker (passive fill)

Note:
Prime Broker receives 2 tickets:
On Ticket with PC, the Aggressor Indicator is the opposite of the PC's value.On Ticket with counterparty to the Trade, the Aggressor Indicator is the same as the PC's value.
 
Provided on both sides (and will be opposite on each side)

YY1057AggressorIndicatorAgrsrIndSame usage as CPT FIX. Note this always applies to the PartyRole 7 (the trading firm).

→5106

FundDesignation

Fund Designation as specified at order submission time.
 
Only provided on 1st side and only if first party created this.

YY5106FundDesignationFundDsgntnSame usage as CPT FIX.

→20115

UserReference1

Customer order references.

Only printable characters are allowed, ASCII printable character codes 32-127.

Only valid when MarketSegmentID is:
D = Direct
DF = Direct – Single Ticket

NN5149MemoMem

For EBS Direct LC trades the Memo field (5149) contains the value of the UserReference supplied by the LC.


End TrdCapRptSideGrp



End TrdCapRptSideGrp

TrdRegPublicationGrp



TrdRegPublicationGrp

2668

NoTrdRegPublications

No. of regulatory publication rules in the repeating group

YY


Same usage as CPT FIX

→2669

TrdRegPublicationType

Specifies the type of this regulatory trade publication

0 = Waiver
1 = Deferral

YY2669TrdRegPublicationTypeTypSame usage as CPT FIX

→2670

TrdRegPublicationReason

Additional reason for trade publication type specified in TrdPublicationType

4 = Illiquid waiver
7 = Illiquid deferral

YY2670TrdRegPublicationReasonRsnSame usage as CPT FIX

End NoTrdRegPublications



End TrdRegPublicationGrp


Party ID Mappings - CPT FIX to CME STP 

In general there are direct mappings between the CPT Party Group PartyID tag (tag 448), which is defined by supporting tags PartyRole (tag 452) and PartyIDSource (tag 447), and the CME STP Party Group PartyID tag (tag 449). The same is true for the PartySubID (tag 523), which is defined by the PartySubIDType (tag 803). In some cases CME STP does not support the same PartyRole/PartyIDSource anymore. This detail is shown in the table below.

There are a few places where there is no mapping between the Party/PartySubID groups in CPT FIX to CME STP FIX, which are noted in this main mapping table and the detailed mapping is provided in the table below it. 

It is worth pointing out one main difference, in CME STP party role 7, (the Trading Firm) is used to create the Request and provided in the TradeCaptureReport. It is equivalent to tag 1 (Account) on side 1 of the CPT ticket. The side (tag 54) and AggressorIndicator (tag 1057) both apply to the TradingFirm only (and so will 'flip' on the Synthetic tickets).


ItemItem DescriptionComparison and Mapping NotesSupported on CME STPCPT SideCPT PartyRole (tag 452)CPT PartyIDSource (tag 447)CPT PartySubIDType (tag 803)

CME STP PartyRole (tag 452)

CME STP PartyIDSource (tag 447)CME STP PartySubIDType (tag 803)
Executing FirmThe GFID of the party that actually did the trade.

CME STP uses Party Role 1 to map to CPT the executing party (role 1) on side 1 of the trade. 

Y11DN/A1DN/A
Executing TraderThe GUS of the trader / operator of the Executing Party

CME STP uses partyRole 44 to map to CPT FIX trader ID (role 12) on side 1 of the trade.

CME STP does not have a value for the PartyIDSource.

Y112DN/A44N/AN/A
Executing SystemThe name of the executing System Not provided on CME STPN116DN/AN/AN/AN/A
Liquidity ProviderThe disclosed / non-disclosed alias of the LP (only valid for EBS Direct)

Not provided on CME STP (LPs do not see their own alias).

On CPT this is only provided on tickets to LPs.

N135DN/AN/AN/AN/A
Liquidity Provider Pricing SegmentThe pricing segment ID applied to the LP pricing (only valid for EBS Direct)Provided in the root component on CME STP (see below)Y135D1001N/AN/AN/A
Executing VenueThe MIC code of the venueCME STP provides this in the RootParties group not the Partys Group (see below)Y173GN/AN/AN/AN/A
Prime BrokerThe GFID of the Prime Broker firmCME STP provides to confirm that the trading firm (partyRole 7) acted as a Prime Broker. Only maps to CPT party role 79 on Side 1.Y179 DN/A79DN/A
Institution CodeThe CME Internal institution codeNot provided on CME STP as Institution codes are internal to CME Systems.N11001DN/AN/AN/AN/A
Data RepositoryThe SEF Data Repository for reporting tradesProvided in the SideRegulatoryTradeIDGrp component on CME STP.  (see below)Y1102DN/AN/AN/AN/A
Settlement FirmThe GFID of the settlement counterparty The GFID of the settlement counterparty to the trading firm. Y290DN/A90DN/A
Settlement Firm BICThe BIC/Swift code for the settlement counterpartySame usage as CPT FIXY290D1690D16
Settlement Firm LEIThe counterparty LEIDifferent mapping to CPT FIX - CPT FIX holds at the PartyID level, CME STP uses the SubID.Y290NN/A90D84
Contra FirmThe GFID of the executing counterparty (the party that actually did the trade). CME STP uses a different role, compared to CPT FIX, which used PartyRole 1 on side 2.  When the executing counterparty is primed this is not provided for ODM.  For QDM this is the counterparty alias.Y21DN/A17DN/A
Contra TraderThe GUS of the executing counterparty

CME STP uses a different role, compared to CPT FIX, which uses PartyRole 12 on side 2.  In most cases this is not provided.

CME STP does not have a value for the PartyIDSource.

Y212DN/A37N/AN/A
Prime BrokerThe GFID of the Settlement Prime Broker

CME STP uses an attribute to indicate the settlement GFID (PartyRole 90) is prime. CME STP provides the same GFID as the settlement counterparty in this role.

Y279DN/A90D1003
Contra Liquidity Provider The alias of the counterparty Liquidity Provider, only valid for EBS Direct

On CPT FIX this was a duplication of PartyRole 1 on side 2, as this is provided on CME STP in PartyRole 17 it is not repeated.

N235D N/AN/AN/AN/A


CPT PartyIDs that Map outside the Standard Party Block on CME STP 

As indicated above there are 3 fields that map outside the Party component, their mappings are below.

ItemItem DescriptionComparison and Usage NotesCPT SideCPT PartyRole (tag 452)CPT PartyIDSource (tag 447)CPT PartySubIDType (tag 803)

CME STP Component

CME STP TagCME STP FIX Tag NameCME STP FIXML Attribute Name
Liquidity Provider Pricing SegmentThe pricing segment ID applied to the LP pricing (only valid for EBS Direct)Direct mapping from CPT FIX PartySubID to CME STP.135D1001TradeCaptureReport root block1500MDStreamIDMDStrmID
Executing VenueThe MIC code of the venueThis is a mapping from CPT Tag 448 when CPT tag 452=73, 447=G to CME STP tag 1117 (with 1118=G, 1119=73)173GN/ARootParties 

1118
1119

RootPartyIDSource
RootPartyRole
Src
R
Data RepositoryThe SEF Data Repository for reporting tradesDirect mapping from CPT FIX PartyID to CME STP.1102DN/ASideRegulatoryTradeIDGrp20059DataRepositoryIDDataRepoID

Anchor
curr-handle
curr-handle
Currency Handling - CPT FIX to CME STP

The below table describes terms, CPT and FIX / FIXML values used for EBS currency terms and handling. 

Term

CPT Support

CME STP FIX

CME STP FIXML

Example

Currency PairTag 55 - Symbol

tag 37725 - FXCurrencySymbol

FXCcySym

EUR/USD

USD/JPY

USD/KRW

Base Currency

Not supported

Clients, if needed, would determine from tag 55

In EBS all trades are in base currency today

tag 1716 - UnitOfMeasureCurrency

tag 1717 - PriceUnitOfMeasureCurrency


UOMCcy

PxUOMCcy

EUR (for EUR/USD)

USD (for USD/JPY)

USD (for USD/KRW)


Term Currency

Not supported.

Clients, if needed, would determine from tag 55

tag 10026 - PriceQuoteCurrency

PxQteCcy

USD (for EUR/USD)

JPY (for USD/JPY)

KRW (for USD/KRW)

Dealt Currency

Tag 15 - Currency

tag 15 - Currency

Ccy

Currently all EBS FX trading is in the base currency so tag 15 will reflect same values as 1716/1717

EUR (for EUR/USD)

USD (for USD/JPY)

USD (for USD/KRW)

Contra Currency Not supported Not supported

Settlement Currency

Tag 120 - SettlCurrency

For non-NDF trades this is the contra-currency.

For NDF trades this is the deliverable (non-NDF) currency.

tag 120 - SettlCurrencySettlCcy

For non-NDFs this will be the non-dealt currency. Currently this will always be Term currency as only trading in base is supported.

USD (for EUR/USD)

JPY (for USD/JPY)

For NDFs this will always be the deliverable currency regardless of the dealt currency.

USD (for USD/KRW)