Перейти к содержимому
KinetX
Operator API v1

KinetX Operator API

Создайте собственный фронтенд казино или подключите свой бэк-офис к KinetX: игроки, кошелёк, платежи, игры, бонусы, ответственная игра и отчёты через один подписанный REST API, а также вебхуки обо всём, что происходит на платформе.

Введение

Operator API предназначен для API-операторов (headless), которые ведут собственный сайт или приложение, и для Turnkey-операторов, сохраняющих свой фронтенд или платёжного провайдера. Все бизнес-правила платформы действуют для API-вызовов так же, как в бэк-офисе: пороги KYC, лимиты ответственной игры и периоды ожидания, самоисключение, условия бонусов, AML-мониторинг и журнал аудита.

Аккаунт 1 метод

Проверка учётных данных: какому оператору принадлежит ключ и какие у него права.

Игроки 6 методов

Регистрация игроков, чтение и изменение профилей и статуса, выдача токенов сессии игрока для вашего фронтенда.

Кошелёк 2 метода

Реальный и бонусный балансы и журнал операций игрока.

Платежи 5 методов

Запись депозитов, принятых вашим платёжным провайдером, заявки на вывод и отслеживание их статуса.

Игры 5 методов

Каталог игр (провайдеры, категории, RTP) и ссылки запуска игр.

Бонусы 4 метода

Ваш каталог бонусов, начисление бонусов, активация промокодов и бонусы игрока.

Ответственная игра 3 метода

Лимиты депозитов, ставок, проигрышей, баланса и сессии с периодами ожидания, а также самоисключение.

Отчёты 1 метод

Сводки GGR и платежей за период.

Сессия игрока 5 методов

Методы, которые ваш фронтенд вызывает напрямую с токеном сессии игрока (Authorization: Bearer).

Быстрый старт

  1. 1В бэк-офисе откройте Инструменты → API и вебхуки и создайте API-ключ с нужными правами. Скопируйте секрет: он показывается только один раз.
  2. 2При желании ограничьте ключ IP-адресами своих серверов.
  3. 3Подпишите запрос к GET /api/v1/operator/me и убедитесь, что он возвращает вашего оператора. Как подписывать запросы →
  4. 4Добавьте адрес вебхука, чтобы получать уведомления о регистрациях, платежах, бонусах, KYC и событиях комплаенса.

Базовый URL:

URL
https://kinetx.amhtechnologies.com/api/v1

Соглашения

  • Запросы и ответы — в формате JSON (application/json). Успешные ответы оборачивают результат в data.
  • Деньги всегда передаются целым числом в минимальных единицах валюты (центах): 12550 — это €125,50. Валюты — коды ISO 4217.
  • Метки времени — ISO 8601 в UTC (2026-10-15T09:30:00Z); даты — YYYY-MM-DD.
  • Идентификаторы — целочисленные id KinetX. Храните свой id игрока в external_id и ищите игроков по нему.
  • Каждый ответ содержит заголовок X-Request-Id; указывайте его при обращении в поддержку.
  • API-ключ видит только данные своего оператора: записи других операторов отвечают 404.

Идемпотентность

Сетевые сбои случаются. Отправляйте заголовок Idempotency-Key (UUID) с каждым POST: первый ответ хранится 24 часа и воспроизводится для каждого повтора с тем же ключом и тем же запросом с отметкой Idempotent-Replayed: true. Повторное использование ключа для другого запроса отклоняется с IDEMPOTENCY_KEY_REUSED; повтор, пока первый запрос ещё выполняется, получает 409 IDEMPOTENCY_IN_PROGRESS.

Движения денег дополнительно идемпотентны по вашей собственной ссылке: депозит с уже записанным external_reference возвращает исходный депозит вместо повторного зачисления.

Ошибки

Ошибки используют HTTP-статусы и единую обёртку со стабильным машиночитаемым кодом:

