Maker API Application Layer FIX Message Definitions

Application Layer FIX Message Definitions include the following:

Supported Application Layer Messages

Supported messages together with the sessions they are applicable for are outlined below:

Message Name

MsgType

Session Type

Sent by EBS

Sent by Maker

Message Name

MsgType

Session Type

Sent by EBS

Sent by Maker

Market Data Request

V

Market Data

-

Market Data Full Refresh

W

Market Data

-

Market Data Request Reject

Y

Market Data

-

New Order Single

D

Trading

-

Execution Report

8

Trading

-

Execution Ack

BN

Trading

-

Don't Know Trade

Q

Trading

-

In the following section where fields contain custom values or elements of later versions of the FIX protocol these have been highlighted.

Where possible we recommend clients only populate mandatory tags on any given message, omitting any optional tags. Tags which we recommend are omitted are highlighted in a light blue background.

Market Data (ESP)

Market Data Request (35=V)

A separate subscription request will be sent for each instrument of each pricing tier.

When a single FIX session supports multiple pricing segments, the pricing segment will be identified on the MDRequest using the MDStreamID (1500) field. 

A single subscription supports all size buckets. Quantities are dynamic and are not specified in the MDRequest.

Tag

Field Name

Req

Ver

Comments

Tag

Field Name

Req

Ver

Comments

262

MDReqID

Y

4.4

Unique identifier for the MarketDataRequest assigned by EBS.

263

SubscriptionRequestType

Y

4.4

1 = Subscribe

2 = Unsubscribe (MDReqID will match original subscription)

265

MDUpdateType

C

4.4

Required when SubscriptionRequestType=1 [Subscribe].

0 = Snapshot Message

264

MarketDepth

C

4.4

Number of price levels requested. Required when SubscriptionRequestType=1 [Subscribe].

0 = Full book

1 = Top of book.

n = number of price levels

MDReqGrp

267

NoMDEntryTypes

Y

4.4

For Subscribe:

Set to '2' (All requests must be two-sided price requests)

For Unsubscribe, the value will be ignored by EBS.

269

MDEntryType

Y

4.4

For Unsubscribe, the value will be ignored.
0 = Bid

1 = Offer

END – MDReqGrp

InstrmtMDReqGrp - All values in this group will be ignored on unsubscribe requests.

146

NoRelatedSym

Y

4.4

Always '1'

55

Symbol

Y

4.4

The currency pair requested, in CCY1/CCY2 format, where CCY1 and CCY2 are the ISO codes of the base and local currencies for which a price is requested, e.g. EUR/USD.

167

SecurityType

N

4.4

Valid Values:

FXSPOT

63

SettlType

N

4.4

Instrument tenor.

64

SettlDate

C

4.4

Settlement date of (near leg of) instrument in YYYYMMDD format. Not provided for weekly subscriptions.
Takes precedence over SettlType.

1500

MDStreamID

N

4.4

Name of the pricing segment (tier).
Provided when multiple pricing segments are serviced on a single FIX session.

END - InstrmtMDReqGrp

58

Text

N

4.4*

Reason for the Market Data unsubscription (Optionally provided when SubscriptionRequestType=2 [Unsubscribe]).

Custom field on this message.

Market Data Snapshot Full Refresh (35=W)

Each snapshot stands alone and overrides any previously sent snapshot for that subscription. Snapshots should be sent whenever at least one of the rungs on the Snapshot has been changed in price or size.

Additionally, if no change has occurred within the pre-configured stale quote interval for this instrument, a snapshot should be re-sent to keep the prices active. This interval can be configured by instrument and/or disabled. Discuss your requirements with you EBS representative.

If Market Data becomes unavailable for an instrument, a snapshot should be sent indicating "Empty Book" to indicate that the instrument's last snapshot should be invalidated. When market data is again available, a new snapshot can be sent.

Tag

Field Name

Req

Ver

Comments

Tag

Field Name

Req

Ver

Comments

262

MDReqID

Y

4.4

Unique identifier for the initial MarketDataRequest. Echo back the value on the MDRequest message.

1500

MDStreamID

N

5.0

Name of the pricing segment (tier).

55

Symbol

N

4.4

Currency pair in CCY1/CCY2 format.

64

SettlDate

N

4.4

Settlement date of instrument in YYYYMMDD format. Note EBS will not validate this date; the date on the corresponding Market Data Request will prevail.

541

MaturityDate

N

4.4

For NDF instruments, represents the fixing date of the instrument in YYYYMMDD format.

MDFullGrp

268

NoMDEntries

Y

4.4

Number of entries in the MarketData message. Must be ≥ 1

269

MDEntryType

Y

5.0

0 = Bid

1 = Offer

J = Empty Book - Indicates no bids or offers.

