Appearance
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
| Header | Required | Description |
|---|---|---|
X-Api-Key | ✅ | Your merchant API key |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | ✅* | Internal trade ID |
merchant_tx_id | string | ✅* | 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
| Field | Type | Description |
|---|---|---|
id | integer | Internal trade ID |
merchant_tx_id | string | Your transaction ID |
status | string | Current trade status |
bot_steam_id | integer | null | Steam ID of the trading bot |
bot_name | string | null | Name of the trading bot |
trade_offer_id | string | null | Steam trade offer ID |
trade_offer_expiry_at | string | null | When the offer expires |
success_url | string | Success redirect URL (only present if set on the deposit) |
fail_url | string | Failure redirect URL (only present if set on the deposit) |
custom_currency | string | null | Custom currency code |
custom_currency_multiplier | number | null | Currency multiplier |
custom_currency_rate | number | null | Currency exchange rate |
custom_currency_sum | number | null | Computed amount in custom currency |
hold_end_date | string | null | ISO 8601 timestamp indicating when the Steam trade hold ends. Only present when status is hold. |
fail_reason | string | null | Reason for failure or cancellation. Only present when status is failed or canceled. 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
| Status | Description | Final? |
|---|---|---|
new | Deposit created, not yet processed | No |
pending | Trade offer sent, waiting for user to accept | No |
active | Trade offer accepted by user, being processed | No |
hold | Items on Steam trade hold (7-day hold) | No |
completed | Trade successful, items received ✅ | Yes |
failed | Trade failed (user declined, items unavailable, etc.) ❌ | Yes |
canceled | Trade canceled by user or system | Yes |
reverted | Previously held trade was reversed | Yes |
TIP
For real-time updates, use Webhooks instead of polling.
Fail Reasons
When status is failed or canceled, the fail_reason field contains one of the following values:
| Value | Description |
|---|---|
provider_unavailable | Provider was unavailable |
insufficient_balance | Insufficient provider balance |
price_changed | Item price changed |
item_not_available | Item is no longer available |
item_specified_price_not_found | Item at specified price not found |
user_reverted | Trade reverted by user |
provider_reverted | Trade reverted by provider |
canceled_by_user | Canceled by user |
canceled_by_provider | Canceled by provider |
Errors
| Status | Message | Cause |
|---|---|---|
400 | validation error | Neither id nor merchant_tx_id provided |
401 | missing authorization header | X-Api-Key header not provided |
401 | invalid API key | API key not found or inactive |
403 | merchant account is disabled | Merchant account deactivated |
403 | invalid IP: <ip> | Request IP not in whitelist |
404 | not found error | No deposit matches the given ID |
