先分清三条“钱路”,别把它们混成一条

API 账单里出现的钱,至少有三类,处理方式完全不同:

类型什么时候出现会不会变成余额怎么处理
手动购买 credit你点 Buy credits / Add to credit balance会,几分钟内到账等几分钟,查负余额
自动充值(Auto-reload)余额低于阈值时自动触发会,最低 5 美元一次查阈值、卡、月度上限
5 美元临时授权更新 API 支付方式时不会,7 天内撤销不要重复充值

很多人把第三类当成“充值失败又扣了一次钱”,于是再买一次,结果账单更乱。先把这三条分开,后面的排查才有意义。

充值流程里的五个数字

官方文档给的关键参数很固定:

  • 最低购买 5 美元,默认金额 10 美元;
  • Auto-reload 在开户时默认开启,可以在确认购买前关掉;
  • 自动充值最低 5 美元,可设余额阈值、恢复到多少、以及每月充值上限;
  • 购买的 credit 一年后过期,官方不能延长;
  • trust tier 决定账户能持有的最大余额,也影响自动充值的单次上限。

流程本身不复杂:进对应组织的 API billing overview → Add payment details → 选首次购买金额 → 决定是否保留 Auto-reload → 设阈值/恢复金额/月度上限(可选)→ 确认购买。

两个容易忽略的点:

  1. 组织要对。 如果你有多个 organization,充到 A 组织的钱不会出现在 B 组织的余额里,请求也会继续报余额不足。
  2. 免费 credit 先用。 账户里如果有免费额度,会先消耗免费额度,再用你买的 credit。看到“余额没怎么动”不一定是没充进去。

到账延迟与负余额:最常见的“充值失败”

到账延迟:官方明确说,购买成功后余额更新可能需要几分钟。这个窗口里刷新页面、重复下单,是造成重复扣款的主要原因。

负余额:API 在余额耗尽后不会立刻停止,延迟期间处理掉的请求会形成负余额。下次充值会先抵扣这部分,于是出现“充了 10 美元,只增加 3 美元”。这不是手续费,是补之前的用量。

官方还有一句很重要的提醒:不要把预付费余额当成“瞬时消费开关”。余额见底和请求被拒之间有时间差,高并发场景下这个差会放大。

自动充值不触发:查四个地方

Auto-reload 的逻辑是“余额低于阈值 → 自动买一笔,恢复到设定金额”。它不工作时,按这个顺序查:

  1. 阈值设对了吗? 阈值高于当前余额才会触发;有人把阈值设成 5 美元,余额 6 美元,自然不动。
  2. 支付方式还有效吗? 卡过期、限额、银行拦截都会让自动充值失败,官方说失败会发邮件。
  3. 月度上限用完了吗? 如果设了每月充值上限,达到后本月不再自动充值,要等下个月。
  4. 金额达到最低 5 美元了吗? 自动充值最低 5 美元;如果剩余额度不足 5 美元,系统可能只加剩余额度,或干脆不加。

这里有个官方特别指出的坑:手动充值不计入月度上限。所以“我刚手动充成功”不能证明自动充值通道正常;如果你的月度上限已经用完,手动还能充,自动却不动,这是设计如此。

另外,如果自动充值会让总额超过剩余月度额度,系统可能只加“剩余额度”那部分(前提是达到最低购买要求)。看到金额不是整数,不要以为是算错。

支付真的失败时,会发生什么

分两种:

首次购买失败:你会看到错误,账户不会加任何 credit。这时问题在支付侧——卡类型、发卡地区、账单地址、3DS。排查顺序见 OpenAI API 绑卡失败。

自动充值失败:官方说会发邮件;预付费模式下,API 用量会在余额耗尽后停止(仍受前述处理延迟影响)。这时要同时检查支付方式和阈值,别只换卡不看设置。

还有一种情况:支付被争议或退款。官方说,一旦某笔付款被 dispute 或 refund,等额的 credit 会从账户里扣回。也就是说,退款不是“白拿余额”,争议期间账户可能直接变成负的。

余额为正却仍然失败:三套限制是分开的

这是最容易被误判的一类。官方明确说:正余额不代表请求低于所有限制。至少还有三层:

  • 速率限制:RPM/TPM,超了返回 429;
  • 组织月度使用上限:组织级的用量天花板;
  • spend limit / 余额上限:由 trust tier 决定你能持有多少、能自动充多少。

所以错误码要先分清:

错误码/现象含义该做什么
credit_balance_exhausted预付费余额耗尽充值;注意负余额会先抵扣
429 / rate limit速率限制降并发、看 RPM/TPM,别充值
支付页报错卡/地区/3DS 问题按绑卡排查,不要重复下单
余额没变化延迟、负余额、组织选错等几分钟,查 billing overview
自动充值没动阈值/卡/月度上限逐项核对设置

关于退款和过期,别抱错预期

  • 过期:购买的 credit 一年后过期,官方不能延长。用量小的项目不要一次充太多。
  • 退款:credits 通常不可退,例外是法律/合同要求,或核实后的账单错误、确认的未授权活动、确认的服务故障/错误账户限制;已使用的部分通常只在未授权使用或账单更正时才可能处理。
  • 币种:API credits 只支持美元,不能像 ChatGPT 订阅那样选本地货币。

一张充值排查清单

  • 确认充的是正确的 organization
  • 充值后等几分钟再刷新
  • 检查是否有历史负余额被抵扣
  • 检查 Auto-reload 的阈值、恢复金额、月度上限
  • 确认支付方式未过期、未被银行拦截
  • 区分 5 美元临时授权与真实充值
  • 分清 credit_balance_exhausted 和 429
  • 记录到期日,别让 credit 过期

API 充值的难点不在“付钱”,而在“钱进来之后账怎么算”。把手动购买、自动充值、临时授权三条线分开,再按“延迟 → 负余额 → 组织 → 限额”的顺序排查,绝大多数“充值失败”都能在不重复付款的前提下解决。