270

MDEntryPx

C

4.4

Price of the market data entry. Must be > 0
Not required if MDEntryType = EmptyBook (J).

271

MDEntrySize

C

4.4

LP's quantity available at this price. Must be > 0
Not required if MDEntryType = EmptyBook (J).

299

QuoteEntryID

N

4.4

Unique identifier of a Market Data quote. Maximum of 20 characters supported. Should only be sent if Maker require EBS to use Previously Quoted orders (as opposed to limit orders) in which case this tag is mandatory.

END - MDFullGrp

Market Data Request Reject (35=Y)

This message may be sent by a Maker to reject a Market Data Request or to indicate that market data will no longer be available on the current subscription.

A MarketDataRequestReject message may be sent by the Maker at the end of rollover to force the EBS system to re-issure a new Market Data subscription.



Tag

Field Name

Req

Ver

Comments

Tag

Field Name

Req

Ver

Comments

262

MDReqID

Y

4.4

Market Data request id which is being rejected.

281

MDReqRejReason

N

4.4*

Rejection reason code:
0 – Invalid instrument identifier

1 – Duplicate MDReqID

2 – Insufficient Bandwidth

3 – Insufficient Permissions

4 – Unsupported SubscriptionRequestType

5 – Unsupported MarketDepth

6 – Unsupported MDUpdateType

8 – Unsupported MDEntryType

x – Market Data Unavailable (Custom)

y – Trade Date rollover (Custom)

z – Other – Reason to be provided in Text field (Custom)

58

Text

C

5.0

Textual description of the reason for the market data request rejection.

Trading

New Order Single (35=D)

Tag

Field Name

Req

Ver

Comments

Tag

Field Name

Req

Ver

Comments

11

ClOrdID

Y

4.4

A unique identifier for the order assigned by the EBS.

1

Account

Y

4.4

Client account at the Maker where this transaction will settle.

55

Symbol

Y

4.4

Currency pair to be traded, in CCY1/CCY2 format.

167

SecurityType

N

4.4

Valid Values:

FXSPOT

63

SettlType

N

4.4

Instrument tenor.

64

SettlDate

Y

4.4

Settlement date of the instrument (value date).

541

MaturityDate

N

4.4

Supplied for NDF instruments only. Represents the fixing date of the instrument in YYYYMMDD format.

54

Side

Y

4.4

Trading intention from Taker perspective.

1 = Taker Buys

2 = Taker Sells

40

OrdType

Y

4.4

Type of order:

2 = Limit

D = Previously Quoted (targeted to a specific Quote) QuoteID must be provided.

59

TimeInForce

N

5.0

Specifies how long the order will remain in effect. Not currently supplied but may be in the future.
4 = Fill or Kill – Makers should default to this if not supplied.

1070

MDQuoteType

N

4.4*

Type of quote on which this trade proposal is based:
0 = Indicative (non-executable). Reserved for future use

1 = Tradeable. LP may reject NOS. (Default)

99 = Firm quote. LP must confirm trade.(Custom)
*Standard FIX field - custom on this message

38

OrderQty

Y

4.4

Quantity of order, in units of the specified Currency.

15

Currency

N

4.4

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

44

Price

Y

4.4

Limit price of order.

117

QuoteID

C

4.4

Provided for PQ orders (OrdType=D) only, to indicate the target quote.

60

TransactTime

Y

4.4

UTC Timestamp (Date/Time) of order.

1028

ManualOrderIndicator

N

5.0

Y = Indicates that LC order was received via a manual interface.

1500

MDStreamID

N

5.0

Name of the pricing segment (tier) targeted by this order. Provided when multiple pricing segments are provided on a single FIX session.

110

MinQty

N

4.4

On orders for which partial fill is supported (TIF=IOC), indicates minimum acceptable fill quantity of the order. Not used currently.

Parties - Identifies party involved in the NewOrderSingle.

453

NoPartyIDs

N

4.4

Number of PartyID (448), PartyIDSource (447), and PartyRole (452) entries.

448

PartyID

Y

4.4

Identifier of the party.

447

PartyIDSource

Y

5.0

Identifies the source of PartyID value. Always:
D = Proprietary

452

PartyRole

Y

4.4

1 = Executing LC Firm (Disclosed/Non-disclosed alias)

12 = Executing LC Trader (Disclosed/Non-disclosed TraderId)

END - Parties

Execution Report (35=8)

An Execution Report is sent from the Maker to indicate whether a deal has been filled or rejected.

Tag

Field Name

Req

Ver

Comments

Tag

Field Name

Req

Ver

Comments

37

OrderID

Y

4.4

Unique identifier of the order assigned by the client.

11

ClOrdID

Y

4.4

Unique identifier of the order/request as assigned by EBS.

