> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/exchanger-api/nachalo-raboty/roles-and-responsibilities.md).

# Кто что делает: администратор, клиент, разработчик

Подключение API обычно проходит через три роли: администратор обменника, клиент и разработчик интеграции. Если эти роли не разделить, легко потерять ключ, выдать лишние права или не понять, почему запрос получает `403`.

## Коротко

| Роль          | Что делает                                                                                                    |
| ------------- | ------------------------------------------------------------------------------------------------------------- |
| Администратор | Включает API, разрешает клиенту доступ, задает scopes, лимиты, HMAC и IP allow-list.                          |
| Клиент        | Создает API-ключ в личном кабинете, сохраняет Bearer token и HMAC secret, передает их разработчику безопасно. |
| Разработчик   | Подключает API в своем приложении, отправляет запросы, подписывает HMAC, обрабатывает ошибки и webhooks.      |

## Общий порядок подключения

1. Администратор включает API в настройках обменника.
2. Администратор разрешает API конкретному клиенту.
3. Администратор назначает клиенту или ключу нужные права.
4. Клиент заходит в личный кабинет и создает API-ключ.
5. Клиент сразу сохраняет Bearer token и HMAC secret.
6. Разработчик добавляет ключи в безопасное хранилище своего приложения.
7. Разработчик проверяет `GET /ping` и `GET /private/health/client`.
8. Интеграция получает направления обмена и создает тестовую заявку.
9. Перед production включаются webhooks, HMAC и idempotency.

## Что нельзя делать

* Нельзя отправлять Bearer-токен в браузер, мобильное приложение или frontend-код.
* Нельзя хранить token и HMAC secret в GitHub.
* Нельзя давать ключу все scopes “на всякий случай”.
* Нельзя создавать заявки без `Idempotency-Key`.
* Нельзя доверять webhook без проверки подписи.
