# Область дії

## Обмеження за проєктом (Project)

Поле "Проєкт" дає змогу обмежити дію API ключа конкретним проєктом:

* **Будь-який** — ключ має доступ до всіх проєктів акаунта
* **Конкретний проєкт** — ключ працює лише з даними вибраного проєкту

Обмеження працює по-різному залежно від методу. У методах видачі це фільтр: відповідь успішна, але в ній лише дані проєкту. У методах, які адресують конкретний рахунок або гаманець, звернення до чужого об’єкта відхиляється з відповіддю `Restricted project`.

| Метод | Ключ, обмежений проєктом |
| --- | --- |
| `billing/balances` | Дані рівня акаунта, обмеження не застосовується |
| `billing/history` | Операції свого проєкту плюс операції рівня акаунта — поповнення й бонуси |
| `billing/tariffs` | Тариф і оборот лише за проєктом ключа |
| `invoices/list` | Видача лише за проєктом ключа |
| `payments/list` | Видача лише за проєктом ключа |
| `statistics/invoices` | Розрахунок лише за проєктом ключа |
| `statistics/payments` | Розрахунок лише за рахунками проєкту ключа |
| `invoices/create` | `projectId` у запиті має збігатися з проєктом ключа |
| `invoices/cancel` | Рахунок чужого проєкту недоступний |
| `invoices/bindPayment` | Рахунок чужого проєкту недоступний |

## Обмеження за областю дії (Scope)

Область дії визначає, які методи API доступні для використання ключем. Це обов’язкове поле з множинним вибором.

У разі спроби виклику методу, що не входить в область дії ключа, запит відхиляється з відповіддю `Restricted scope`.

## Комбінування обмежень

Обмеження за проєктом і областю дії працюють спільно. Наприклад, якщо ключ має обмеження лише для роботи з рахунками та прив’язаний до конкретного проєкту, то:

* Доступні лише методи роботи з рахунками
* Дані фільтруються лише за вказаним проєктом
* Запити до платежів або статистики буде відхилено
* Запити до даних інших проєктів буде відхилено
