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
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
Create a deposit
Unlike conventional payment systems, SkinsBack does not accept specific refill amounts. The refill amount is sent to Result URL (webhook) after we receive the game items.
The response of this method will contain a URL to which you need to redirect the user (the payment page).
The 'min_amount' and / or 'max_amount' parameters are required to be used only for creating Limited orders. Then it is also mandatory to specify the 'currency' parameter. If 'min_amount' is less than the game's minimum deal amount, the game's minimum deal amount will be used.
The required parameters are highlighted in blue.
Send a POST request to API Endpoint with the following parameters:
method
string
create
order_id
string
Unique Order ID in your system
steam_id
string
User's Steam ID used by default. User can change it when making a deposit
trade_token
string
'token' from user's Trade URL (8 characters, if you have)
result_url
string
Optional Result URL to be used instead
of the one specified in the project settings
of the one specified in the project settings
fail_url
string
Optional Fail URL
success_url
string
Optional Success URL
min_amount
double
Minimum refill amount.
Used strictly with 'currency'
Used strictly with 'currency'
max_amount
double
Maximum refill amount. The amount should be greater than 'min_amount'.
Used strictly with 'currency'
Used strictly with 'currency'
widget
bool
If the value is 1, then the response from the server will contain a URL that is intended to display the replenishment interface inside your site (iframe). More details in replenishment directly on the site
game
string
Game to open by default when loading inventory in the payment form ('cs2', 'dota2', 'rust')
custom_multiplier
double
Custom price multiplier (overrides value from project settings). Min value: 0.5, max: 2
custom_currency
string
Custom currency (required with custom_currency_rate). You can pass the name of an custom currency and specify its rate. Skin prices will be displayed in this currency. Maximum 4 characters.
custom_currency_rate
double
The rate of an arbitrary currency (required with custom_currency). Min value: 0.1
Response from the server:
If successful, a JSON object with the following contents will be sent in response:
url
string
URL to redirect the user to
transaction_id
int
Transaction ID in our system
Successful response example:
{
"status": "success",
"url": "https://skinsback.com/_/pay/9421749033d9d3f725c67572575975de/",
"transaction_id": 13
}
List of possible errors:
1
invalid_order_id
The order_id value was passed incorrectly
2
invalid_steam_id
Invalid steam_id. Example of Steam ID: 76561198827262007
5
order_id_already_exists
The specified order_id has already been used to create a deposit
7
invalid_max_value
Maximum refill amount should be greater than 'min_value' and minimum game deal sum
8
invalid_currency
Invalid currency specified
9
invalid_result_url
Invalid URL specified
10
invalid_success_url
Invalid Success URL
11
invalid_fail_url
Invalid Fail URL
12
invalid_custom_currency
Invalid custom currency specified
13
invalid_custom_currency_rate
Invalid custom currency rate specified
14
invalid_custom_multiplier
Invalid custom multiplier specified
15
invalid_game
Invalid game specified
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
Error response example:
{
"status": "error",
"error_code": 1,
"error_message": "invalid_order_id"
}
Request with authorization headers example in PHP:
<?php
$params = array(
'method' => 'create',
'order_id' => 1,
'steam_id' => '76561198827262007',
'trade_token' => 'i1ArBZey',
'currency' => 'usd'
);
$clientId = '12312312323123';
$clientSecret = '123123123123213';
$headers = [
'X-CLIENT-ID: ' . $clientId,
'X-CLIENT-SECRET: ' . $clientSecret,
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://skinsback.com/api.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$server_output = curl_exec($ch);
curl_close ($ch);
var_dump($server_output);
Request with signature example in PHP:
<?php
$params = array(
'shopid' => '1', // Client ID
'method' => 'create',
'order_id' => 1,
'steam_id' => '76561198827262007',
'trade_token' => 'i1ArBZey',
'currency' => 'usd'
);
$clientSecret = '123123123123213';
// @see https://skinsback.com/docs/api/v1/signature/
$params['sign'] = buildSignature($params, $clientSecret);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://skinsback.com/api.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close ($ch);
var_dump($server_output);