Notell API Docs
English

Возможности

Целевые исходы

Целевой исход сообщает платформе: на n-м платном спине этого игрока в этой игре дай раунд с выигрышем примерно X ставок. Используйте его для тестовых сценариев, акций и QA.

  • Доступны для игр с target_outcomes: true в /games/health (974 из 1010 игр).
  • Все методы — POST https://notell-api.com/gameActions.do с полем method. Нужны partner, api_key и разрешённый IP.
  • Необязательный заголовок Idempotency-Key поддерживается всеми методами этой страницы (Соглашения). Общие ошибки (UNAUTHORIZED, IP_NOT_ALLOWED, INVALID_IDEMPOTENCY_KEY, IDEMPOTENCY_CONFLICT, RATE_LIMITED) перечислены в Ошибках и в таблицах ниже не повторяются.
  • Раунд — всегда естественный исход самой игры, найденный для этой записи: поля и бонусы никогда не собираются вручную, результат заранее не раскрывается.
  • Целевые исходы работают только в сессиях с кошельком, не в демо-режиме.

Как применяется запись#

Статусы:

СтатусЗначение
pendingПлатформа ещё ищет подходящий раунд. Платные спины пока не считаются.
readyРаунд найден. Платные спины игрока в этой игре теперь считаются к spin_number.
unreachableВ рамках бюджета поиска раунд не найден (например, x50 в обычном спине игры, которая столько не платит). Выберите другой множитель или kind.
appliedРаунд сыгран; заполнены applied_at и round_id.
expiredexpires_at наступил до применения записи.
cancelledОтменена через outcome_cancel или в админ-панели.

Правила:

  • Счёт начинается, когда запись становится ready, а не когда она назначена. Считаются только платные спины игрока в этой игре; раунды фриспинов не считаются.
  • spin_number-й посчитанный спин платит множитель × ставка спина с допуском ±2 %. Множитель не зависит от размера ставки.
  • Если спин не подходит записи (например, анте-ставка, покупка бонуса для записи spin или нет подходящего раунда), запись переносится на следующий платный спин.
  • Записей может быть несколько. Записи, наступившие на одном спине, срабатывают по одной на спин, старые первыми.
  • Если игра просит игрока выбрать после списания, цель действует для каждого варианта.
  • Раунды целевых исходов помечаются и исключаются из адаптивного окна RTP игрока (RTP). Их уведомления round_info содержат "forced": true (Колбэки кошелька).
  • Гэмбл после выигрыша целевого исхода разрешён в играх, где он есть.

outcome_schedule#

POST/gameActions.domethodoutcome_schedule

Назначает целевой исход игроку в игре.

Запрос#

curl
curl -s -X POST https://notell-api.com/gameActions.do \
  -H 'Content-Type: application/json' \
  -d '{
    "method": "outcome_schedule",
    "partner": "demo-casino",
    "api_key": "YOUR_API_KEY",
    "player_id": "player-1024",
    "symbol": "gates-of-olympus",
    "multiplier": "50",
    "kind": "bonus",
    "spin_number": 3,
    "external_id": "qa-case-17",
    "comment": "QA: big bonus on spin 3"
  }'
JSON
{
  "method": "outcome_schedule",
  "partner": "demo-casino",
  "api_key": "YOUR_API_KEY",
  "player_id": "player-1024",
  "symbol": "gates-of-olympus",
  "multiplier": "50",
  "kind": "bonus",
  "spin_number": 3,
  "external_id": "qa-case-17",
  "comment": "QA: big bonus on spin 3"
}
ПолеТипОбязательноОписание
methodstringда"outcome_schedule".
partner, api_keystringдаИдентификатор проекта и API-ключ.
player_idstringдаВаш id игрока, 1–128 печатных ASCII-символов (пробелы допускаются).
symbolstringдаId игры с target_outcomes: true.
multiplierstring or numberдаЦелевой выигрыш как кратное ставки спина: больше 0, до 7 цифр в целой части и до 2 знаков после запятой ("50", "2.5", "12.34"). Не должен превышать максимальный выигрыш игры, если у игры известен предел.
kindenumнетspin (по умолчанию): выигрыш без бонуса. bonus: выигрыш с бонусом (естественный триггер или бонус, который покупает игрок). Для bonus нужна игра с бонусом.
spin_numberintegerнетКакой посчитанный платный спин игрока, 1–100000. По умолчанию 1.
expires_atstringнетДата-время ISO 8601 с часовым поясом. От 1 часа до 90 дней после вызова. По умолчанию: сейчас + 7 дней.
external_idstringнетВаш id, уникальный в проекте, 1–128 печатных ASCII-символов без пробельных символов.
commentstringнетСвободный текст, 1–500 печатных ASCII-символов.

