Trade

Every price or size values should be represented with FineryMarkets internal corresponding types.

Description of all the types can be found here.

New Order Single<D>

Sent by the client to submit a new order. Execution Report<8> sent to the client to provide information about the order execution.

TagNameRequiredExampleDescription

11

ClOrdID

Y

123

Unique identifier of the order as assigned by the client, should be integral number, >0

55

Symbol

Y

BTC-USD

Instrument name

44

Price

N

1

Price, value of type Price

38

OrderQty

N

1

Size of the order(if the order is by size), value of type Size

152

CashOrderQty

N

1

Volume of the order(if the order is by volume), value of type Size

40

OrdType

Y

1

Order Type(see below)

54

Side

Y

1

Side of the order(see below)

59

TimeInForce

Y

1

Specifies how long the order remains in effect(see below)

60

TransactTime

Y

20230530-09:29:52.722

UTC Timestamp of the order creation

Order TypeDescription

1

Market (Taker only)

2

Limit

Order SideDescription

1

Buy

2

Sell

Time In ForceDescription

1

Good Till Cancel (GTC) - Maker

3

Immediate or Cancel (IOC) - Taker

4

Fill or Kill (FOK) - Taker

P

PostOnly - Maker

Either OrderQty<38> or CashOrderQty<152> field should present.

Execution Report<8>

Sent by the server whenever an order receives a fill, whenever the status of an order changes, or in response to a NewOrderSingle<D>, OrderCancelRequest<F> and OrderCancel/Replace Request<G> message from the client.

TagNameRequiredExampleDescription

37

OrderID

Y

1

Unique order Id, generated by the server

11

ClOrdID

Y

2

Unique identifier of the order as assigned by the client

151

LeavesQty

Y

1

Quantity open for further execution, value of type Size

17

ExecID

N

123

Deal id in case of ExecType<150> == TRADE. Same as OrderID<37> otherwise.

55

Symbol

N

BTC-USD

Instrument name

54

Side

N

1

“1” - Buy, “2” - Sell

38

OrderQty

N

1

Original order quantity, value of type Size

44

Price

N

10

Original Order Price, value of type Price

31

LastPx

N

1000

Current fill price. Only present if this message was the result of a fill, value of type Price

32

LastQty

N

2

Current fill quantity. Only present if this message was the result of a fill, value of type Size

39

OrdStatus

Y

2

Identifies current status of order(see below)

150

ExecType

Y

2

Describes the specific Execution Report(see below)

58

Text

N

79

In case the order was declined by the Finery Markets, this field contains Finery Markets error code

136

NoMiscFees

N

1

If present should always be 1 Following group describes markup applied to the deal

137

=> MiscFeeAmt

N

10

Required if NoMiscFees<136> is present. Markup size.

139

=> MiscFeeType

N

8

Required if NoMiscFees<136> is present. Should always be 8 for Markup.

958

CounterpartyID

N

1234

FineryMarkets id of the counterparty

Order StatusDescription

0

New

1

Partially filled

2

Filled

4

Canceled

5

Replaced

8

Rejected

Exec TypeDescription

0

New

F

Trade

4

Canceled

5

Replaced

8

Rejected

ExecType<150> indicates the reason why the Execution Report<8> message was sent. And Order Status indicates the current state of the order.

For every order Execution Report<8> with ExecType<150> == 0 should be generated.

When no further execution is possible Execution Report<8> with either ExecType<150> == F and OrderStatus<39> == 2 or ExecType<150> == 4 and OrderStatus<39> == 4 should be generated.

Order Cancel Request<F>

The Order Cancel Request<F> message requests the cancellation of all of the remaining quantity of an existing order. Note that the Order Cancel/Replace Request<G> should be used to partially cancel (reduce) an order).

TagNameRequiredExampleDescription

37

OrderID

N

1

Unique order Id, generated by the server, of the order to cancel

11

ClOrdID

Y

2

Unique identifier of the order as assigned by the client

41

OrigClOrdID

N

3

ClOrdID <11> of the order to cancel

54

Side

Y

1

Side of the order(see above)

60

TransactTime

Y

20230530-09:29:52.722

UTC Timestamp of the order creation

Either OrderID<37> or OrigClOrdID<41> should be present.

Order Cancel Reject<9>

The Order Cancel Reject <9> message is issued by the server upon receipt of a Order Cancel Request<F> or Order Cancel/Replace Request<G> message which cannot be honored.

TagNameRequiredExampleDescription

37

OrderID

N

1

Unique order Id, generated by the server, copied from request message

11

ClOrdID

Y

2

Request Id assigned by the client, copied from request message

41

OrigClOrdID

N

3

ClOrdID <11> of the previous non-rejected order, copied from request message

434

CxlRejResponseTo

Y

1

Identifies the type of request that a Cancel Reject <9> is in response to(see below)

102

CxlRejReason

N

99

Reject Reason Code. If CxlRejReason == 99, Text<58> field contains FineryMarkets error code.

58

Text

N

Invalid OrderID.

Human-readable reject reason

CxlRejResponseToDescription

1

Order Cancel Request<F> was rejected

2

Order Cancel/Replace Request<G> was rejected

Order Cancel/Replace Request<G>

The Order Cancel/Replace Request<G> (a.k.a. Order Modification Request) is used to change the parameters of an existing order. Do not use this message to cancel the remaining quantity of an outstanding order, use the Order Cancel Request<F> message for this purpose.

TagNameRequiredExampleDescription

37

OrderID

Y

1

Unique order Id, generated by the server, of the order to cancel/replace

11

ClOrdID

Y

2

Request Id assigned by the client

44

Price

Y

3

Price, value of type Price

38

OrderQty

Y

4

Initial size of replace result will be OrderQty - (old order initial size - old order remaining size)

40

OrdType

Y

1

Order Type (see above) should be the same as in the original order

54

Side

Y

1

Side of the order(see above) should be the same as in the original order

60

TransactTime

Y

20230530-09:29:52.722

UTC Timestamp of the order creation

Last updated