Skip to main content

POST /client/trading/deposit

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

POST https://api.assetpay.co/client/trading/deposit
Content-Type: application/json
Authorization: CLIENT_TOKEN

{
  "items": [
    {
      "itemId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "offer": {
        "price": 10.75,
        "reference": "ref_abc123"
      }
    }
  ],
  "game": "730",
  "externalId": "dep_unique_123",
  "isInstant": true
}

Body Parameters

ParameterTypeRequiredDescription
itemsarrayYesItems to deposit (min 1)
items[].itemIdstringYesItem ID from inventory (5-256 chars)
items[].offerobjectNoPrice and reference. If omitted, sells at best available offer.
items[].offer.pricenumberYes*Offer price in USD (*required if offer is provided)
items[].offer.referencestringYes*Offer reference from inventory (*required if offer is provided)
items[].amountnumberNoQuantity for stackable Rust items (default: 1, max: 10000)
gamestringNo"730" or "252490". Defaults to "730".
externalIdstringNoYour unique tracking ID (max 128 chars). Must be unique per trade.
isInstantbooleanNoRequest instant credit during hold period (default: true)

Response

{
  "requestId": "...",
  "success": true,
  "data": {
    "id": "trade-uuid",
    "type": "DEPOSIT",
    "status": "INITIATED",
    "game": "730",
    "externalId": "dep_unique_123",
    "merchantId": "merchant-uuid",
    "clientUserId": "client-uuid",
    "clientSteamID": "76561198012345678",
    "clientTradeUrl": "https://steamcommunity.com/tradeoffer/new/?partner=...",
    "items": [
      {
        "id": "a1b2c3d4-...",
        "name": "AK-47 | Redline",
        "marketHashName": "AK-47 | Redline (Field-Tested)",
        "type": "Rifle",
        "iconUrl": "IzMF03bk9WpSBq-S-ekoE33L-iLqGFHVaU25ZzQNQcXdA3g5gMEPvUZZEfSMJ6dESN8p_2SVTY7V2N4MxGVIwXpaL3_a3Hh...",
        "appid": 730,
        "contextid": 2,
        "tradable": true,
        "accepted": true,
        "marketPrice": 12.50,
        "offer": {
          "price": 10.75,
          "reference": "ref_abc123"
        },
        "exterior": "Field-Tested",
        "wear": "0.25432"
      }
    ],
    "totalPrice": 10.75,
    "isInstant": true,
    "createdAt": "2026-03-04T10:00:00.000Z",
    "updatedAt": "2026-03-04T10:00:00.000Z"
  }
}
The response is a full ITrade object. After creation, the trade progresses through callbacks. See Trade Lifecycle.

Rate Limits

Merchant StatusLimit
Verified500 requests / min
Unverified5 requests / min
Shared across all clients of the same merchant.

Errors

CodeKeyWhen
1EXTERNAL_ID_EXISTSThe externalId is already in use
2MISSING_ITEMSEmpty items array
3INVENTORY_FETCH_FAILEDCouldn’t load user’s inventory
4NO_OFFER_FOUNDNo valid offer for this item
6TOO_MANY_ACTIVE_TRADESUser has too many pending trades
7USER_NOT_TRADEABLEUser’s Steam account can’t trade
8TOO_MANY_ITEMSToo many items in one request
9ITEMS_UNAVAILABLEItems not found in inventory
10ITEMS_NOT_ACCEPTEDItems not accepted for deposit
11PRICE_CHANGEDOffer price has changed since fetch
14INVALID_TRADEURLUser’s trade URL is invalid
21DEPOSIT_IN_PROGRESSAnother deposit is already processing for this user