Ответ#

json
{
  "status": "ok",
  "outcome": {
    "outcome_id": "5a3e91d2-7c4b-4e08-b6a1-3f9d2c8e1a70",
    "external_id": "qa-case-17",
    "player_id": "player-1024",
    "symbol": "gates-of-olympus",
    "provider": "pragmatic",
    "kind": "bonus",
    "multiplier": "50.00",
    "spin_number": 3,
    "paid_spins_since": 0,
    "status": "pending",
    "variants": [],
    "comment": "QA: big bonus on spin 3",
    "created_at": "2027-02-15T10:00:00.000Z",
    "expires_at": "2027-02-28T12:00:00.000Z",
    "applied_at": null,
    "round_id": null
  }
}
ПолеТипОписание
outcome.outcome_idstringId записи (UUID).
outcome.external_idstring or nullВаш id, если вы его передали.
outcome.player_id, outcome.symbol, outcome.providerstringИгрок, игра и её провайдер.
outcome.kindenumspin или bonus.
outcome.multiplierstringЦелевой множитель, всегда с двумя знаками после точки ("50.00"), в каком бы виде вы его ни передали.
outcome.spin_numberintegerЗапрошенный посчитанный спин.
outcome.paid_spins_sinceintegerПлатные спины, посчитанные с момента, когда запись стала ready.
outcome.statusenumpending, ready, unreachable, applied, expired или cancelled.
outcome.variantsarray<string>Виды раунда, которые нашла платформа (например, обычный спин и купленный бонус). Пусто, пока pending.
outcome.commentstring or nullВаш комментарий.
outcome.created_at, outcome.expires_atstringISO 8601, UTC.
outcome.applied_atstring or nullКогда запись применена.
outcome.round_idstring or nullРаунд с целевым исходом, после применения.

Ошибки#

КодHTTPКогда
INVALID_REQUEST400Поле отсутствует, имеет неверный тип или формат.
GAME_NOT_FOUND404symbol не игра каталога.
FORCED_OUTCOMES_UNSUPPORTED400Игра не поддерживает целевые исходы (target_outcomes: false).
INVALID_KIND400kind — не spin и не bonus.
GAME_HAS_NO_BONUS400kind равен bonus, но в игре нет бонуса.
INVALID_MULTIPLIER400multiplier — не положительное число с не более чем 2 знаками после запятой.
MULTIPLIER_ABOVE_MAX_WIN400multiplier превышает максимальный выигрыш игры. Проверяется только для игр с известным максимумом; для остальных слишком большой множитель принимается, и запись заканчивается unreachable.
INVALID_SPIN_NUMBER400spin_number — не целое число от 1 до 100000.
INVALID_EXPIRY400В expires_at нет часового пояса, либо срок меньше 1 часа или больше 90 дней.
DUPLICATE_EXTERNAL_ID409Запись с таким external_id в проекте уже есть.

outcome_get#

POST/gameActions.domethodoutcome_get

Возвращает одну запись по outcome_id или по вашему external_id.

Запрос#

curl
curl -s -X POST https://notell-api.com/gameActions.do \
  -H 'Content-Type: application/json' \
  -d '{"method":"outcome_get","partner":"demo-casino","api_key":"YOUR_API_KEY","external_id":"qa-case-17"}'
JSON
{
  "method": "outcome_get",
  "partner": "demo-casino",
  "api_key": "YOUR_API_KEY",
  "external_id": "qa-case-17"
}
ПолеТипОбязательноОписание
outcome_idstringровно одно из outcome_id / external_idId записи (UUID).
external_idstringровно одно из outcome_id / external_idВаш id.

Ответ#

