Notell API Docs
English

Интеграция

Запуск игры

POST https://notell-api.com/playGame.do создаёт сессию игрока и возвращает ссылку на клиент игры.

Запрос#

json
{
  "provider": "own",
  "partner": "YOUR_PARTNER_ID",
  "api_key": "YOUR_API_KEY",
  "player_id": "player-123",
  "symbol": "gates-of-olympus",
  "currency": "UAH",
  "gametype": "demo",
  "lang": "de",
  "client_platform": "mobile"
}
ПолеОбязательноОписание
providerдаВсегда "own".
partnerдаid вашего проекта.
api_keyдаAPI-ключ вашего проекта.
player_idдаid вашего игрока, 1–128 символов.
symbolдаid игры из /games/health (game_id) или из списка игр. Неизвестный id даёт UNSUPPORTED_GAME (404).
currencyдаUAH, USD, EUR или RUB.
gametypeдаВсегда "demo" (см. ниже).
langнетСтандартный код языка, например en, de, pt-BR, zh-Hant. Если не указан — язык проекта по умолчанию. См. Языки.
client_platformнетdesktop (по умолчанию) или mobile. Выбирает десктопную или мобильную сборку клиента игр Pragmatic Play; на других провайдеров не влияет.
regionнетRU или NONE. Принимается для совместимости; на сессию не влияет.

Любое другое поле приводит к ошибке INVALID_REQUEST; старое поле freespins отклоняется с PROMO_UNSUPPORTED — используйте фриспины через /gameActions.do. Параметра lobby или адреса возврата нет: навигацию обратно на ваш сайт организуйте в собственной странице вокруг игры.

Необязательный заголовок: Idempotency-Key (см. Соглашения).

Demo и real#

Платформа работает в режиме TEST_ONLY. gametype должен быть demo; любое другое значение даёт HTTP 400 REAL_MODE_DISABLED. Используется баланс, который ваш кошелёк возвращает в session_info.

Ответ#

json
{
  "status": "ok",
  "link": "https://notell-api.com/… (адрес клиента игры с токеном сессии)",
  "meta": {
    "session_id": "9d0c3f7e-…",
    "currency": "UAH",
    "language": "de"
  }
}
ПолеОписание
linkURL, который нужно открыть в браузере игрока. Содержит токен сессии: отдавайте только этому игроку и не логируйте.
meta.session_idid сессии; он же есть в callbacks вашего кошелька.
meta.currency, meta.languageВалюта и стандартный код языка сессии.

В meta могут быть дополнительные информационные поля о сборке игры; неизвестные игнорируйте.

Что происходит при запуске#

  1. Проверяется ключ (иначе UNAUTHORIZED) и валидируется тело.
  2. Платформа вызывает ваш кошелёк с session_info по игроку. Если вызов не успешен, запуск завершается BALANCE_UNAVAILABLE, сессия не создаётся.
  3. Сессия сохраняется (истекает через 2 часа после создания), возвращается ссылка.

Повторный запуск и незавершённые раунды#

  • Игрок с незавершённым раундом в той же игре всегда продолжает его: запуск возвращает ссылку на сессию, которой принадлежит раунд (истёкшая сессия возобновляется с новым токеном и сроком).
  • Если вы запускаете игру повторно на другом языке при незавершённом раунде, сессия переключается на новый язык.
  • Если незавершённый раунд в другой валюте, запуск вернёт ROUND_IN_PROGRESS; запускайте в исходной валюте.
  • Повтор вызова с тем же Idempotency-Key и телом возвращает ту же ссылку.

Ошибки#

КодHTTPПричина
UNAUTHORIZED401Неизвестный partner или неверный api_key
INVALID_REQUEST400Нет/неверное поле, неизвестное поле, player_id пустой или длиннее 128
UNSUPPORTED_GAME404symbol не опубликован
UNSUPPORTED_LANGUAGE400lang некорректен или игра его не поддерживает
REAL_MODE_DISABLED400gametype не равен demo
PROMO_UNSUPPORTED400Передано устаревшее поле freespins
BALANCE_UNAVAILABLE400Ваш кошелёк не ответил успешно на session_info
ROUND_IN_PROGRESS400Незавершённый раунд в другой валюте
INVALID_IDEMPOTENCY_KEY / IDEMPOTENCY_CONFLICT400 / 409См. Соглашения

Все коды: справочник ошибок.

Документация для операторов и интеграторов.Платформа TEST_ONLY: невыводимые единицы, реальные платежи не используются.