uncertain and tell you so. If we treated it as failed and you placed it again, you could buy the shares twice.
What you see
POST /v1/orders returns 201 Created with state set to uncertain, and you receive an order.uncertain event. The reason field explains the state in words.
We never send an uncertain order again, and nothing is lost: the order stays on your list with its id, and it’s counted in full against your daily order value.
What to do
- Don’t place the same order again under a new
Idempotency-Key. - Wait for its next event, or retrieve it with
GET /v1/orders/{id}. - Act on the state it moves to:
Retrying with the same key is safe while you wait. It returns
200 OK with the order as it is now.
You can’t cancel an uncertain order. A cancel returns 409 order_not_cancelable until the order’s state is known.
How it resolves
Every 30 seconds we ask the broker about uncertain orders that are more than about a minute old. When the broker holds exactly one open order that matches yours and arrived while we were sending it, we record that it’s yours and move it topending or partially_filled. Anything we can’t match that way, our operators check with the broker and settle by hand: as held, rejected or never received.
Identical orders while one is uncertain
While an order is uncertain, we refuse an identical order on the same account under a new key: the samesymbol, side, quantity, type, time_in_force and price_kobo. You get 409 similar_order_unresolved, and we store nothing, so your new key stays free. We do this because the broker doesn’t echo our reference back, and two identical orders would leave us unable to tell which one it holds.
The error’s message names the uncertain order. Retrieve it until it settles:
- If it becomes
pending,partially_filledorfilled, the exchange has it. Sending your new request would place a second order. - If it becomes
rejectedorrefused, send your new request again with the same key.
Applications and allocations
Applications and allocations can also end inuncertain, for the same reasons. We don’t send them again, and our operators settle them with the broker.