Merchant API v2
Overview
General
General Information
Generate a signature
Deposits
Getting started
Create a deposit
Create a deposit without redirection (iframe)
Deposit notification (webhook)
Check an deposit status
Get a list of deposits
Deposits without 8-day waiting period (Steam Trade Protection)
Deposit approval with 8-day hold
Get failed webhook notifications
Deposits without SkinsBack UI
Create a deposit without SkinsBack UI (API)
Get user's inventory
Skins Withdraw
Skins price list
Skins search
Buy skin
Bulk buy skins
Get skin purchase info
Skin purchase history
Cancel skin purchase
Other
Get the project balance
Get the history of withdrawals and deposits of money
Get currencies and rates
Server status
Events real-time: websockets
Events real-time: webhooks
Cancel skin purchase
This method submits a cancel request for P2P skins that are waiting for trade creation. Cancel requests are available only 30 minutes after purchase creation.
The required parameters are highlighted in blue.
Send a POST request to API Endpoint with the following parameters:
method
string
market_cancel
custom_ids
array
'custom_id's in your system. If this parameter is specified, the response will contain an items array containing information on each purchase.
Response from the server:
If successful, a JSON object with the following contents will be sent in response:
items
array
An array of the elements described below
unavailable
object
For a mixed request, this object contains the custom_id and error for purchases that cannot be cancelled yet. error_details.available_at contains the cancellation time as a UNIX timestamp.
'items' structure
item
object
An object containing information about the purchased skin
— item.id
int
Skin ID
— item.name
string
Skin name
— item.price
float
Skin price in USD
— item.delivery_type
int
Delivery type: 1 = Instant, 2 = Slow
— item.classid
string
Class ID of skin
buy_id
int
Skin purchase ID
offer_status
string
Skin purchase status:
1. 'creating_trade' — trade in the process of creation
2. 'waiting_accept' — waiting for trade accept
3. 'accepted' — trade accepted
4. 'canceled' — the trade was rejected by the user
5. 'timeout' — timeout (10 minutes)
6. 'invalid_trade_token' — invalid trade token
7. 'user_not_tradable' — the user has trade restrictions
8. 'trade_create_error' — error of creating a trade (try again)
9. 'rollback_user' — skin has been returned by user (Steam Trade Protection)
10. 'rollback_supplier' — skin has been returned by supplier (Steam Trade Protection)
1. 'creating_trade' — trade in the process of creation
2. 'waiting_accept' — waiting for trade accept
3. 'accepted' — trade accepted
4. 'canceled' — the trade was rejected by the user
5. 'timeout' — timeout (10 minutes)
6. 'invalid_trade_token' — invalid trade token
7. 'user_not_tradable' — the user has trade restrictions
8. 'trade_create_error' — error of creating a trade (try again)
9. 'rollback_user' — skin has been returned by user (Steam Trade Protection)
10. 'rollback_supplier' — skin has been returned by supplier (Steam Trade Protection)
in_hold
bool
Is the skin in hold or not
in_hold_until
string (datetime)
The date until which the skin will be on hold (a rollback may be made)
error_reason
string
Reason (if present):
1. 'user_cant_trade' - user has a restriction on trading in Steam
2. 'private_inventory' - user needs to open inventory
3. 'user_trade_ban' - user has Trade Ban
4. 'user_inventory_is_full' - user's inventory is full
5. 'too_many_failed_attempts' - too many failed withdrawal attempts for user
6. 'skin_unavailable' - skin unavailable for purchase (or sold)
7. 'p2p_purchase_canceled_by_user' - P2P purchase was canceled by the user
8. 'p2p_purchase_canceled_by_system' - P2P purchase was automatically canceled by the system
1. 'user_cant_trade' - user has a restriction on trading in Steam
2. 'private_inventory' - user needs to open inventory
3. 'user_trade_ban' - user has Trade Ban
4. 'user_inventory_is_full' - user's inventory is full
5. 'too_many_failed_attempts' - too many failed withdrawal attempts for user
6. 'skin_unavailable' - skin unavailable for purchase (or sold)
7. 'p2p_purchase_canceled_by_user' - P2P purchase was canceled by the user
8. 'p2p_purchase_canceled_by_system' - P2P purchase was automatically canceled by the system
steamid
string
Steam ID of user
date
int
Purchase date (UNIX time)
balance_debited_sum
float
The amount debited from the project's balance (USD)
tradeofferid
string
Trade Offer ID on Steam (only available if the trade was created)
custom_id
string
'custom_id' in your system
refund_percent @deprecated
int
Return percentage for rollbacks caused by user error. Deprecated: use refund_amount instead
refund_amount
string|null
Actual refund amount on rollback
Successful response example:
{
"status": "success",
"items": [
{
"id": "2715",
"name": "SSG 08 | Fever Dream (Field-Tested)",
"price": "77.02",
"classid": "3770669160",
"buy_id": "50123",
"offer_status": "creating_trade",
"in_hold": false,
"in_hold_until": null,
"error_reason": null,
"steamid": "76561190000000000",
"date": "1719825675",
"balance_debited_sum": "77.02",
"tradeofferid": null,
"custom_id": "project-order-1"
}
]
}
List of possible errors:
1
missing_one_of_required_params
Missing valid custom_ids or purchases are unavailable for cancellation
2
cancel_request_too_early
Cancel request is available only 30 minutes after purchase creation
-6
market_disabled
Market is off
standard errors:
-1
please_use_post_method
Need to use the POST method
-2
invalid_shopid
Project Client ID not found in the system
-3
invalid_signature
Invalid signature
-4
shop_not_active
Project inactive
-5
invalid_method
Invalid API method
-7
request_limit_reached
API requests limit reached (500/per minute)
-8
invalid_ip_address
Specify IP address in merchant panel
-9
under_maintenance
Site under maintenance
-10
invalid_client_secret
Invalid X-CLIENT-SECRET header