Move Order
TRADING
channel in order to send trading messages.MOVE_ORDER
message allows you to reposition an existing limit order within the order book without requiring a full cancel and replace sequence. This offers efficiency and reduces the risk of missing market opportunities. Key advantages include requiring only a single network packet compared to a cancel/replace.Note
Key Considerations
Risk Management
reserve_price
parameter sets the maximum price the order can be moved to. If the requested price exceeds this limit, the move will fail with a MATCHING_MOVE_FAILED_PRICE_OVER_RISK_LIMIT
error. Specifying reserve_price will lock in that amount.Identification
order_id
(system-generated unique identifier) or the client_id
(user-defined identifier).Futures markets
Create Order Request with reserve price
{
"type": "CREATE_ORDER",
"order": {
"instrument_code": "BTC_EUR",
"type": "LIMIT",
"side": "BUY",
"amount": "0.01",
"price": "85000",
"time_in_force": "GOOD_TILL_CANCELLED",
"reserve_price": "90000" // this is optional for move orders & max we can move to
}
}
CreateOrderRequest
type
enum<string>
required
Allowed value:
CREATE_ORDER
order
object (CreateOrder)
required
instrument_code
string
required
type
enum<string>
required
Allowed value:
LIMIT
side
enum<string>
required
Allowed values:
BUYSELL
amount
string
required
price
string
required
client_id
string <uuid>
optional
time_in_force
enum<string>
optional
Allowed values:
GOOD_TILL_CANCELLEDIMMEDIATE_OR_CANCELLEDFILL_OR_KILLPOST_ONLY
reserve_price
string
optional
Move order by order id request
{
"type": "MOVE_ORDER",
"order": {
"order_id": "ac233037-7483-409e-942f-8f4bb38f373c",
"instrument_code": "BTC_EUR",
"price": "85100"
}
}
Move order by client id request
{
"type": "MOVE_ORDER",
"order": {
"client_id": "1daf8283-48c4-437b-90d7-7510bda55643",
"instrument_code": "BTC_EUR",
"price": "85100"
}
}
MoveOrderRequest
type
enum<string>
required
Allowed value:
MOVE_ORDER
order_id
string <uuid>
optional
client_id
not provided. The order_id of the order to move.client_id
string <uuid>
optional
order_id
not provided. The client_id of the order to move.instrument_code
string
required
price
string
required
Move order response
Success
{
"channel_name": "TRADING",
"type": "DONE",
"event": "ORDER",
"status": "MOVED",
"instrument_code": "SOL_EUR",
"client_id": "436afcec-7d88-4e8d-ac45-3439e3aed490",
"order_id": "a9ed7098-4f53-455a-9dc9-70444e8950a1",
"order_book_sequence": 71089343164,
"side": "BUY",
"price": "49",
"amount": "1",
"remaining": "1",
"bals": [
{
"c": "SOL",
"a": "10000000"
},
{
"c": "EUR",
"a": "1009950"
}
],
"lckd_bals": [
{
"c": "SOL",
"a": "0"
},
{
"c": "EUR",
"a": "100"
}
],
"time": 1743892870022076533
}
MoveOrderSuccessResponse
channel_name
enum<string>
required
Allowed value:
TRADING
type
enum<string>
deprecated
event
and status
fields.Allowed value:
DONE
event
enum<string>
required
Allowed value:
ORDER
status
enum<string>
required
Allowed value:
MOVED
instrument_code
string
required
client_id
string
required
order_id
string
required
order_book_sequence
integer
required
side
string
required
BUY
or SELL
price
string
required
amount
string
required
remaining
string
required
bals
array[object (TradingBalance) {2}]
required
c
string
required
a
string
required
lckd_bals
array[object (TradingBalance) {2}]
required
c
string
required
a
string
required
time
number
required
Error
{
"error": "MIN_PRICE_EXCEEDED_ERROR",
"payload": {
"type": "MOVE_ORDER",
"order": {
"order_id": "a9ed7098-4f53-455a-9dc9-70444e8950a1",
"instrument_code": "SOL_EUR"
}
}
}
OrderErrorResponse
error
enum<string>
required
Allowed values:
PRICE_PRECISION_FIELD_ERRORAMOUNT_PRECISION_FIELD_ERRORCLIENT_ID_ERRORORDER_ID_ERRORTIME_IN_FORCE_ERRORORDER_TYPE_NOT_SUPPORTED_ERRORPAIR_ERRORUNSUPPORTED_COMMANDINVALID_FORMATPRICE_FORMAT_ERRORQUANTITY_FORMAT_ERRORMAX_OPEN_ORDERS_EXCEEDEDORDER_NOT_FOUNDMAX_ORDER_SIZE_EXCEEDEDMIN_NOTIONAL_ERRORTYPE_FIELD_NOT_FIRSTMIN_PRICE_EXCEEDED_ERRORMAX_PRICE_EXCEEDED_ERRORSUSPENDED_PAIRPRICE_OUT_OF_COLLAR_ERRORMAX_ORDER_VOLUME_ERRORMAX_ORDER_VALUE_ERRORONLY_POST_ONLY_ALLOWED_ERROR
payload
object
required