Notell API Docs
English

Справочник

Справочник ошибок

Ошибки возвращаются как {"status":"error","message":"<CODE>"} с HTTP-статусом из таблицы ниже. Ориентируйтесь на код, а не только на HTTP-статус. Фильтр ищет по коду и тексту. Правила формата: Соглашения.

КодHTTPГдеЗначениеЧто делать
UNAUTHORIZED401API (любой метод)Неизвестный partner или неверный api_key.Проверьте partner и api_key. Если ключ перевыпускали, установите новый.
INVALID_REQUEST400API (любой метод)Нет обязательного поля, неверный тип или формат (например, currency, player_id, client_platform, region, demo_reset) либо передано неизвестное поле. /playGame.do, round_cancel и отчёты принимают только описанные поля.Сверьте запрос с описанием метода и уберите неизвестные поля. Тело, которое не является корректным JSON, получает ответ REQUEST_FAILED.
INVALID_IDEMPOTENCY_KEY400API (любой метод)Заголовок Idempotency-Key не состоит из 1–128 печатных ASCII-символов (или передан дважды).Используйте UUID или короткий ключ без пробелов.
IDEMPOTENCY_CONFLICT409 / 400API (любой метод)Тот же Idempotency-Key уже использован с другим телом запроса. HTTP 409 на /gameActions.do; на /playGame.do тот же код приходит с HTTP 400.Для нового запроса берите новый ключ; повтор с тем же телом вернёт первый ответ.
REQUEST_FAILED400API (любой метод)Запрос не выполнен по причине без публичного кода: тело не является корректным JSON, тип содержимого не JSON и не форма либо произошёл тайм-аут или сбой сети (например, при обращении к вашему кошельку при запуске).Проверьте тело и Content-Type: application/json. Если с телом всё в порядке, повторите один раз; если повторяется, обратитесь к владельцу платформы, указав время запроса.
FORBIDDEN403API (любой метод)Действие недоступно этому вызывающему.Не повторяйте; проверьте права (админка) или параметры запуска.
RATE_LIMITED429API (любой метод)Исчерпана минутная квота проекта для этого класса запросов (запуск, действия, отчёты). Квота считается до проверки ключа, поэтому запросы с неверным ключом тоже её расходуют.Подождите Retry-After секунд и повторите; распределяйте массовые вызовы. См. «Соглашения», раздел о лимитах.
DATABASE_UNAVAILABLE503API (любой метод)GET /health не смог обратиться к базе данных.Повторите чуть позже; если не проходит, обратитесь к владельцу платформы.
UNSUPPORTED_GAME404/playGame.dosymbol не передан, не строка или не является id опубликованной игры.Берите id из GET /games/catalog (game_id).
UNSUPPORTED_LANGUAGE400/playGame.dolang задан неверно или не поддерживается этой игрой.Используйте код из списка languages игры или не передавайте lang (будет язык проекта).
REAL_MODE_DISABLED400/playGame.dogametype не равен ни demo (ваш кошелёк), ни fun (бесплатная демо-игра). Режим реальных денег недоступен.Передавайте "gametype": "demo" или "gametype": "fun".
INVALID_DEMO_BALANCE400/playGame.dodemo_balance запуска gametype: "fun" вне диапазона 1.00–10 000 000.00 или не число с двумя знаками.Передайте значение в диапазоне, например "100000.00", или опустите поле (по умолчанию).
DEMO_UNAVAILABLE503/playGame.doДемо-режим не подготовлен на этом сервере.Обратитесь к владельцу платформы.
PROMO_UNSUPPORTED400/playGame.doВ запуск передано устаревшее поле freespins.Уберите его и выдавайте фриспины через /gameActions.do (freespins_create).
ROUND_IN_PROGRESS400/playGame.doУ игрока есть незавершённый раунд в этой игре в другой валюте.Запустите игру в валюте незавершённого раунда (или дождитесь его завершения).
BALANCE_UNAVAILABLE400/playGame.doВаш кошелёк ответил на запрос session_info при запуске {"status":"error",…}, сессия не создана.Пусть session_info отвечает status: "ok" с балансом известного игрока; используйте «Test connection» в админ-панели.
WALLET_IDENTITY_MISMATCH400/playGame.doСохранённые настройки кошелька проекта не совпадают с конфигурацией сервера, поэтому платформа не обращается к вашему кошельку.Обратитесь к владельцу платформы; причина не в запросе.
IP_NOT_ALLOWED403/gameActions.doIP вызывающего сервера не входит в список разрешённых для проекта (/gameActions.do, /playerRtp.do; /playGame.do IP не проверяет).Попросите владельца платформы или пользователя проекта с правом на учётные данные добавить вашу сеть (CIDR) в админ-панели, раздел IP Whitelist.
INVALID_METHOD400/gameActions.domethod не входит в список поддерживаемых.Используйте методы freespins_* или outcome_* из этой документации.
METHOD_RETIRED400/gameActions.doВызван устаревший метод (freespins_set, freespins_delete или freespins_get без id).Перейдите на freespins_create, freespins_get, freespins_list, freespins_cancel.
GAME_NOT_FOUND404/gameActions.dosymbol не является опубликованной игрой.Берите id из GET /games/health.
DUPLICATE_EXTERNAL_ID409/gameActions.doexternal_id уже занят другой записью проекта.Используйте уникальный external_id или прочитайте существующую запись по нему.
PROJECT_BET_LIMIT400/gameActions.doСтавка вне лимитов проекта, игры или игрока. Также возвращается игрой при ставке вне лимитов.Выберите ставку в пределах лимитов (см. «Лимиты ставок») или измените лимиты в админке.
ROUND_NOT_FOUND404/gameActions.doround_id не является раундом этого партнёра.Возьмите id из meta.round_id callback кошелька или из report_rounds.
ROUND_NOT_CANCELLABLE409/gameActions.doРаунд нельзя отменить: он завершён, выигрыш зачисляется, результат уже показан игроку или это фриспин-раунд.Ничего не делайте; посмотрите раунд через report_rounds.
ROUND_BUSY409/gameActions.doСейчас идёт обращение к кошельку по этому раунду.Повторите через несколько секунд.
ROUND_CANCEL_UNAVAILABLE400/gameActions.doОтмена раундов пока не включена на сервере.Обратитесь к владельцу платформы.
INVALID_PERIOD400/gameActions.dofrom не раньше to или период report_ggr длиннее 366 дней.Используйте даты ISO и более короткий период.
INVALID_CURSOR400/gameActions.docursor не является next_cursor этого отчёта.Передавайте next_cursor без изменений и с теми же фильтрами.
INVALID_GROUP_BY400/gameActions.dogroup_by содержит значение, отличное от day, symbol, currency.Используйте подмножество этих трёх.
INVALID_STATE400/gameActions.dostate в report_rounds не равен settled, pending, cancelled или rejected.Используйте одно из этих значений.
INVALID_LIMIT400/gameActions.dolimit отчёта вне допустимого диапазона (раунды 1–500, сверка 1–1000).Передайте целое число из диапазона и листайте через cursor.
INVALID_FROM400/gameActions.dofrom не является датой или датой-временем ISO 8601 с зоной (Z или +hh:mm).Используйте 2027-01-15 или 2027-01-15T12:00:00Z.
INVALID_PLAYER_ID400/gameActions.doplayer_id отчёта не является короткой печатной строкой.Передавайте id в том виде, в каком используете его в других методах.
INVALID_TO400/gameActions.doto не является датой или датой-временем ISO 8601 с зоной (Z или +hh:mm).Используйте 2027-01-15 или 2027-01-15T12:00:00Z.
INVALID_SYMBOL400/gameActions.dosymbol отчёта не является короткой печатной строкой.Передайте id игры из GET /games/catalog.
INVALID_ROUND_ID400/gameActions.doround_id отчёта не является короткой печатной строкой.Возьмите id из meta.round_id callback кошелька или из report_rounds.
INVALID_COUNT400Фриспиныcount не целое число от 1 до 1000.Передайте значение 1–1000.
INVALID_FREE_SPIN_BET400Фриспиныbet не является допустимой ставкой базового режима игры (или не десятичная строка).Используйте одну из ставок игры десятичной строкой, например "1.00".
INVALID_EXPIRY400Фриспиныexpires_at не дата ISO 8601 с часовым поясом или вне допустимого диапазона (фриспины: от +1 часа до +30 дней; целевые исходы: от +1 часа до +90 дней).Передайте значение вида 2026-11-01T12:00:00Z в диапазоне или опустите поле (по умолчанию 7 дней).
FREE_SPINS_UNSUPPORTED400ФриспиныДля провайдера этой игры фриспины недоступны.Проверьте флаг free_spins в GET /games/health.
GRANT_NOT_FOUND404ФриспиныВ проекте нет выдачи фриспинов с таким grant_id / external_id.Проверьте id; получите список через freespins_list.
FORCED_OUTCOMES_UNSUPPORTED400Целевые исходыДля провайдера этой игры целевые исходы недоступны.Проверьте флаг target_outcomes в GET /games/health.
GAME_HAS_NO_BONUS400Целевые исходыkind равен bonus, но в игре нет бонусного раунда.Используйте kind: "spin".
INVALID_MULTIPLIER400Целевые исходыmultiplier не положительное число максимум с 2 знаками после точки (до 7 цифр до точки).Передайте, например, 50 или "12.5".
MULTIPLIER_ABOVE_MAX_WIN400Целевые исходыmultiplier выше максимального выигрыша игры (в ставках).Уменьшите множитель.
INVALID_SPIN_NUMBER400Целевые исходыspin_number не целое число от 1 до 100000.Передайте значение 1–100000.
INVALID_KIND400Целевые исходыkind не равен spin или bonus.Используйте spin или bonus.
OUTCOME_NOT_FOUND404Целевые исходыВ проекте нет целевого исхода с таким outcome_id / external_id.Проверьте id; получите список через outcome_list.
INVALID_ACTION400/playerRtp.doaction не равен get, set, auto или bet-limit.Используйте одно из четырёх действий.
RTP_PROVIDER_UNSUPPORTED400/playerRtp.doprovider не равен endorphina, pragmatic или nolimitcity.Передайте поддерживаемый id провайдера.
RTP_LEVEL_INVALID400/playerRtp.dortp не число максимум с 2 знаками после точки.Передайте, например, 94.5.
RTP_LEVEL_OUT_OF_RANGE400/playerRtp.doRTP вне диапазона 60–100 %.Передайте значение от 60 до 100.
RTP_POLICY_REQUIRED400/playerRtp.doВ проекте ещё не задан RTP провайдера, поэтому нового игрока нельзя привязать.Задайте RTP провайдера в админке: RTP & players.
INVALID_REASON400/playerRtp.doreason длиннее 200 символов или не строка.Сократите причину.
INVALID_CURRENCY400/playerRtp.docurrency не является поддерживаемым фиатным кодом ISO 4217 (/playerRtp.do, bet-limit: три заглавные буквы; отчёты: код вне списка поддерживаемых).Передайте поддерживаемый код в верхнем регистре, например EUR (см. «Валюты»).
INVALID_BET_LIMIT400/playerRtp.domin_minor / max_minor не строки из цифр, min меньше 1 или max меньше min.Передайте минорные единицы строками, min ≥ 1, max ≥ min; либо оба null, чтобы снять лимит.
INVALID_PLAYER400/playerRtp.doplayer_id отсутствует или некорректен. /playerRtp.do принимает только буквы, цифры и _ . : @ -, 1–128 символов.Передайте id игрока, с которым делали запуск (id с другими символами через этот метод управлять нельзя).
INSUFFICIENT_FUNDS200Ваш кошелёкВаш ответ на bet, когда баланса игрока не хватает: {"status":"error","message":"INSUFFICIENT_FUNDS",…}. Раунд отклоняется, ничего не списывается.Возвращайте его только при реальной нехватке средств; любая другая ошибка приводит к повторам со стороны платформы.
CALLBACK_HTTP_ERROR400Ваш кошелёкВаш кошелёк ответил HTTP-статусом не 2xx. При запуске (session_info) этот код возвращается вам с HTTP 400. Для bet любой 4xx, кроме 408 и 429, означает окончательный отказ: раунд сразу отклоняется и ставится в очередь refund; 5xx, 408 и 429 повторяются.Возвращайте HTTP 200 с JSON-ответом (в том числе для INSUFFICIENT_FUNDS). 4xx используйте только для окончательного отказа в ставке.
INVALID_CALLBACK_RESPONSE400Ваш кошелёкОтвет кошелька непригоден: не JSON, status не ok/error, currency не совпадает с путём callback или balance не простое неотрицательное число JSON максимум с 2 знаками. Ответы с ошибкой тоже должны содержать balance и currency. При запуске этот код возвращается вам с HTTP 400.Отвечайте {"status":"ok","balance":<число>,"currency":"<та же валюта>"}; при отказе {"status":"error","message":"…","balance":<число>,"currency":"<та же валюта>"}.
TRANSACTION_CANCELLED200Ваш кошелёкОтвет вашего кошелька на bet, транзакция которого уже отменена методом refund.Не списывайте; ответьте {"status":"error","message":"TRANSACTION_CANCELLED",…}.
GAME_MODE_DISABLED400В игреРежим игры (например, покупка бонуса или ante) отключён для проекта. Возвращается и методом freespins_create.Включите флаг в админ-панели: Projects, Providers.
PROJECT_GAME_DISABLED400В игреИгра или её провайдер отключены для проекта. Возвращается и методом freespins_create.Включите провайдера в админ-панели: Projects, Providers.
CURRENCY_REQUIRED400В игреНужна валюта из списка поддерживаемых.Передайте поддерживаемый фиатный код ISO 4217 (см. «Валюты»).
FREE_SPINS_ACTIVE—В игреУ игрока есть активные фриспины в этой игре, а он попытался сделать платный спин, ante или покупку бонуса. Показывается игровым клиентом, оператору по API не возвращается.Игрок сначала доигрывает фриспины; они заканчиваются, когда использованы, истекли или отменены.
FREE_SPINS_CHANGED—В игреВыдача фриспинов игрока изменилась в момент старта раунда (например, её отменили). Показывается игровым клиентом, оператору по API не возвращается.Игрок повторяет спин.
UNKNOWN_PROJECT404API админкиПроект (partner) не существует.Проверьте id проекта.
INVALID_ADMIN_ORIGIN403API админкиЗапрос на изменение к API админки пришёл без ожидаемых заголовков Origin / X-Admin-Request.Работайте через саму админку; API админки не является публичным API интеграции.
PROJECT_SETTINGS_CONFLICT409API админкиНастройки проекта уже сохранил кто-то другой.Обновите страницу и повторите изменение.
UNSUPPORTED_BY_RUNTIME400API админкиНастройка, которую платформа не может выполнить (устаревшая политика RTP, уведомления, стратегия удержания).Оставьте её выключенной; вместо устаревшей политики используйте персональный RTP.
INVALID_CALLBACK_URL400API админкиАдрес callback недопустим.Используйте https://, без завершающего слэша, без логина/пароля, query и фрагмента, только порт 443, не длиннее 512 символов, публичное имя хоста.
CONFIRMATION_REQUIRED400API админкиДля перевыпуска ключа нужно ввести id проекта как подтверждение.Введите id проекта в поле подтверждения.
CREDENTIALS_CHANGED409API админкиПока вы работали, ключ API изменил кто-то другой.Обновите страницу и примите решение заново.
PARTNER_LOCKED403API админкиПроект служебный (демо или кошелёк сайта); ключ и callback доступны только для чтения.Ничего не делайте; работайте в своём проекте.
CREDENTIALS_NOT_ENABLED503API админкиИзменение ключей и адресов callback пока не включено на сервере.Обратитесь к владельцу платформы.
INVALID_FRAME_ORIGINS400API админкиСписок разрешённых origin для iframe некорректен: больше 16 записей или запись не является origin с https:// (без шаблонов, пути, query и логина; у хоста должна быть точка).Передайте до 16 origin вида https://casino.example.
AUTH_THROTTLED429API админкиСлишком много неудачных входов в админ-панель (5 в минуту на пользователя и адрес, 20 в минуту на адрес).Подождите минуту и войдите снова с правильным паролем.
INVALID_PROJECT_SETTINGS400API админкиРаздел настроек проекта имеет неверную форму или значение (также INVALID_PROVIDER_FLAGS, INVALID_BET_LIMIT, BET_LIMIT_OUT_OF_BOUNDS, UNSUPPORTED_PROVIDER_CAPABILITY, UNKNOWN_GAME).Проверьте поле, отмеченное в админ-панели, и сохраните снова.
RTP_RULE_INVALID400API админкиВ правиле адаптивного RTP неверное поле (окно 50–100000 раундов, шаг 10–2000 bps, максимальное снижение 0–4000 bps, верхняя граница выше нижней).Исправьте поля правила в админ-панели: RTP & players.
INVALID_PROVIDER_FLAGS400API админкиПереключатели провайдеров проекта заданы неверно.Передавайте каждый флаг провайдера булевым значением.
UNSUPPORTED_PROVIDER_CAPABILITY400API админкиФлаг провайдера включает возможность, которой у провайдера нет (например, promo или ante).Оставьте этот флаг выключенным.
BET_LIMIT_OUT_OF_BOUNDS400API админкиЛимит ставок проекта выходит за границы, заданные владельцем платформы для этого клиента.Выберите диапазон внутри границ.
UNKNOWN_GAME400API админкиНастройка игры называет id неопубликованной игры.Берите id из GET /games/catalog.