Skip to content

Deposit Status ​

GET /api/v1/merchant/deposit/status

Retrieves the current status of a deposit. Look up by internal id or your merchant_tx_id.

Request ​

Headers ​

HeaderRequiredDescription
X-Api-Key✅Your merchant API key

Query Parameters ​

ParameterTypeRequiredDescription
idinteger✅*Internal trade ID
merchant_tx_idstring✅*Your transaction ID

* At least one of id or merchant_tx_id is required.

Response ​

json
{
  "success": true,
  "message": "Deposit status fetched successfully",
  "data": {
    "id": 42,
    "merchant_tx_id": "order-12345",
    "status": "completed",
    "bot_steam_id": 76561199012345678,
    "bot_name": "Skinslink Bot #3",
    "trade_offer_id": "6912345678",
    "trade_offer_expiry_at": "2026-02-16T12:30:00Z",
    "success_url": "https://yoursite.com/deposit/success",
    "fail_url": "https://yoursite.com/deposit/failed",
    "custom_currency": "EUR",
    "custom_currency_multiplier": 1.0,
    "custom_currency_rate": 0.92,
    "custom_currency_sum": 33.35
  }
}

Response Fields ​

FieldTypeDescription
idintegerInternal trade ID
merchant_tx_idstringYour transaction ID
statusstringCurrent trade status
bot_steam_idinteger | nullSteam ID of the trading bot
bot_namestring | nullName of the trading bot
trade_offer_idstring | nullSteam trade offer ID
trade_offer_expiry_atstring | nullWhen the offer expires
success_urlstringSuccess redirect URL (only present if set on the deposit)
fail_urlstringFailure redirect URL (only present if set on the deposit)
custom_currencystring | nullCustom currency code
custom_currency_multipliernumber | nullCurrency multiplier
custom_currency_ratenumber | nullCurrency exchange rate
custom_currency_sumnumber | nullComputed amount in custom currency
hold_end_datestring | nullISO 8601 timestamp indicating when the Steam trade hold ends. Only present when status is hold.
fail_reasonstring | nullReason for failure, cancellation or reversal. Present when status is failed, canceled or reverted; on reverted it is user_reverted or skinslink_reverted. See Fail Reasons below.

INFO

Custom currency fields are only included when the trade status is hold or completed.

Examples ​

By merchant_tx_id ​

bash
curl "https://api.skinslink.com/api/v1/merchant/deposit/status?merchant_tx_id=order-12345" \
  -H "X-Api-Key: your-api-key"

By internal ID ​

bash
curl "https://api.skinslink.com/api/v1/merchant/deposit/status?id=42" \
  -H "X-Api-Key: your-api-key"

Trade Statuses ​

StatusDescriptionFinal?
newDeposit created, not yet processedNo
pendingTrade offer sent, waiting for user to acceptNo
activeTrade offer accepted by user, being processedNo
holdItems on Steam trade hold (7-day hold)No
completedTrade successful, items received ✅Yes
failedTrade failed (user declined, items unavailable, etc.) ❌Yes
canceledTrade canceled by user or systemYes
revertedPreviously held trade was reversedYes

TIP

For real-time updates, use Webhooks instead of polling.

Fail Reasons ​

When status is failed, canceled or reverted, the fail_reason field contains one of the following values (on reverted it is always user_reverted or skinslink_reverted):

ValueDescription
service_unavailableSkinslink was unavailable
insufficient_balanceInsufficient balance
price_changedItem price changed
item_not_availableItem is no longer available
item_specified_price_not_foundItem at specified price not found
user_revertedTrade reverted by user
skinslink_revertedTrade reverted by Skinslink
canceled_by_userCanceled by user
canceled_by_skinslinkCanceled by Skinslink

Errors ​

StatusMessageCause
400validation errorNeither id nor merchant_tx_id provided
401missing authorization headerX-Api-Key header not provided
401invalid API keyAPI key not found or inactive
403merchant account is disabledMerchant account deactivated
403IP not whitelisted: <ip>Request IP not in whitelist
404not found errorNo deposit matches the given ID