Seamless Wallet Integration Guide
Панель оператора Главный портал ▶ Демо 40 Super Hot

Интеграция игр WINBET Casino

Платформа предоставляет готовое API для подключения легендарных EGT слотов (40 Super Hot, 20 Super Hot, Shining Crown, Burning Hot, Dazzling Hot, Flaming Hot) и многопользовательской игры Crash по протоколу Seamless Wallet.

Как работает Seamless Wallet?

В отличие от устаревшей модели с переводом баланса (Transfer Wallet), при бесшовной интеграции средства игрока всегда находятся исключительно на вашем бэкенде.

  • Игрок открывает слот в iframe или окне через метод /api/v1/game/launch.
  • Каждый спин вызывает колбэк POST /bet на ваш сервер для списания ставки.
  • При выигрыше сервер отправляет колбэк POST /win для зачисления денег на баланс игрока.
  • Среднее время обработки транзакции составляет < 50 миллисекунд.
Тестовые ключи: Для интеграции в песочнице используйте API Key: win_live_key_994 и Secret Key: win_sec_1bd8319c.
Схема взаимодействия
[Игрок в браузере]
       │
       │ 1. Нажатие Spin / Ставка
       ▼
[WINBET Game Engine]
       │
       │ 2. POST /bet (X-Signature: HMAC-SHA256)
       ▼
[Бэкенд вашего казино]
       │
       │ 3. Списание с баланса игрока
       ▼
[WINBET Game Engine]
       │
       │ 4. Анимация барабанов + POST /win
       ▼
[Бэкенд вашего казино]

Аутентификация и безопасность

Все запросы защищены цифровой криптографической подписью на основе алгоритма HMAC-SHA256.

При каждом запросе передаются обязательные HTTP-заголовки:

Заголовок Тип Описание
X-Api-Key String Уникальный публичный идентификатор мерчанта (Client ID).
X-Signature String (Hex) Подпись HMAC-SHA256 тела запроса (JSON raw string), вычисленная с использованием вашего Secret Key.
Content-Type String Всегда application/json.
Node.js Генерация подписи HMAC
const crypto = require('crypto');

function signPayload(body, secretKey) {
  const payloadStr = typeof body === 'string' 
    ? body 
    : JSON.stringify(body);
    
  return crypto
    .createHmac('sha256', secretKey)
    .update(payloadStr)
    .digest('hex');
}

// Пример заголовков:
// X-Api-Key: win_live_key_994
// X-Signature: a3f889...994e
POST /api/v1/game/launch

Запуск игры (Game Launch)

Создает игровую сессию и возвращает безопасный URL для отображения игры пользователю в <iframe> или полноэкранном окне.

Параметры запроса (JSON body)

Поле Тип Обязательное Описание
api_key string Да Ваш публичный API ключ.
game_id string Да Идентификатор игры: 40-super-hot, 20-super-hot, shining-crown, burning-hot, dazzling-hot, flaming-hot, crash.
user_id string Да Уникальный ID игрока в базе вашего казино.
currency string Да Валюта счета: EUR, USD, RUB, USDT.
mode string Нет real (по умолчанию) или demo.
return_url string Нет URL, куда слот вернет игрока по нажатию кнопки «Домой» (Home).
curl -X POST http://localhost:3000/api/v1/game/launch \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "win_live_key_994",
    "game_id": "40-super-hot",
    "user_id": "player_88412",
    "currency": "EUR",
    "mode": "real",
    "return_url": "https://mycasino.com/slots"
  }'
Успешный ответ (200 OK)
{
  "status": "success",
  "session_token": "tok_994e_b82a170",
  "launch_url": "http://localhost:3000/games/40-super-hot?user=player_88412&token=tok_994e_b82a170¤cy=EUR&closeurl=https%3A%2F%2Fmycasino.com%2Fslots",
  "game": {
    "id": "40-super-hot",
    "name": "40 Super Hot",
    "rtp": 95.81
  }
}
POST {callback_url}/bet

Колбэк списания ставки (/bet)

Отправляется бэкендом платформы на ваш URL при совершении спина игроком. Ваше казино должно списать сумму ставки и вернуть текущий актуальный баланс.

Тело запроса платформы (JSON body)

Поле Тип Описание
action string Всегда "bet".
round_id string Уникальный номер раунда (например rnd_884192).
user_id string ID игрока.
amount number Сумма ставки (например 4.00).
currency string Валюта ставки (например "EUR").
Ожидаемый ответ от вашего казино (200 OK)
{
  "status": "success",
  "balance": 996.00,
  "transaction_id": "tx_bet_00192841"
}
Ответ при нехватке средств (402 Insufficient Funds)
{
  "status": "error",
  "error_code": "INSUFFICIENT_FUNDS",
  "message": "Недостаточно средств на счете",
  "balance": 1.20
}

Live Sandbox (Интерактивная песочница)

Вы можете протестировать метод генерации ссылки на запуск слота прямо сейчас без написания кода:

Ответ Sandbox Готов к отправке
{
  "message": "Нажмите кнопку 'Отправить запрос'"
}