Skip to main content
Initiates a deposit (sell) trade. The user’s items are sent via Steam trade offer and the value is credited to your merchant balance. Authentication: Client Token (Authorization header)

Request

Body Parameters

Response

The response is a full Trade object. After creation, the trade progresses through callbacks. See Trade Lifecycle. preCredit, pendingCredit and collateral are already present on the creation response. For CS2, preCredit is what will be credited when the trade enters hold and pendingCredit the remainder. A Rust deposit has no hold: it carries preCredit equal to totalPrice and pendingCredit 0, and the full amount is credited on completed. collateral appears only on this response and never on callbacks.

Split baskets

A basket can be split into several trades internally, for example when some items are routed to a deposit provider and the rest go through AssetPay’s own bots. Each trade gets its own Steam offer and its own callbacks. The response body is the largest trade (the primary), and the others ride along in relatedTrades[], each a full Trade object. Only the primary carries your externalId. Instant credit is decided once for the whole basket and apportioned across the trades. If some of the trades fail to dispatch, the request still succeeds with the ones that went out; it only fails when none did.

Rate Limits

Per-merchant tier throttle (shared across all clients of the same merchant): Per-client guard (scoped per (merchant, clientSteamId)): An “active” deposit is any not-yet-accepted trade (initiated, pending or active). The per-client guard runs before pricing/inventory fetches, so rate-limited requests bail cheap.

Errors