Ключи и режимы
Ключи sk_test и sk_live, области действия, тестовый и боевой режим
Ключ определяет и права, и режим работы. Тело запроса на режим не влияет.
Два вида ключей
| Ключ | Режим | Что происходит |
|---|---|---|
sk_test_… | тестовый | Работает тестовый банк. Деньги не двигаются, SMS не отправляются. |
sk_live_… | боевой | Реальные карты и реальные списания. Выдаётся после допуска продукта. |
Данные режимов полностью изолированы: карта, привязанная тестовым ключом,
не видна боевому и наоборот. Объект чужого режима отвечает 404, как
несуществующий.
curl https://api.assalam.uz/v1/balance \
-H "Authorization: Bearer sk_test_..."
# альтернатива, если Bearer неудобен
curl https://api.assalam.uz/v1/balance \
-H "X-Api-Key: sk_test_..."{
"message": "Missing API key",
"error": "Unauthorized",
"statusCode": 401
}Где хранить ключ
- Только на сервере — в переменных окружения или хранилище секретов.
- Никогда в браузере, мобильном приложении или репозитории. Для клиентской части есть отдельный одноразовый токен сессии привязки.
- Ключ не восстанавливается: при утере выпускается новый, старый отзывается.
- Ключи можно отзывать по одному — заведите отдельный ключ на каждую среду.
Если ключ утёк
Немедленно отзовите его в кабинете и выпустите новый. Отзыв действует сразу:
следующий запрос со старым ключом получит 401.
Область действия ключа
При выпуске выбирается, что ключу доступно. Смысл не в удобстве, а в размере беды при утечке: ключ магазина, которому нужна только оплата корзины, не должен уметь списывать с сохранённых карт клиентов.
| Область | Что доступно |
|---|---|
| Продажа товаров | /merchant/v1/orders — заказы и ссылки на оплату. Карт клиентов ключ не касается. |
| Карты и списания | /subscribe/v1/… — привязка карт и списания с них. |
| Всё сразу | Обе поверхности. Берите, только если нужны обе. |
Обращение не к своей поверхности отвечает 403 и называет обе области —
имеющуюся и нужную, чтобы не пришлось гадать. События, баланс и возвраты
доступны любому ключу: они нужны обеим поверхностям.
Сменить область у выданного ключа нельзя — выпустите новый и отзовите старый. Ключи, выпущенные до разделения поверхностей, работают как прежде: у них полный доступ.
Переход в боевой режим
Боевой ключ выпускается только после допуска продукта. До этого:
- запрос боевого ключа отклоняется с пояснением;
- боевой платёж не пройдёт, даже если ключ уже выпущен, а рельса банка не
настроена — вы получите
503с явной причиной, а не тихий переход в тестовый режим.
Такое поведение выбрано намеренно: молчаливый откат в тест на боевых деньгах опаснее внятной ошибки.