Возможности
Целевые исходы
Целевой исход сообщает платформе: на 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. |
expired | expires_at наступил до применения записи. |
cancelled | Отменена через outcome_cancel или в админ-панели. |
Правила:
- Счёт начинается, когда запись становится
ready, а не когда она назначена. Считаются только платные спины игрока в этой игре; раунды фриспинов не считаются. spin_number-й посчитанный спин платит множитель × ставка спина с допуском ±2 %. Множитель не зависит от размера ставки.- Если спин не подходит записи (например, анте-ставка, покупка бонуса для записи
spinили нет подходящего раунда), запись переносится на следующий платный спин. - Записей может быть несколько. Записи, наступившие на одном спине, срабатывают по одной на спин, старые первыми.
- Если игра просит игрока выбрать после списания, цель действует для каждого варианта.
- Раунды целевых исходов помечаются и исключаются из адаптивного окна RTP игрока (RTP). Их уведомления
round_infoсодержат"forced": true(Колбэки кошелька). - Гэмбл после выигрыша целевого исхода разрешён в играх, где он есть.
outcome_schedule#
POST
/gameActions.domethodoutcome_scheduleНазначает целевой исход игроку в игре.
Запрос#
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"
}'{
"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"
}| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
method | string | да | "outcome_schedule". |
partner, api_key | string | да | Идентификатор проекта и API-ключ. |
player_id | string | да | Ваш id игрока, 1–128 печатных ASCII-символов (пробелы допускаются). |
symbol | string | да | Id игры с target_outcomes: true. |
multiplier | string or number | да | Целевой выигрыш как кратное ставки спина: больше 0, до 7 цифр в целой части и до 2 знаков после запятой ("50", "2.5", "12.34"). Не должен превышать максимальный выигрыш игры, если у игры известен предел. |
kind | enum | нет | spin (по умолчанию): выигрыш без бонуса. bonus: выигрыш с бонусом (естественный триггер или бонус, который покупает игрок). Для bonus нужна игра с бонусом. |
spin_number | integer | нет | Какой посчитанный платный спин игрока, 1–100000. По умолчанию 1. |
expires_at | string | нет | Дата-время ISO 8601 с часовым поясом. От 1 часа до 90 дней после вызова. По умолчанию: сейчас + 7 дней. |
external_id | string | нет | Ваш id, уникальный в проекте, 1–128 печатных ASCII-символов без пробельных символов. |
comment | string | нет | Свободный текст, 1–500 печатных ASCII-символов. |
Ответ#
{
"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_id | string | Id записи (UUID). |
outcome.external_id | string or null | Ваш id, если вы его передали. |
outcome.player_id, outcome.symbol, outcome.provider | string | Игрок, игра и её провайдер. |
outcome.kind | enum | spin или bonus. |
outcome.multiplier | string | Целевой множитель, всегда с двумя знаками после точки ("50.00"), в каком бы виде вы его ни передали. |
outcome.spin_number | integer | Запрошенный посчитанный спин. |
outcome.paid_spins_since | integer | Платные спины, посчитанные с момента, когда запись стала ready. |
outcome.status | enum | pending, ready, unreachable, applied, expired или cancelled. |
outcome.variants | array<string> | Виды раунда, которые нашла платформа (например, обычный спин и купленный бонус). Пусто, пока pending. |
outcome.comment | string or null | Ваш комментарий. |
outcome.created_at, outcome.expires_at | string | ISO 8601, UTC. |
outcome.applied_at | string or null | Когда запись применена. |
outcome.round_id | string or null | Раунд с целевым исходом, после применения. |
Ошибки#
| Код | HTTP | Когда |
|---|---|---|
INVALID_REQUEST | 400 | Поле отсутствует, имеет неверный тип или формат. |
GAME_NOT_FOUND | 404 | symbol не игра каталога. |
FORCED_OUTCOMES_UNSUPPORTED | 400 | Игра не поддерживает целевые исходы (target_outcomes: false). |
INVALID_KIND | 400 | kind — не spin и не bonus. |
GAME_HAS_NO_BONUS | 400 | kind равен bonus, но в игре нет бонуса. |
INVALID_MULTIPLIER | 400 | multiplier — не положительное число с не более чем 2 знаками после запятой. |
MULTIPLIER_ABOVE_MAX_WIN | 400 | multiplier превышает максимальный выигрыш игры. Проверяется только для игр с известным максимумом; для остальных слишком большой множитель принимается, и запись заканчивается unreachable. |
INVALID_SPIN_NUMBER | 400 | spin_number — не целое число от 1 до 100000. |
INVALID_EXPIRY | 400 | В expires_at нет часового пояса, либо срок меньше 1 часа или больше 90 дней. |
DUPLICATE_EXTERNAL_ID | 409 | Запись с таким external_id в проекте уже есть. |
outcome_get#
POST
/gameActions.domethodoutcome_getВозвращает одну запись по outcome_id или по вашему external_id.
Запрос#
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"}'{
"method": "outcome_get",
"partner": "demo-casino",
"api_key": "YOUR_API_KEY",
"external_id": "qa-case-17"
}| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
outcome_id | string | ровно одно из outcome_id / external_id | Id записи (UUID). |
external_id | string | ровно одно из outcome_id / external_id | Ваш id. |
Ответ#
{
"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_REQUEST | 400 | Переданы оба или ни одного из outcome_id и external_id. |
OUTCOME_NOT_FOUND | 404 | В вашем проекте нет такой записи. |
outcome_list#
POST
/gameActions.domethodoutcome_listВозвращает записи проекта, сначала новые, не более 200.
Запрос#
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"}'{
"method": "outcome_list",
"partner": "demo-casino",
"api_key": "YOUR_API_KEY",
"player_id": "player-1024",
"status": "ready"
}| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
player_id | string | нет | Только записи этого игрока. |
symbol | string | нет | Только записи по этой игре. |
status | string | нет | pending, ready, unreachable, applied, expired или cancelled. |
Ответ#
{
"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
}
]
}| Поле | Тип | Описание |
|---|---|---|
outcomes | array<object> | Объекты записей, см. outcome_schedule. Пусто, если ничего не найдено. |
Ошибки#
| Код | HTTP | Когда |
|---|---|---|
INVALID_REQUEST | 400 | У фильтра неверный тип. |
outcome_cancel#
POST
/gameActions.domethodoutcome_cancelОтменяет запись со статусом pending, ready или unreachable. Для любого другого статуса запись возвращается без изменений.
Запрос#
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"}'{
"method": "outcome_cancel",
"partner": "demo-casino",
"api_key": "YOUR_API_KEY",
"outcome_id": "5a3e91d2-7c4b-4e08-b6a1-3f9d2c8e1a70"
}| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
outcome_id | string | ровно одно из outcome_id / external_id | Id записи (UUID). |
external_id | string | ровно одно из outcome_id / external_id | Ваш id. |
Ответ#
{
"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_REQUEST | 400 | Переданы оба или ни одного из outcome_id и external_id. |
OUTCOME_NOT_FOUND | 404 | В вашем проекте нет такой записи. |
См. также#
- RTP: почему эти раунды исключены из адаптивного окна.
- Колбэки кошелька: флаг
forcedвround_info. - Админ-панель: те же записи можно вести в админ-панели.