json
{
  "status": "ok",
  "outcome": {
    "outcome_id": "5a3e91d2-7c4b-4e08-b6a1-3f9d2c8e1a70",
    "external_id": "qa-case-17",
    "player_id": "player-1024",
    "symbol": "gates-of-olympus",
    "provider": "pragmatic",
    "kind": "bonus",
    "multiplier": "50.00",
    "spin_number": 3,
    "paid_spins_since": 1,
    "status": "ready",
    "variants": ["bonus"],
    "comment": "QA: big bonus on spin 3",
    "created_at": "2027-02-15T10:00:00.000Z",
    "expires_at": "2027-02-28T12:00:00.000Z",
    "applied_at": null,
    "round_id": null
  }
}

Объект outcome описан в разделе outcome_schedule.

Ошибки#

КодHTTPКогда
INVALID_REQUEST400Переданы оба или ни одного из outcome_id и external_id.
OUTCOME_NOT_FOUND404В вашем проекте нет такой записи.

outcome_list#

POST/gameActions.domethodoutcome_list

Возвращает записи проекта, сначала новые, не более 200.

Запрос#

curl
curl -s -X POST https://notell-api.com/gameActions.do \
  -H 'Content-Type: application/json' \
  -d '{"method":"outcome_list","partner":"demo-casino","api_key":"YOUR_API_KEY","player_id":"player-1024","status":"ready"}'
JSON
{
  "method": "outcome_list",
  "partner": "demo-casino",
  "api_key": "YOUR_API_KEY",
  "player_id": "player-1024",
  "status": "ready"
}
ПолеТипОбязательноОписание
player_idstringнетТолько записи этого игрока.
symbolstringнетТолько записи по этой игре.
statusstringнетpending, ready, unreachable, applied, expired или cancelled.

Ответ#

json
{
  "status": "ok",
  "outcomes": [
    {
      "outcome_id": "5a3e91d2-7c4b-4e08-b6a1-3f9d2c8e1a70",
      "external_id": "qa-case-17",
      "player_id": "player-1024",
      "symbol": "gates-of-olympus",
      "provider": "pragmatic",
      "kind": "bonus",
      "multiplier": "50.00",
      "spin_number": 3,
      "paid_spins_since": 1,
      "status": "ready",
      "variants": ["bonus"],
      "comment": "QA: big bonus on spin 3",
      "created_at": "2027-02-15T10:00:00.000Z",
      "expires_at": "2027-02-28T12:00:00.000Z",
      "applied_at": null,
      "round_id": null
    }
  ]
}
ПолеТипОписание
outcomesarray<object>Объекты записей, см. outcome_schedule. Пусто, если ничего не найдено.

Ошибки#

КодHTTPКогда
INVALID_REQUEST400У фильтра неверный тип.

outcome_cancel#

POST/gameActions.domethodoutcome_cancel

Отменяет запись со статусом pending, ready или unreachable. Для любого другого статуса запись возвращается без изменений.

Запрос#

curl
curl -s -X POST https://notell-api.com/gameActions.do \
  -H 'Content-Type: application/json' \
  -d '{"method":"outcome_cancel","partner":"demo-casino","api_key":"YOUR_API_KEY","outcome_id":"5a3e91d2-7c4b-4e08-b6a1-3f9d2c8e1a70"}'
JSON
{
  "method": "outcome_cancel",
  "partner": "demo-casino",
  "api_key": "YOUR_API_KEY",
  "outcome_id": "5a3e91d2-7c4b-4e08-b6a1-3f9d2c8e1a70"
}
ПолеТипОбязательноОписание
outcome_idstringровно одно из outcome_id / external_idId записи (UUID).
external_idstringровно одно из outcome_id / external_idВаш id.

Ответ#

json
{
  "status": "ok",
  "outcome": {
    "outcome_id": "5a3e91d2-7c4b-4e08-b6a1-3f9d2c8e1a70",
    "external_id": "qa-case-17",
    "player_id": "player-1024",
    "symbol": "gates-of-olympus",
    "provider": "pragmatic",
    "kind": "bonus",
    "multiplier": "50.00",
    "spin_number": 3,
    "paid_spins_since": 1,
    "status": "cancelled",
    "variants": ["bonus"],
    "comment": "QA: big bonus on spin 3",
    "created_at": "2027-02-15T10:00:00.000Z",
    "expires_at": "2027-02-28T12:00:00.000Z",
    "applied_at": null,
    "round_id": null
  }
}

Ошибки#

КодHTTPКогда
INVALID_REQUEST400Переданы оба или ни одного из outcome_id и external_id.
OUTCOME_NOT_FOUND404В вашем проекте нет такой записи.

См. также#

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