# Portée de la clé

## Restriction de projet

Le champ Projet (Project) limite une clé d'API à un projet précis :

* **N'importe lequel (Any)** — la clé a accès à tous les projets du compte
* **Un projet précis** — la clé ne travaille qu'avec les données du projet choisi

La restriction se comporte différemment selon la méthode. Dans les méthodes de liste, c'est un filtre : la réponse est réussie mais ne contient que les données du projet. Dans les méthodes qui visent une facture ou un portefeuille précis, une requête sur l'objet d'un autre projet est rejetée avec `Restricted project`.

| Méthode                 | Clé restreinte à un projet                                                 |
| ---------------------- | --------------------------------------------------------------------------- |
| `billing/balances`     | Données au niveau du compte ; la restriction ne s'applique pas                          |
| `billing/history`      | Les opérations du projet plus les opérations au niveau du compte — recharges et bonus |
| `billing/tariffs`      | Tarif et chiffre d'affaires du seul projet de la clé                            |
| `invoices/list`        | Résultats du seul projet de la clé                                          |
| `payments/list`        | Résultats du seul projet de la clé                                          |
| `statistics/invoices`  | Calculées uniquement pour le projet de la clé                                       |
| `statistics/payments`  | Calculées uniquement sur les factures du projet de la clé                               |
| `invoices/create`      | `projectId` dans la requête doit correspondre au projet de la clé                     |
| `invoices/cancel`      | La facture d'un autre projet est inaccessible                                   |
| `invoices/bindPayment` | La facture d'un autre projet est inaccessible                                   |

## Restriction de portée

La portée définit quelles méthodes de l'API la clé peut utiliser. C'est un champ obligatoire à choix multiple.

Un appel à une méthode hors de la portée de la clé est rejeté avec `Restricted scope`.

## Combinaison des restrictions

Les restrictions de projet et de portée travaillent ensemble. Par exemple, si une clé est limitée aux méthodes de factures et liée à un projet précis, alors :

* Seules les méthodes de factures sont disponibles
* Les données sont filtrées sur le seul projet indiqué
* Les requêtes de paiements ou de statistiques sont rejetées
* Les requêtes sur les données d'autres projets sont rejetées
