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