Skip to main content
POST
This endpoint is currently available in Sandbox only. It is not yet available in Production.
In Sandbox the orders you create are not stored, so a replayed clientOrderId returns the same order id with a 201, and reusing it with a different payload is not refused.

Accounts

The origin and destination objects identify the accounts the amount leaves and the proceeds are credited to. Both must belong to the same user, and the origin must hold the amount when the order is created. On a sell the origin is the base asset account and the destination the quote asset account, and a buy is the other way round.

Quantity and price

The order is sized by its quantity, in the base asset of the pair. The assets traded are the ones of the origin and destination accounts, and the side says which of them is the base asset. A price is required on a limit order and not allowed on a market order. The venue holds the bounds the quantity and the price must respect, so an order that breaks one is refused with a 409 whose details name the rule and its limit. A pair that cannot be traded is refused with asset_pair_not_supported. Read more about type and side.

Client order id

The clientOrderId is an idempotency key. Replaying it returns the existing order with a 200, and reusing it with a different payload is refused.
After a 5xx or a timeout, replay the same clientOrderId before anything else. Never send a new one until the replay has answered, or the amount may be traded twice.

Order outcome

A 201 means the order was created, not that it traded: check its status and timeline. A fill-or-kill order that could not fill in full comes back closed with a canceled event and its reason. Read more about the order lifecycle.

Authorizations

Authorization
string
header
required

OAuth 2.0

Body

application/json
clientOrderId
string
required

A unique key you choose for the order. Replaying it returns the existing order.

Required string length: 1 - 64
side
enum<string>
required

Whether the base asset is bought or sold.

Available options:
buy,
sell
type
enum<string>
required

The type of the order.

Available options:
market,
limit
origin
object
required

The account the traded amount leaves.

destination
object
required

The account the proceeds are credited to.

quantity
string
required

The quantity of the base asset to trade.

Pattern: ^(?!0+(\.0+)?$)\d+(\.\d+)?$
timeInForce
enum<string>
required

How long the order stays active. Only fok is supported for now.

Available options:
fok
price
string

The limit price, in the quote asset per one unit of the base asset. Required on a limit order, and not allowed on a market order.

Pattern: ^(?!0+(\.0+)?$)\d+(\.\d+)?$

Response

Order already existed.

order
object
required