Skip to content
UDX
2026-08-11

Cancel Orders

Submit cancellation of one of the caller’s own resting orders.

RECEIVE/ws
Authorization
Authorization
UDX-Access-KeyAPI key · headerrequired

Opaque API key ID.

UDX-Access-TimestampAPI key · headerrequired

Unix time in milliseconds, within 30 seconds of server time.

UDX-Access-SignatureAPI key · headerrequired

Standard-base64 RSA-PSS/SHA-256 signature with a 32-byte salt. Sign timestamp + "GET" + "/ws"; the upgrade request has no body hash and no idempotency key.

Commands
cancel_orderSubmit cancellation of a resting order.
idCommandIdrequired

Client-assigned command correlation identifier, unique among commands in flight on this connection.

min 1 · max 9007199254740991
cmdstringrequired

Selects the cancel order command.

paramsCancelOrderCommandParamsrequired

One of the caller's own resting orders, addressed by its exchange-assigned order_id and the market ticker it belongs to.

Show properties
order_idEntityIdrequired

An exchange-assigned identifier. Treat it as an opaque, stable key with no internal structure.

min length 1
tickerTickerrequired

A human-meaningful natural key naming a single-leg or multi-leg market.

min length 1 · max length 128
idempotency_keyIdempotencyKey

Optional client-assigned key, reserved for future resend deduplication. UDX carries it then discards it; it is not deduplicated on yet, so a retry that reuses the key can repeat the write. Do not rely on it for retry safety.

min length 1 · max length 255
Replies
order_cancel_submittedConfirm the exchange accepted a cancel_order submission.
idCommandIdrequired

Client-assigned command correlation identifier, unique among commands in flight on this connection.

min 1 · max 9007199254740991
typestringrequired

Identifies a successful cancel_order response.

msgOrderWriteSubmittedPayloadrequired

The exchange accepted a write against an existing order for processing.

Show properties
order_idEntityIdrequired

An exchange-assigned identifier. Treat it as an opaque, stable key with no internal structure.

min length 1
rate_limitobject

Quota state after the charged command was admitted.

Show properties
bucketstringrequired

Shared member bucket consulted for this command.

Allowed:readwritecancel
capacityinteger<int64>required

Maximum tokens held by the bucket.

min 1 · max 10000000
refill_tokens_per_minuteinteger<int64>required

Tokens restored per minute.

min 1 · max 10000000
remaininginteger<int64>required

Tokens remaining after th decision.

min 0 · max 10000000
full_after_msinteger<int64>required

Milliseconds until the bucket is full if no more work is admitted.

min 0 · max 86400000
Errors
invalid_messageThe JSON or common command envelope is invalid.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
fieldstring

JSON path to the invalid field when one can be identified.

min length 1 · max length 255
invalid_paramsCommand params fail schema or semantic validation.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
fieldstring

JSON path to the invalid param when one can be identified.

min length 1 · max length 255
command_id_in_useAnother command with the supplied identifier is still in flight.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
order_not_foundThe addressed order is unknown, or is not the caller's to act on.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
permission_deniedThe caller lacks required access.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
capacity_exceededA standing-resource limit prevents command admission.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
scopestringrequired

Boundary at which the standing-resource limit applies.

Allowed:connectionmemberprocess
resourcestringrequired

Retained or concurrent resource that reached its limit.

Allowed:in_flight_commandsactive_subscriptionsmarket_data_streams
limitinteger<int64>required

Enforced maximum for the identified scope and resource.

min 1 · max 10000000
rate_limit_exceededA command rate limit was exceeded.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
retry_after_msinteger<int64>required

Minimum delay in milliseconds before another attempt.

min 1 · max 86400000
admission_unavailableShared admission policy or state is temporarily unavailable.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
internal_errorAn unexpected failure left connection state safe to continue.
codestringrequired

Stable machine-readable error code.

detailErrorDetailrequired

Human-readable occurrence detail that clients must not parse.

min length 1 · max length 500
instanceErrorInstancerequired

Request identifier for troubleshooting with exchange support.

max length 100 · matches ^urn:request-id:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Channel Bindings
Channel Bindings
ws
methodGET
headers
UDX-Access-Keystringrequired

Opaque API key ID.

min length 1 · max length 255
UDX-Access-Timestampstringrequired

Unix time in milliseconds, within 30 seconds of server time.

max length 13 · matches ^[0-9]{13}$
UDX-Access-Signaturestringrequired

Standard-base64 RSA-PSS/SHA-256 signature with a 32-byte salt. Sign timestamp + "GET" + "/ws"; the upgrade request has no body hash and no idempotency key.

min length 1 · max length 1024
Sec-WebSocket-Protocolstringrequired

Negotiated dated WebSocket API version.

Examples
cancel_order
{
  "id": 12,
  "cmd": "cancel_order",
  "params": {
    "order_id": "ORDER-EXAMPLE-1",
    "ticker": "UDX-EXAMPLE-MARKET"
  }
}
order_cancel_submitted
{
  "id": 12,
  "type": "order_cancel_submitted",
  "msg": {
    "order_id": "ORDER-EXAMPLE-1"
  },
  "rate_limit": {
    "bucket": "cancel",
    "capacity": 30,
    "refill_tokens_per_minute": 900,
    "remaining": 27,
    "full_after_ms": 260
  }
}
invalid_message
{
  "type": "error",
  "msg": {
    "code": "invalid_message",
    "detail": "WebSocket command is not a valid JSON object",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
  }
}
invalid_params
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "invalid_params",
    "detail": "the orderbook channel requires tickers",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef",
    "field": "params.channels"
  }
}
command_id_in_use
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "command_id_in_use",
    "detail": "WebSocket command ID is already in flight",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
  }
}
order_not_found
{
  "id": 12,
  "type": "error",
  "msg": {
    "code": "order_not_found",
    "detail": "the order was not found",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
  }
}
permission_denied
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "permission_denied",
    "detail": "the trade scope is required to create a request for quote",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
  }
}
capacity_exceeded
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "capacity_exceeded",
    "detail": "WebSocket connection command capacity is exhausted",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef",
    "scope": "connection",
    "resource": "in_flight_commands",
    "limit": 32
  }
}
rate_limit_exceeded
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "rate_limit_exceeded",
    "detail": "member read rate limit is exhausted",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef",
    "retry_after_ms": 1200
  },
  "rate_limit": {
    "bucket": "read",
    "capacity": 30,
    "refill_tokens_per_minute": 900,
    "remaining": 0,
    "full_after_ms": 2000
  }
}
admission_unavailable
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "admission_unavailable",
    "detail": "shared WebSocket admission is temporarily unavailable",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
  }
}
internal_error
{
  "id": 4,
  "type": "error",
  "msg": {
    "code": "internal_error",
    "detail": "WebSocket command failed",
    "instance": "urn:request-id:8f14e45f-ceea-4abc-a743-e89a34d3f6ef"
  }
}