# 密钥权限范围

## 项目限制

项目 (Project) 字段把 API 密钥限定到特定项目：

* **任意 (Any)**——密钥可访问账户中的所有项目
* **特定项目**——密钥只处理所选项目的数据

限制的表现因方法而异。在列表方法中它是过滤器：响应成功，但只包含该项目的数据。在针对具体收款单或钱包的方法中，请求其他项目的对象会被拒绝并返回 `Restricted project`。

| 方法                   | 密钥限定到项目时                                     |
| ---------------------- | ---------------------------------------------------- |
| `billing/balances`     | 账户级数据，限制不适用                               |
| `billing/history`      | 该项目的操作，加上账户级操作——充值和赠金             |
| `billing/tariffs`      | 只有密钥所属项目的费率和流水                         |
| `invoices/list`        | 结果只含密钥所属项目                                 |
| `payments/list`        | 结果只含密钥所属项目                                 |
| `statistics/invoices`  | 只按密钥所属项目计算                                 |
| `statistics/payments`  | 只按密钥所属项目的收款单计算                         |
| `invoices/create`      | 请求中的 `projectId` 必须与密钥所属项目一致          |
| `invoices/cancel`      | 无法访问其他项目的收款单                             |
| `invoices/bindPayment` | 无法访问其他项目的收款单                             |

## 权限范围限制

权限范围定义密钥可以使用哪些 API 方法。这是必填的多选字段。

调用密钥权限范围之外的方法会被拒绝并返回 `Restricted scope`。

## 限制的组合

项目限制和权限范围限制同时生效。例如，密钥限定为收款单方法并绑定到特定项目时：

* 只有收款单方法可用
* 数据只过滤出指定项目的
* 请求付款或统计会被拒绝
* 请求其他项目的数据会被拒绝
