Appearance
Create Intent
POST /api/v1/merchant/create-intent
Creates a deposit intent for the redirect integration flow. Returns a URL where the user completes the deposit on Skinslink's hosted page.
Request
Headers
| Header | Required | Description |
|---|---|---|
X-Api-Key | ✅ | Your merchant API key |
Content-Type | ✅ | application/json |
Body
| Parameter | Type | Required | Description |
|---|---|---|---|
merchant_tx_id | string | ✅ | Your unique transaction/order ID |
game | string | — | Game code: csgo, rust, dota2, tf2 |
partner | integer | — | Steam trade partner ID |
token | string | — | Steam trade token |
result_url | string | — | Webhook URL — overrides your merchant-level webhook URL for this deposit (must be valid URL) |
success_url | string | — | URL to redirect on success (must be valid URL) |
fail_url | string | — | URL to redirect on failure (must be valid URL) |
custom_currency | string | — | Custom currency code (1–4 chars, e.g. BTC, EUR). Requires all 3 currency fields |
custom_currency_multiplier | number | — | Currency multiplier (0.5–2.0) |
custom_currency_rate | number | — | Currency exchange rate (≥ 0.1) |
TIP
If game, partner, and token are omitted, the user will provide them on the deposit page.
Response
json
{
"success": true,
"message": "Deposit intent created successfully",
"data": {
"id": 42,
"merchant_tx_id": "order-12345",
"url": "https://skinslink.com/deposit/d66pbg9uvduc73ba5n30"
}
}Response Fields
| Field | Type | Description |
|---|---|---|
id | integer | Internal deposit intent ID |
merchant_tx_id | string | Your transaction ID (echoed back) |
url | string | Redirect URL for the user |
Example
bash
curl -X POST https://api.skinslink.com/api/v1/merchant/create-intent \
-H "X-Api-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"merchant_tx_id": "order-12345",
"game": "csgo",
"partner": 378049039,
"token": "qPFEAtZR",
"result_url": "https://yoursite.com/deposit/complete"
}'Errors
| Status | Message | Cause |
|---|---|---|
400 | invalid request body | Malformed JSON |
400 | validation error | Missing or invalid fields (see data array for details) |
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 |
409 | already exist error | Duplicate merchant_tx_id |
500 | internal error | Something went wrong on our side |
