SPOT_TRADE | Success: 200 OK, returning the updated order with status: "CANCELED" and terminalAt set.A failed cancel is not a cancelled order, and it is not a failed order
On 501,409and503alike, nothing is released and no status is written. We never infer an outcome from a cancel we could not complete. Your order keeps whatever status it had, and it is reconciled against the venue on its own schedule.Always re-read GET /v1/orders/{id}instead of assuming. Assuming "cancelled" leaves you blind to a fill. Assuming "failed" and placing a replacement leaves you with two live orders.
| Status | code | What it means |
|---|---|---|
400 | ORDER_ALREADY_TERMINAL | The order already finished, for example "order is already FILLED and cannot be canceled" |
400 | VALIDATION_ERROR | Missing Idempotency-Key, or a malformed id |
404 | NOT_FOUND | Unknown order, or one that is not yours |
501 | CANCEL_NOT_SUPPORTED | This market runs on the internal matching engine, which has no cancel endpoint. The order stays open and may still fill. Do not poll expecting a cancellation |
409 | CANCEL_REJECTED_BY_VENUE | The exchange answered and refused. It is already gone, already filled, or not cancellable there. details.venueCode carries the exchange's own code, or null if it gave none. Retrying will fail identically |
503 | VENUE_UNAVAILABLE | We could not get a usable answer from the exchange at all. Whether the cancel landed is genuinely unknown. Retryable after a short back-off |