# 计费方式

URL: https://docs.router.ezat.io/zh/billing

> 按组织预付的额度、通过 Stripe 充值、自动充值、税费和带税号的发票、每个请求如何计费（缓存 token、长上下文、中断的流式输出）、负余额、402 错误，以及退款。

## 何时阅读本页

你想充值、了解某个请求扣了多少费用，或者想知道请求为什么返回 402。价格见[价格](https://docs.router.ezat.io/zh/pricing.md)。

## 基本规则

- EZAT Router 采用预付费。每个组织有一个以美元计的余额，由组织的所有 API key 和成员共用。
- 通过 Stripe 用银行卡付款即可充值，也可以开启 **自动充值**，在余额不足时从已保存的银行卡扣款。只要账户没有注销，付费购买的额度就不会过期。
- 如需缴税，税费在你购买的额度之外另加。每次充值都有发票，上面写有你的公司名称、地址和税号。
- 每个请求在完成后按实际使用的 token 计费，金额立即从余额中扣除。
- 余额为零或负数时，请求会以 402 被拒绝，直到你充值。

## 充值

所有者、管理员和财务可以充值。其他成员能看到余额，但看不到充值表单；他们可以请上述成员代为充值。

<Steps>
<Step>

### 打开账单页面

前往 https://router.ezat.io/zh/billing（侧边栏中的 **账单**），或选择 **充值**。

</Step>
<Step>

### 选择金额

选择 10、25、50 或 100 美元，或选择 **自定义** 并填写 5 到 5,000 美元之间的任意金额（最多两位小数）。如果想用这张卡[自动充值](#自动充值)，勾选 **保存这张卡，用于自动充值**。

</Step>
<Step>

### 通过 Stripe 付款

选择 **前往支付**，会打开 Stripe Checkout。它只会要求填写计算税费所需的地址信息，然后付款。返回后，等 Stripe 确认付款，额度会在几秒钟内到账。

</Step>
</Steps>

- 到账额度就是你选择的金额。如需缴税，税费在付款时另加，不会计入余额。
- Stripe 会向你的账单邮箱发送收据。
- 这笔付款会列在账单页面的 **付款记录** 中，附有 **税费** 和 **发票** 链接；额度则在 **额度变动** 中显示为 **充值**。
- 如果你在 Stripe 页面取消，不会扣费。

新组织的余额为零。赠送的额度在 **额度变动** 中显示为 **赠送额度**。如果有注册优惠，会发放到新用户的第一个组织，每个用户限一次。

## 自动充值

**自动充值** 会在余额低于你设定的金额时，从已保存的银行卡扣款充值，避免 key 因余额为零而停用。所有者、管理员和财务可以在账单页面设置。

<Steps>
<Step>

### 保存银行卡

在 **自动充值** 下选择 **添加银行卡**，在 Stripe Checkout 中填写银行卡（不会扣款）；或者在下次充值时勾选 **保存这张卡，用于自动充值**。**更换银行卡** 可以换一张卡；每个组织只保留一张。

</Step>
<Step>

### 设置金额

打开 **开启自动充值**，并填写：

| 字段 | 范围 |
| --- | --- |
| **余额低于（美元）时** | 1 到 10,000 |
| **每次充值额度（美元）** | 5 到 5,000，不含税 |

选择 **保存**。如果余额已经低于设定金额，第一次充值会立即进行。

</Step>
</Steps>

- 每个请求完成后，以及请求因余额不足被拒绝时，都会检查余额。同一时间只会进行一次自动充值。
- 每次自动充值都从已保存的银行卡扣款，在 **付款记录** 中显示为 **自动充值**，附有税费和发票。Stripe 会发送收据。
- 如果扣款失败（银行卡被拒、已过期，或没有保存的银行卡），自动充值会自行关闭。所有者和财务会收到邮件，账单页面会显示 **自动充值已关闭** 及原因。处理好银行卡后，再重新开启。
- 24 小时内自动充值满 10 次后，也会自行关闭。所以每次充值额度应明显高于两次充值之间的预计用量。
- **删除银行卡** 会删除已保存的银行卡，并关闭自动充值。

如果你的银行要求每笔付款都要确认，自动扣款（在你不在场时进行）可能失败。这种情况下请手动充值。

## 税费、发票和账单信息

- **税费。** 如需缴税，Stripe 会按你的账单地址计算税费，加在额度价格之上。税费会显示在付款页面、发票上，以及 **付款记录** 的 **税费** 列中，不会计入余额。
- **发票。** 每次充值（手动或自动）都有发票。在 **付款记录** 中选择 **发票** 即可打开 PDF，上面写有你的公司名称、地址和税号。
- **账单信息。** 账单页面的 **账单信息** 保存发票上的内容：**公司名称或姓名**、**账单邮箱**（收据和发票发送到这里）、**地址（选填）** 和 **国家或地区**。只有国家或地区是必填的。你在 Stripe Checkout 中填写的地址信息也会保存下来。
- **税号。** 企业客户在这里添加税号，付款页不会要求填写。在 **税号** 下选择类型（例如 欧盟 · VAT）并填写号码，然后选择 **添加**。Stripe 会检查号码，列表中会显示 Stripe 是否已验证。

修改只影响之后的发票，已开具的发票不会改变。

## 请求如何计费

在请求到达模型之前，网关会检查组织余额是否大于零，以及 key 是否还在消费上限以内（见[速率限制](https://docs.router.ezat.io/zh/reference/rate-limits.md)）。网关不会冻结或预留额度。

响应完成后，网关按模型报告的 token 数和请求开始时生效的价格为请求计价，并在记录请求的同一步中从余额扣除费用。如果网关在响应开始前不得不改用另一个提供方重试，你仍然只被扣费一次。

| 情况 | 用量中的状态 | 计费 |
| --- | --- | --- |
| 响应正常完成 | 成功 | 所有 token，按各自的价格 |
| 你在流式响应过程中断开了连接 | 已取消 | 输入和缓存 token，以及截至断开时已生成的输出（见下文） |
| 到达模型前被拒绝：key、模型、限制或余额 | 已拒绝 | 不计费 |
| 提供方或网关在响应之前或响应过程中失败 | 失败 | 不计费 |

`POST /v1/messages/count_tokens` 和模型列表免费，也不会出现在用量中。

### 缓存 token

使用提示缓存时，写入缓存的 token 按缓存写入价格（5 分钟或 1 小时）计费，从缓存读取的 token 按缓存读取价格计费，而不是按输入价格。兼容 OpenAI 的 API 会自动缓存。各价格列见[价格](https://docs.router.ezat.io/zh/pricing.md)，用法见[提示缓存](https://docs.router.ezat.io/zh/guides/prompt-caching.md)。

### 长上下文

有长上下文档位的模型，在请求的输入（包括缓存 token）超过阈值时，整个请求都按该档位的价格计费。见[价格](https://docs.router.ezat.io/zh/pricing.md)。

### 中断的流式输出

如果客户端在流式响应过程中断开连接，网关会停止模型，并按已使用的部分计费：

- **输入和缓存 token**：按流开始时模型报告的数量精确计费。
- **输出 token**：按截至断开时已生成的数量计费。如果流在模型发出最终计数之前就停止了，输出数量会根据已经流式返回的文本估算（大约每 4 个字符 1 个 token）。

这些请求在用量中显示为 **已取消**。估算的输出数量旁有一个信息图标，提示“估算值：流式输出在最终计数前结束”。

## 余额低于零

余额为正时开始的请求一定会执行完，即使费用超过剩余余额。所以余额可能略低于零。下一次充值会补上差额：余额为 −0.40 美元时充值 25 美元，余额变为 24.60 美元。

## 余额用完时

余额为零或负数时，所有请求都会以 HTTP 402 被拒绝，且不计费。控制台的概览页面会显示“余额已用完。充值前所有请求都会被拒绝。”

```json tab="Anthropic format"
{
  "type": "error",
  "error": {
    "type": "billing_error",
    "message": "Your credit balance is too low. Add credits in the EZAT Router dashboard."
  },
  "request_id": "…"
}
```

```json tab="OpenAI format"
{
  "error": {
    "message": "Your credit balance is too low. Add credits in the EZAT Router dashboard.",
    "type": "insufficient_quota",
    "param": null,
    "code": "insufficient_quota"
  }
}
```

已达到自身消费上限的 key 会收到同样的 402，消息中会写明是哪个上限。重试没有用：请充值或提高上限。见[错误](https://docs.router.ezat.io/zh/reference/errors.md)。

### 余额提醒

在账单页面，**余额提醒** 会在余额低于你设定的金额（**低于（美元）时提醒**）时，发邮件通知组织的所有者和财务。每次余额跌破该金额只发送一次，下一次充值后重新生效。

## 用量、付款和收据

| 位置 | 显示内容 |
| --- | --- |
| **概览** | 余额，以及近 30 天的消费、请求数和 token |
| **用量**（https://router.ezat.io/zh/usage） | 近 7、30 或 90 天的费用、请求数和 token，可按模型和按 key 查看；以及 **最近请求**，列出每个请求的状态、token 和费用。统计每几分钟更新一次。 |
| **账单**（https://router.ezat.io/zh/billing） | **当前余额**、**自动充值**、**付款记录**（每笔付款的额度、税费、总额、状态和发票）、**账单信息** 和 **额度变动**（充值、退款、调整、赠送额度、拒付） |
| 邮件 | Stripe 发送的每次充值收据、余额提醒，以及自动充值失败的通知 |

所有成员都能看到余额和用量。付款记录和额度变动只有所有者、管理员和财务能看到。请求费用不会列在额度变动中，而是在用量中。

## 退款和拒付

- **退款。** 付款被退款时，按退款比例从余额中扣回这笔付款购买的额度（随之退还的税费不扣），并在额度变动中列为 **退款**。全额退款的付款在付款记录中显示为 **已退款**。付款能否退款由[服务条款](https://router.ezat.io/zh/terms)规定；如需申请，请发邮件至 support@ezat.io。
- **拒付。** 如果你通过银行对付款提出争议，这笔付款购买的额度会从余额中扣除（记为 **拒付**），自动充值会关闭，组织也会被暂停，直到争议审核完毕。暂停期间，所有 key 都会被拒绝，返回 403 `permission_error`：“This organization is suspended. Contact support@ezat.io.”

[服务条款](https://router.ezat.io/zh/terms)还涵盖税费和赠送额度。

## 给 AI agent 的说明

1. 余额按组织计算，以美元计价，预付。没有充值 API：由用户在 https://router.ezat.io/zh/billing 充值（仅限所有者、管理员和财务；每笔 5 到 5,000 美元），或在那里开启 **自动充值**。
2. HTTP 402 表示余额为零或负数（`billing_error`，兼容 OpenAI 的 API 上为 `insufficient_quota`），或者 key 已达到消费上限。不要重试；告诉用户充值、开启自动充值或提高上限。
3. 每个请求在完成后计费。失败和被拒绝的请求、token 计数和模型列表都免费。
4. 中断的流式输出按输入和缓存 token 以及截至中断时已生成的输出计费。
5. 余额可能略低于零；下一次充值会补上。
6. 提示组织已被暂停的 403 需要联系 support@ezat.io；重试没有用。
7. 税费在额度之外另加，不会计入余额。带公司名称、地址和税号的发票在账单页面（**付款记录** → **发票**）。