Как аутентифицируется запрос
Заголовок Authorization несёт Bearer-учётку в виде идентификатора ключа и секрета, соединённых точкой. Идентификатор выбирает аккаунт, а секрет проверяется HMAC-сравнением; неудачная проверка отвечает 401 с MISSING_API_KEY или INVALID_API_KEY ещё до выполнения самого маршрута. Больше ничего не проверяется — ни куки, ни CSRF-токен, ни заголовок origin.
Список разрешённых IP
Ключ можно закрепить за набором исходных адресов. Пока этот список непустой, запрос с любого другого адреса отклоняется с IP_NOT_ALLOWED и HTTP 403 — раньше ограничения частоты и раньше любого обращения к кошельку, — поэтому украденную учётку нельзя использовать вне вашей инфраструктуры. Пустой список означает, что ключ работает откуда угодно.
Состояние аккаунта
Два условия уровня аккаунта прерывают любой эндпоинт: отключённый аккаунт отвечает ACCOUNT_DISABLED, а замороженный — ACCOUNT_FROZEN, оба с HTTP 403. Сами по себе они не снимаются, поэтому передайте их человеку, а не повторяйте запрос в цикле.
Ротация ключей
Ключи создаются и удаляются на странице API Access в панели реселлера. Секрет показывается один раз при создании, поэтому ротация — это создать, выкатить, удалить, а не отредактировать на месте. Учётки не истекают сами, значит расписание ротации задаёте вы.
Впервые на платформе? Начните с обзора API пополнения игр для реселлеров, а затем прочитайте обзор реселлерской программы SHOP2TOPUP, чтобы понять, как устроен партнёрский аккаунт.