核验清单

  • ✓在账单页把三件事拆开:自动充值的月度充值上限、花费告警、以及有没有打开 Enforce a hard limit。
  • ✓遇到 429 先读 error.code。硬限额、用量档、余额耗尽和速率限制不是同一种失败,不要因为状态码是 429 就重试。
  • ✓负余额是处理延迟里多出去的用量,下一笔购买会先扣掉它。面板显示 0 不能证明流量已经停。
  • ✓Limits 页上的核准月度用量是另一列。档位按累计购买的积分金额升级,不按这个月花掉的金额。
  • ✓新账号开通预充值时自动充值默认开启。手动购买不计入月度充值上限,已有积分仍可被用完。

1. 你填的那个数字,限制的是自动买积分

新 API 账号走预充值:先买积分,再发请求。免费积分先于已购积分被消耗。开通时自动充值默认是开的。要填的是余额低于哪条线就补、补回到多少,以及可选的月度充值上限。单笔最低 5 美元,开通流程里的默认购买额是 10 美元。余额数字可能要几分钟才追上实际入账。信任等级由用量和付款记录决定,它限制账户能持有的最高余额和单次最高充值额;具体数字以你自己的账户页为准,别人的截图不能当上限。

月度充值上限有三条容易看反的规则。手动购买不计入这个上限。自动充值如果会超过剩余额度,只补差额,而且差额仍须达到 5 美元最低额,否则这笔自动充值不会发生。这个月的自动充值额度已经用完,就等到下个月,期间不再自动买。这三条都在说「还能不能自动买」,没有一条在说「已经买到的积分能不能花」。充值上限不是用量上限。积分还在账上,请求就还能出去。把「我设了 50 美元」理解成「这个月 API 最多花 50 美元」,对不上账单。

按月出账的账号也可以另买积分,用来抵当月发票。那笔购买同样不是硬限额。财务若只导出一张「月度上限」截图,工程侧无法判断截的是充值上限、告警还是硬限额。

2. 告警、硬限额、官方用量档是另外三道门

花费告警只发通知,流量继续。路径在 Organization limits,或 Project settings 的 Limits、Spend:Edit spend limit,填 Monthly spend limit。不打开 Enforce a hard limit,这个数字不会让 API 失败。开关打开之后,组织级 429 的 error.code 是 organization_spend_limit_exceeded;项目级是 project_spend_limit_exceeded。组织硬限额覆盖该组织下全部项目;项目硬限额只挡记到该项目的流量。执行不是瞬时的,已记录花费可以略超你填的数。告警在硬限额旁边仍然有效。

抬高或取消已经触达的硬限额,流量要等配置传播之后才恢复;不改的话,等到下一个月度周期重置。官方另外核准的月度用量是第四道门,触达时的 code 是 organization_usage_limit_exceeded。它和你自己填的 spend limit 不是同一个字段。档位按累计购买的积分金额升级,不按这个月花掉的金额。核验于 2026-10-13 的费率页:允许地区的 Free 是每月 100 美元用量;累计购买满 5 美元进 Build,核准用量 500 美元;满 100 美元进 Launch,5,000 美元;满 500 美元进 Grow,20 万美元。门槛会改,对账以 Limits 页写给你的核准额为准,不要背某个模型的 RPM。

账户里有正余额,也不等于这次请求在所有限制之下。速率限制、核准月度用量、用户配置的硬限额分开执行。余额充足仍 429,先看 code,再决定是买积分、抬限额,还是等速率窗口。

3. 余额见底不会瞬间停,负数从下一笔扣

预充值用尽时的错误是 credit_balance_exhausted。不要把面板上的 0 当成已经停机。文档写明 API 不一定立刻停:延迟窗口里的用量可以记成负的积分余额,下一笔购买会先扣掉这笔负数。所以「余额到 0 就安全」不成立。你以为停了的那几分钟,已经变成下一张发票上的减项。

初始付款失败,积分不会加上,请求仍按没买到处理。自动充值失败会发邮件;用量要等到可用余额耗尽才停,而且同样受那段延迟约束。付款被拒付或退款,等额积分会被移除。已购积分一年后到期,OpenAI 不能延长已购积分或赠送积分的有效期。除法律、合同或获批例外之外不可退;例外限于已核实的账单错误、已确认的未授权活动、已确认的服务故障或错误的账户限制。已经用掉的积分,只有确认的未授权使用或已核实的账单更正可以退。把「还有余额」当成「还能退」,和把充值上限当成熔断器,是同一类错。

4. 429 不是同一种失败,重试会把账单错误放大

临时速率限制的 429 和过载 503 会带 Retry-After。官方 SDK 会重试符合条件的这两类。slow_down 是爬坡触发的 429 速率错误,server_is_overloaded 是 503。文档同时写明:配额、账单,以及其他需要人去改设置的错误,不要重试。硬限额也是 429,但 code 是上面那两个 spend limit。只看状态码就退避重试,等于在已经挡住的窗口里继续打,延迟窗口里的用量还可能记成负数。

按 code 恢复,不要按状态码恢复。spend limit:抬高或取消对应范围的硬限额,等传播。 organization_usage_limit_exceeded:申请更高的核准用量,不是再买一笔就能立刻换档——档位看的是累计购买,核准额是另一列。 credit_balance_exhausted:买积分,并接受下一笔会先填负数。速率限制的 code 才去看速率文档。日志里若只存了 HTTP 状态,这四条路在事后无法区分。

5. 给卡充值和这四本账不是一回事

对账时列四列。第一列是自动充值是否仍默认开启,月度充值上限还剩多少,手动购买有没有被误算进去。第二列是硬限额开关开没开、作用在组织还是项目,告警是不是被当成了开关。第三列是 Limits 页上的核准月度用量,以及档位是按累计购买而不是按本月消耗升的。第四列是失败响应里的 error.code,对照余额是正、是零还是负。

给支付卡注资是第五本账。链上把稳定币换成能入卡的资产,发生在向 OpenAI 买积分之前,不改变上面任何一列,也不延长积分有效期,更不等于 API 余额本身。需要这一步时,可以用无需注册、非托管的 AllSwap 完成链上兑换。兑换成功只说明资产换了手,不说明预充值、硬限额或用量档已经放行。