17

ExecID

Y

4.4

Unique identifier for this fill when ExecType=F [Trade].

Maximum length is 28 characters. For other ExecTypes 0 may be supplied in this field.

150

ExecType

Y

4.4

Purpose of this Execution Report

0 = New (order accepted)

4 = Cancelled

8 = Rejected

F = Trade (Partial or full)

39

OrdStatus

Y

4.4

Status of order
0 = New (Order accepted)

2 = Filled (Completed)

4 = Cancelled

8 = Rejected
Note, partially filled executions should be represented as ExecType=F, OrdStatus=4, LastQty>0.

1

Account

N

4.4

Trader's floor code echoed from NOS.

55

Symbol

N

4.4

Currency pair in CCY1/CCY2 format.

54

Side

Y

4.4

Side of the order from the Taker perspective. (Echoed from request)
1 = Taker Buys

2 = Taker Sells

64

SettlDate

N

4.4

The settlement date of this trade in YYYYMMDD format.
If not provided by Maker, EBS will apply the Settlement Date of the NOS to the trade.
When provided, must match SettlDate of NOS.

541

MaturityDate

C

4.4

For NDF trades only, represents the fixing date of the trade in YYYYMMDD format.

Echoed from NOS, if provided, for all ExecType values.

40

OrdType

N

4.4

Type of order:
2 = Limit

D = Previously Quoted (targeted to a specific Quote)

Echoed from NOS if provided.

38

OrderQty

N

4.4

Quantity of order, in units of the specified Currency. Echoed from NOS if provided.

15

Currency

N

4.4

3 character ISO code of the dealt Currency. (Echoed from NOS)

The Size and Quantity fields of the order and trade are expressed in terms of the specified Currency.

59

TimeInForce

N

4.4

Specifies how long the order will remain in effect.

Echoed from NOS, if provided

44

Price

N

4.4

Price submitted on the order.

Echoed from NOS, if provided

1500

MDStreamID

N

5.0

Name of the pricing segment (tier).

Custom on this message type.

60

TransactTime

C

4.4

The UTC Timestamp (Date/Time) the transaction represented by this ExecutionReport occurred.

Condtionally required when ExecType=F [Trade].

Microsecond precision preferred.

31

LastPx

C

4.4

The dealt price of this trade.

Price improvement is supported on non-firm orders however for firm orders this must equal the price of the NOS.

Conditionally required when ExecType=F [Trade].

32

LastQty

C

4.4

The quantity of this trade in terms of the dealt Currency.

Provided when ExecType=F [Trade].

14

CumQty

N

4.4

Total amount of the order which has been filled in terms of the dealt Currency.

151

LeavesQty

N

4.4

Quantity of the order which is open for execution in terms of the dealt Currency.

If the order is no longer active, then LeavesQty = 0. (OrdStatus = Cancelled, Rejected, Filled).

6

AvgPx

N

4.4

Average price at which this order has been filled (weighted by size). Same as LastPx
Zero if no fills.

103

OrdRejReason

N

4.4

Code indicating why the order was rejected or cancelled.

See Order Rejection Reason Codes

58

Text

N

4.4

Human-readable text field regarding the execution.

For ExecType=8 \[Reject\] or ExecType=4 \[Cancelled\], provides additional information regarding order rejection.

Parties - Identifies the parties of the trade.

453

NoPartyIDs

C

4.4

Echoed from NewOrderSingle (when provided) and ExecType= New (1) or Rejected (8).

448

PartyID

Y

4.4

Identifier of the party. Provided when NoPartyIDs > 0

447

PartyIDSource

Y

5.0

Identifies the source of PartyID valueD = Proprietary

Provided when NoPartyIDs > 0

452

PartyRole

Y



4.4

1 = Executing LC Firm (Disclosed/Non-disclosed alias)

12 = Executing LC Trader

Provided when NoPartyIDs > 0

END – Parties

Execution Ack (35=BN)

The ExecutionAck message is sent by EBS to the Market Maker to confirm receipt and acceptance of an LP trade. This is configurable so can be turned off if desired. This is a FIX 5.0 message, therefore all tags are represented as version 5.0 even if the tag appeared in earlier versions of FIX protocol on other message types. Only positive confirmation is sent via the ExecutionAck message (negative confirmation will be sent via the DontKnowTrade message).

Tag

Field Name

Req

Ver

Comments

Tag

Field Name

Req

Ver

Comments

37

OrderID

Y

5.0

References the OrderID of the acknowledged trade. Echoed from ER

11

ClOrdID

Y

5.0

The ClOrdID of the acknowledged trade. Echoed from ER

1036

ExecAckStatus

Y

5.0

1 = Accepted

17

ExecID

Y

5.0

