Skip to main content
Merchant-facing equivalent of POST /client/trading/withdraw/{tradeId}/items/{itemId}/cancel. Requests cancellation of a single undelivered item from one of your own self-trade buys. AssetPay asks the marketplace supplier to cancel the purchase; on success your merchant wallet is refunded automatically. To cancel the whole order in one call, use POST /secure/buy/{tradeId}/cancel instead. Authentication: Merchant API Key (api-key header) Scope: CORE_ACCESS
CS2 (Assetpay) items only. Rust buys are fulfilled by a polling supplier with no cancel API, and autoseller-sourced items leave nothing to reverse upstream; both return TRADE_CANCEL_UNSUPPORTED (44). Only self-trade buys (source: "self") are cancellable through this endpoint.

Request

Path Parameters

When an item can be cancelled

A cancel is only accepted when all of the following hold:
  • The item belongs to a self-trade (source: "self") buy owned by the authenticated merchant.
  • The item is a CS2 (Assetpay) item that was not sourced from the autoseller pool.
  • The item is at least 30 minutes old (measured from when it was created).
  • The item is not already in a terminal state (completed, failed, reverted, canceled).

Response

externalId echoes your own per-item reference and is omitted when you did not supply one. A 200 only confirms the marketplace accepted the cancellation. AssetPay does not change the item state inline — the refund and the transition to canceled arrive asynchronously through the standard trade.* callback. Poll GET /secure/trades/{tradeId} or rely on callbacks for the final state.
A cancel lands on canceled, not reverted. reverted is for a delivered item that came back afterwards.

Rate Limits

Errors