json
{
    "error": {
        "code": "VALIDATION_FAILED",
        "message": "The request data is invalid.",
        "details": {
            "birth_date": [
                "The player must be at least 18 years old."
            ]
        }
    }
}
КодHTTPЗначение
MISSING_CREDENTIALS 401 Отсутствует X-Api-Key, X-Timestamp или X-Signature.
INVALID_API_KEY 401 API-ключ не существует.
API_KEY_INACTIVE 401 API-ключ отозван или истёк, либо аккаунт оператора неактивен.
TIMESTAMP_OUT_OF_RANGE 401 X-Timestamp отличается от времени сервера более чем на 300 секунд; details.server_time содержит часы сервера.
INVALID_NONCE 401 X-Nonce длиннее 128 символов.
INVALID_SIGNATURE 401 X-Signature не соответствует запросу.
REPLAYED_REQUEST 401 Этот подписанный запрос уже был получен. Подписывайте каждый запрос новой меткой времени (или nonce).
INVALID_PLAYER_TOKEN 401 Токен сессии игрока отсутствует, недействителен или истёк.
IP_NOT_ALLOWED 403 IP вызывающего не входит в список разрешённых для API-ключа.
INSUFFICIENT_SCOPE 403 У API-ключа нет права доступа к методу; оно указано в details.required_scopes.
FEATURE_NOT_AVAILABLE 403 Недоступно для вашей модели сотрудничества.
NOT_FOUND 404 Ресурс не существует или принадлежит другому оператору.
METHOD_NOT_ALLOWED 405 HTTP-метод не поддерживается этим методом API.
IDEMPOTENCY_IN_PROGRESS 409 Запрос с этим Idempotency-Key ещё выполняется. Повторите чуть позже.
DUPLICATE_TRANSACTION 409 Ссылка уже использована для другой операции.
INSUFFICIENT_FUNDS 402 Недостаточно средств на балансе.
VALIDATION_FAILED 422 Данные запроса неверны; details сопоставляет каждому полю его сообщения.
INVALID_REQUEST 422 Запрос не может быть обработан в отправленном виде.
IDEMPOTENCY_KEY_REUSED 422 Этот Idempotency-Key уже использован для другого запроса.
INVALID_IDEMPOTENCY_KEY 422 Idempotency-Key длиннее 255 символов.
SELF_EXCLUDED_IDENTITY 422 Существует самоисключённый игрок с теми же личными данными.
PLAYER_RESTRICTED 422 Аккаунт заблокирован, закрыт или самоисключён, либо действие отключено для игрока.
LIMIT_EXCEEDED 422 Лимит ответственной игры (депозит, ставка, проигрыш, баланс или сессия) не разрешает действие.
RESPONSIBLE_GAMING_RULE 422 Правило ответственной игры не разрешает изменение (например, сокращение самоисключения).
KYC_REQUIRED 422 Для этого вывода игрок должен пройти верификацию (KYC).
PAYMENT_REQUEST_INVALID 422 Платёжное правило отклоняет заявку (границы суммы, метод, дневные лимиты).
BONUS_INVALID 422 Бонусное правило не разрешает действие (исключённый игрок, лимит начислений, максимальная ставка).
PROMO_CODE_INVALID 422 Промокод неизвестен, истёк или уже использован игроком.
NOT_AN_ORIGINAL 422 Игра не является KinetX Original.
RATE_LIMITED 429 Слишком много запросов для этого API-ключа; подождите Retry-After секунд.
SERVER_ERROR 500 Непредвиденная ошибка. Повторите с тем же Idempotency-Key; обратитесь в поддержку с X-Request-Id.

Постраничный вывод

Списочные методы принимают page и per_page (1–100, по умолчанию 25) и возвращают meta и links рядом с данными:

json
{
    "data": [
        "…"
    ],
    "meta": {
        "current_page": 2,
        "per_page": 25,
        "total": 137,
        "last_page": 6,
        "from": 26,
        "to": 50
    },
    "links": {
        "first": "…?page=1",
        "last": "…?page=6",
        "prev": "…?page=1",
        "next": "…?page=3"
    }
}

Ограничения частоты

Каждый API-ключ по умолчанию может отправлять 600 запросов в минуту (сотрудники могут задать для ключа другой лимит). Токены игроков учитываются в лимите ключа, который их выдал. Каждый ответ сообщает остаток в X-RateLimit-Limit и X-RateLimit-Remaining; при превышении вы получите 429 RATE_LIMITED с заголовком Retry-After.

Версионирование

Версия — часть пути (/api/v1). В пределах v1 мы только добавляем: новые методы, необязательные параметры, поля ответа и события вебхуков. Игнорируйте неизвестные поля. Несовместимые изменения выйдут как v2 и будут заранее объявлены в журнале изменений.