API Reference

Execution Report <8>

The Execution Report <8> message is used to

  • Acknowledge the receipt of an order
  • Confirm changes to an existing order (i.e. cancelled or replaced)
  • Reject order

Tag

Field Name

Data Type

Req’d

Comments

Standard header - Outgoing

Y

MsgType 35=8

37

OrderID

string

N

Unique identifier for Order as assigned by the Exchange.

198

SecondaryOrderID

string

N

Unique identifier for Order as assigned by the Exchange(in a different format).

11

ClOrdID

string

Y

Unique identifier of the order as assigned by client.

41

OrigClOrdID

string

C

ClOrdID <11> of the existing order that the amend/cancel request want to execute.

453

NoPartyIDs

int

N

A repeating group (↺) which should contain unique combinations of below tags: PartyID <448> PartyIDSource <447> PartyRole <452>

↺ 448

PartyID

string

C

Party identifier/code. It can be an Exchange firm name or user unique identifier that is the same as tag 1. e.g. XXXX_GROUP.

↺ 447

PartyIDSource

string

N

Identifies class or source of PartyID <448> Valid value:

D - Proprietary/Custom code

↺ 452

PartyRole

int

N

Identifies the type of PartyID <448> Valid values:

1 - Executing Firm
12 - Executing Trader

17

ExecID

string

Y

Unique identifier of execution message as assigned by the Exchange.

527

SecondaryExecID

string

N

Unique identifier for executed fill as assigned by the Exchange(in a different format), an alphanumeric string of no more than 20 characters.

150

ExecType

string

Y

Describes the specific Execution Report while OrdStatus <39> will always identify the current order status. Valid values:

0 - New
4 - Canceled
5 - Replaced
8 - Rejected
9 - Suspended
C - Expired
D - Restated (new or partial fill)
F - Trade (partial fill or fill)

The supported combination of ExecType<150> and OrdStatus <39> is listed in the reference table below

39

OrdStatus

string

Y

Identifies current status of order. Valid values:

0 - New
1 - Partially filled
2 - Filled
4 - Cancelled
5 - Replaced
8 - Rejected
9 - Suspended
C - Expired

The supported combination of ExecType<150> and OrdStatus <39> is listed in the reference table below

103

OrdRejReason

int

N

Code to identify the reason for order rejection.

378

ExecRestatement

int

N

Code to identify reason for an ExecutionRpt <8> message sent with ExecType <150> is Restated <D>.

Valid values:
8 - Market (Exchange) Option
99 - Other

382

NoContraBrokers

int

N

Number of repeating groups of contra brokers

↺ 375

ContraBroker

string

N

Can be used to provide additional trade into by executing system. Required if NoContraBroker <382> is > 0.

1

Account

string

Y

The Exchange user uuid which is the same as the one specify in Logon <A> message Username <553> field.

660

AcctIDSource

int

Y

Uses to identify the source of the Account <1> code. Valid value:

99 - Other (custom or proprietary).

63

SettleType

int

Y

Indicates order settlement period. Valid value:

0 - Regular

55

Symbol

string

Y

Currency-pair.

54

Side

int

Y

Side of order. Valid values:

1 - Buy
2 - Sell

31

LastPx

float

C

The price of this trade. Required if ExecType = TRADE (150=F)

32

LastQty

float

C

The quantity bought / sold on this trade. Required if ExecType = TRADE (150=F)

854

QtyType

int

Y

Type of quantity. Valid values:
0 - Units (currency)

38

OrderQty

float

C

Quantity to trade. Not required if OrdStatus = REJECTED (39=8)

40

OrdType

int

Y

Order type. Valid values:

1 = Market
2 = Limit

59

TimeInForce

int

N

Specifies how long the order remains in effect. Valid values:
0 - Day
1 - Good Till Cancel (GTC)
3 - Immediate or Cancel (IOC)
4 - Fill or Kill (FOK)
6 - Good Till Day (GTD)

NOTES:

  • Exchange will convert to Day automatically if invalid value detected. For market orders, TimeInForce will be ignored.
  • A Day order will expire after 23:59:59 UTC of the same day it was posted on.

