API: приём скинов на сайте
Этот API позволяет принимать оплату скинами на вашем сайте. Рекомендуемый способ — постоянная ссылка на депозит: пользователь переходит по ссылке, отправляет скины боту, бот примет и отправит вебхук с partnerSteamId, суммой и списком скинов.
1. Постоянная ссылка на депозит (рекомендуется)
Эндпоинт: GET /api/v1/deposit/link
Возвращает постоянные ссылки — по одной на каждого бота. Без параметров — все ссылки. Параметр ?botId=xxx — ссылка для конкретного бота. Пользователь открывает ссылку, переходит в Steam и отправляет скины. Сумма определяется по полученным скинам. В вебхуке приходит partnerSteamId — SteamID пользователя для пополнения баланса на вашем сайте.
Пример ответа (успех):
Один бот: {"depositUrl": "https://.../deposit/b-xxx", "slug": "b-xxx", "botId": "..."}
Несколько ботов: {"links": [{"botId", "botName", "depositUrl", "slug"}]}2. Базовый URL и авторизация
Базовый URL: https://pay-skin.com
Авторизация через API-ключ, который выдаётся в Настройках панели. Передавайте его в одном из заголовков:
Authorization: Bearer YOUR_API_KEYX-Api-Key: YOUR_API_KEY
3. Создание депозита (с предзаданной суммой) — /deposit
Эндпоинт: POST /api/v1/deposit
Используется для инициализации сделки. В ответ вы получаете transactionId и tradeUrl — ссылку, по которой пользователь отправит скины.
Тело запроса:
{
"amount": 1000, // сумма депозита в рублях
"gameType": "CS2", // CS2 | DOTA2 | RUST (опционально, по умолчанию CS2)
"externalId": "order-123", // ваш ID заказа/платежа (опционально)
"callbackUrl": "https://example.com/webhook" // опционально, перекрывает URL из настроек
}Если сумма меньше минимальной или больше максимальной из настроек, вернётся ошибка.
Пример ответа (успех):
{
"transactionId": "cmlg2q61w0000rc8us55ki3xe",
"tradeUrl": "https://pay-skin.com/trade/cmlg2q61w0000rc8us55ki3xe",
"amount": 1000,
"status": "PENDING"
}Покажите пользователю tradeUrl (кнопка «Отправить скины» или редирект в Steam).
4. Завершение сделки — /transaction/:id/complete
Эндпоинт: POST /api/v1/transaction/:id/complete
Вызывается воркером платформы после принятия трейда ботом. Партнёр обычно не вызывает этот метод — создаёт депозит, отдаёт tradeUrl пользователю и получает webhook. Для тестирования или особых сценариев можно вызвать вручную, передав steamTradeId и skins.
POST /api/v1/transaction/{transactionId}/complete
Authorization: Bearer YOUR_API_KEY
{
"steamTradeId": "1234567890", // ID трейда в Steam
"skins": [
{
"name": "AK-47 | Redline (Field-Tested)",
"image": "https://...",
"price": 750.0 // рыночная цена в рублях
},
{
"name": "AK-47 | Point Disarray (FT)",
"image": "https://...",
"price": 250.0
}
]
}На основании цен скинов система посчитает:
steamValue— сумма цен всех скинов;payoutAmount— сумма к выплате партнёру с учётом процента из настроек «% от цены Steam».
В случае успеха статус транзакции становится COMPLETED, и на ваш вебхук уходит событие.
5. Вебхуки
URL вебхука настраивается в Настройках панели (поле URL вебхука). После завершения транзакции придёт запрос типа:
POST https://your-site.com/webhook
{
"event": "transaction.completed",
"transactionId": "cmlg2q61w0000rc8us55ki3xe",
"order_id": "order-123",
"externalId": "order-123",
"amount": 1000,
"steamTradeId": "1234567890",
"partnerSteamId": "76561198012345678",
"steamValue": 1000,
"payoutAmount": 600,
"steamPricePercent": 60,
"status": "COMPLETED",
"completedAt": "2025-02-10T12:34:56.000Z",
"skins": [
{
"name": "AK-47 | Redline (Field-Tested)",
"image": "https://...",
"price": 750.0
},
{
"name": "AK-47 | Point Disarray (FT)",
"image": "https://...",
"price": 250.0
}
]
}Используйте externalId, чтобы связать транзакцию со своей системой заказов. partnerSteamId — SteamID64 пользователя, отправившего скины; используйте для пополнения баланса на вашем сайте (привязка по Steam).
6. GameStores.app
Для донат-магазинов Rust, Hurtworld, Unturned. Подключите SkinPay как кастомный способ оплаты.
GET/POST /api/v1/gamestores/create — создание платежа (GET или POST, параметры в body или query)
GET /api/v1/gamestores/order/:id — проверка статуса заказа
В GameStores ничего вводить не нужно. Всё настраивается на pay-skin.com:
В разделе «Настройки» укажите ID магазина и секретный ключ из GameStores. Затем добавьте ссылку на депозит в свой магазин (кнопкой или текстом).
7. Логи и отладка
Все вызовы API и ошибки видны в разделе Логи API. . Отправка вебхуков и ответы вашего сервера — в разделе Вебхуки.