Deposits
A deposit is when a user sells their skin to your platform. The user sends their item via a Steam trade offer, and you receive the value as balance.The Deposit Flow
Fetch inventory
Call
GET /client/inventory to get the user’s tradeable items with current offer prices.Initiate deposit
Call
POST /client/trading/deposit with the selected items, their offer prices, and references.Trade offer sent
AssetPay automatically sends a Steam trade offer to the user. The trade moves to
PENDING.Hold period (CS2 only)
For CS2, Steam enforces a 7-day trade protection period. The trade stays in
HOLD until it ends. Rust trades skip this step entirely and go straight to COMPLETED.Single-Item Deposit
Multi-Item Deposit
You can deposit multiple items in a single trade. Pass them all in theitems array:
amount:
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
items | array | Yes | Array of items to deposit (min 1) |
items[].itemId | string | Yes | Item ID from the inventory response |
items[].offer | object | No | Offer price and reference. If omitted, the item sells at the current best offer. |
items[].offer.price | number | Yes* | The offer price in USD (*required if offer is provided) |
items[].offer.reference | string | Yes* | The offer reference from inventory (*required if offer is provided) |
items[].amount | number | No | Quantity for stackable items (default: 1) |
game | string | No | "730" (CS2) or "252490" (Rust). Defaults to "730". |
externalId | string | No | Your unique tracking ID (max 128 chars). Stored as externalId on the trade. |
isInstant | boolean | No | Whether to request instant credit (default: true). |
Response
The response contains the full trade object:Instant Deposits
By default,isInstant is true. When enabled, AssetPay calculates how much of the deposit value can be credited instantly based on collateral, rather than waiting for the full 7-day hold period.
When a deposit enters HOLD status, the trade object includes:
preCredit- the amount credited instantly (USD)pendingCredit- the remaining amount held until the hold period endscollateral- breakdown of collateral sources
isInstant is set to false, the entire amount waits until COMPLETED.
The collateral field in the inventory response tells you the total instant credit available for that user before they start depositing.
External ID
TheexternalId field is your own tracking identifier. Use it to link AssetPay trades back to records in your system.
Balance Handling for Deposits
When to credit:| Event | Action |
|---|---|
HOLD | Credit preCredit amount (if using instant deposits) |
COMPLETED | Credit pendingCredit (the remaining held amount) |
REVERTED | Reverse any instant credit that was applied |
| Event | Action |
|---|---|
INITIATED | Just acknowledge |
PENDING | Just acknowledge |
ACTIVE | Just acknowledge |
FAILED | No credit needed |