18

ExecInst

string

N

The execution instruction flags for the order. Multiple values should be space delimited. Valid value:

6 - PostOnly

126

ExpireTime

timestamp

C

The time of order expiration (UTC). Required if TimeInForce is GTD (59=6) and ExpireDate <432> is not present in the message. The order will expire on ExpireTime of the same day the order is entered.

432

ExpireDate

timestamp

C

The date of order expiration (local market date, in UTC time). Required if TimeInForce is GTD (59=6) and ExpireTime <126> is not present in the message. The order will expire after 23:59:59 UTC on ExpireDate .

423

PriceType

int

C

Code to represent the price type. Valid values:
2 = Per unit Populated if at least one of the price fields is present.

44

Price

float

C

Price per unit of quantity (e.g. per 1 BTC coin).
successfully placed orders:Required if present on the order request.
rejected orders: not required

1057

AggressorIndicator

boolean

N

Used to identify whether the order initiator is an aggressor or not in the trade. Valid values:

Y - Order initiator is aggressor
N - Order initiator is passive

151

LeavesQty

float

Y

Outstanding quantity for further execution.

14

CumQty

float

Y

Total quantity filled.

6

AvgPx

float

Y

Calculated average price of all fills on this order.

75

TradeDate

string

N

Indicates date of trade (UTC) referenced in YYYYMMDD format.

60

TransactTime

timestamp

Y

Time of execution/order creation in UTC i.e. yyyyMMdd-hh:mm:ss:xxx

381

GrossTradeAmt

float

N

Total amount traded (e.g. CumQty <14> x AvgPx <6>) expressed in units of currency.

119

SettlCurrAmt

float

Y

Total amount due expressed in settlement currency.

120

SettlCurrency

string

Y

Currency code of settlement denomination. Valid values:

USD
USDT

155

SettlCurrFxRate

float

N

Foreign exchange rate used to compute SettlCurrAmt <119> from Currency <15> to SettlCurrency <120>

156

SettlCurrFxRateCalc

char

N

Specifies whether or not SettlCurrFxRate (155) should be multiplied or divided. Valid values:

M - Multiply
D - Divide

110

MinQty

float

N

Minimum quantity of the order to be executed.

111

MaxFloor

float

N

Maximum quantity within the order to be shown on the exchange at any given time.

136

NoMiscFee

int

N

Number of repeating groups of miscellaneous fees.

↺ 137

MiscFeeAmt

float

C

Miscellaneous fee value. Required if NoMiscFees > 0 and must be the first field in this group.

↺ 138

MiscFeeCurr

string

N

Currency of miscellaneous fee. Valid values:

USD
USDT

↺ 139

MiscFeeType

int

N

Indicates type of miscellaneous fee. Valid value:

7 = Other

797

CopyMsgIndicator

boolean

N

Indicates whether or not this message is a drop copy of another message.

58

Text

string

Y

providing supplemental information on the order.

Standard trailer

Y

Tag 150 & 39 tag combinations

Below is a table of the supported combination of ExecType <150> and OrdStatus <39>

ExecType

<

150>

OrdStatus

<

39>

Comments

0 = New

0 = New

New order placed

4 = Cancelled

4 = Cancelled

Order cancelled

5 = Replaced

0 = New

1 = Partially filled

9 = Suspended

C = Expired

Order that had not received any fills is now replaced

Order was partially filled and then replaced

Order was amended to be suspended (e.g. at the beginning of cycle, GTC orders get suspended by the Exchange)

Order was amended to be expired (e.g. due to self trade)

8 = Rejected

8 = Rejected

Order rejected

9 = Suspended

9 = Suspended

When market moved from AUCTION to CONTINUOUS, the Exchange sends out the 2nd Ack for orders placed during AUCTION

C = Expired

C = Expired

Order expired

D = Restated

0 = New

1 = Partially filled

When market moved from AUCTION to CONTINUOUS, the Exchange sends out the 3rd Ack for orders placed during AUCTION to move it into active state

Order restated and was partially filled

F = Trade

1 = Partially filled

2 = Filled

Execution received and order is partially filled

Execution received and order is fully filled