Spot Order Lifecycle
This page describes the states a spot order moves through after you place it. Status values are returned in the status field of every order response.
Status values
| Status | Description |
|---|---|
OPEN | Order has been accepted; no fills yet. |
PARTIALLY_EXECUTED | Order has been partially executed. Non-terminal — may continue to fill, be cancelled, or expire. |
EXECUTED | Order has fully executed. Terminal. |
CANCELLED | User has cancelled the order. Terminal. |
EXPIRED | Order has expired. Terminal. |
DISCARDED | Order was rejected before reaching the exchange. Terminal. |
CANCELLATION_RAISED | Intermediate state. Cancellation requested at the exchange but not yet confirmed. Resolves to CANCELLED. |
EXPIRATION_RAISED | Intermediate state. Expiration requested at the exchange but not yet confirmed. Resolves to EXPIRED. |
State machine
Key behaviors
PARTIALLY_EXECUTEDis not terminal in spot. A partially-filled order continues working until it fills, is cancelled, or expires. (This differs from Futures, wherePARTIALLY_EXECUTEDis terminal.)- Cancellation is two-phase. When you call
DELETE /trade/api/v2/order, the order moves toCANCELLATION_RAISEDwhile we ask the exchange to cancel; once confirmed it becomesCANCELLED. Don't treatCANCELLATION_RAISEDas fully cancelled — the order may have filled in the meantime. - Expiration behaves the same way (
EXPIRATION_RAISED→EXPIRED). DISCARDEDmeans the order failed validation or was rejected before being placed on the exchange. Inspect the response message to find out why.
To stream status changes in real time instead of polling, subscribe to the Order Updates WebSocket — it pushes a message every time status changes.