The ExecID of the acknowledged trade. Echoed from ER

55

Symbol

N

5.0

Currency pair in CCY1/CCY2 format.

Echoed from ER if present.

64

SettlDate

Y

5.0

The settlement date of this trade in YYYYMMDD format.

54

Side

Y

5.0

Side of the order from the Taker perspective.
1 = Taker Buys

2 = Taker Sells

541

MaturityDate

C

5.0

For NDF trades only, represents the fixing date of the trade in YYYYMMDD format.

38

OrderQty

Y

5.0

OrderQty of the NOS.

15

Currency

N

5.0

3 character ISO code of the dealt Currency.

31

LastPx

Y

5.0

The trade price of this execution.

32

LastQty

Y

5.0

The quantity of this trade in terms of the dealt Currency.

1056

CalculatedCcyLastQty

N

5.0

Calculated quantity of the contra currency.

60

TransactTime

Y

5.0

Time of trade confirmation by EBS. Microsecond precision preferred but milliseconds can be configured.

58

Text

N

5.0

Optional text field.

Don't Know Trade (35=Q)

A Don't Know Trade may be issued by EBS in the event an invalid trade is received, or a stale trade is received (after the configured EBS deal timeout).

Tag

Field Name

Req

Ver

Comments

Tag

Field Name

Req

Ver

Comments

37

OrderID

Y

4.4

Unique identifier of the order assigned by the Maker. Echoed from ER.

11

ClOrdID

Y

4.4

Unique identifier of the order/request as assigned by EBS. Echoed from ER.

17

ExecID

Y

4.4

The ExecID of the rejected trade. Echoed from ER.

127

DKReason

C

4.4

Reason code for the execution rejection.
D = No matching order.

F = Calculation difference.

w = Order constraints not satisfied (custom)

x = Invalid trade parameter (custom)

y = Deal Timeout (custom)

Z = Other. Human readable rejection reason will be provided in the Text field.

55

Symbol

C

4.4

Instrument symbol. Echoed from ER.

54

Side

Y

4.4

Trading intention from client perspective. Echoed from ER.

1 = Client Buys

2 = Client Sells

38

OrderQty

Y

4.4

Quantity of order, in units of the specified Currency.

31

LastPx

N

4.4

The price of this execution.
Provided if the rejected ER contained this field.

32

LastQty

N

4.4

The size of this execution.
Provided if the rejected ER contained this field.

60

TransactTime

Y

4.4

Time the rejected ExecutionReport was processed by the EBS system.

58

Text

N

4.4

Text field with additional explanation for execution rejection.

Order Rejection Reason Codes

When an order is rejected or cancelled without being filled, the OrdRejReason (103) may be provided on the Execution Report to indicate the reason for rejection. Makers are encouraged to provide explicit reason codes for order rejection. When explicit reasons are provided, clients can more appropriately adjust their order flow to conform to the requirements of the Maker. For example, orders rejected due to credit exhaustion should not be automatically resubmitted to the Maker, whereas orders rejected due to speed bumps may be resubmitted after a pause.

Code

Description

Comment

Code

Description

Comment

0

Broker Credit

Client has insufficient credit to execute order.

1

Unknown Symbol

Symbol not recognized.

2

Exchange Closed

Market currently unavailable.

3

Order Exceeds Limit

Size of order exceeds limit.

4

Too Late To Enter

Trading in this instrument not currently available.

5

Unknown Order

N/A

6

Duplicate Order

ClOrdID of NOS is not unique.

8

Stale Order

SendingTime on NOS indicates that a network delivery delay has caused the order to be stale.

11

Unsupported Order Characteristic

Property on order not supported.

13

Incorrect Quantity

OrderQty does not meet instrument's min, max or size increment restrictions.

15

Unknown Account

Account not recognized.

16

Price Exceeds Current Price Band

Price on order does not comply with price range limits.

18

Invalid Price Increment

Price does not meet instrument's price increment restrictions.

20

Notional Value Exceeds Threshold

OrderQty of FOK order too large for current market conditions.

21

Algorithm Risk Threshold Breached

Order rejected due to Maker's risk parameters, e.g. instrument volatility.

23

Settlement date mismatch

Settlement date of NOS does not match LP calculated settlement date. (custom)

99

Other

Catch all for other rejection reasons.
Additional information will be provided in Text field, if provided by the LP.

102

Speed Bump

Order rejected due to speed bump restrictions. (Custom)

113

Price Tolerance

Requested price is outside of LP tolerance range, e.g. due to market movement. (Custom)

114

Unsupported Price Improvement

Market has moved in favour of LC, but settings do not support price improvement. (Custom)






How was your Client Systems Wiki Experience? Submit Feedback

Copyright © 2024 CME Group Inc. All rights reserved.