计费、积分与订阅

一次调用能不能发出去、发出去以后钱从哪扣,取决于一条三级判定链: BYOK > 订阅 > API 扣费。理解这条链,账单上的每一分钱都能对上。

三级计费链

BYOK(自带厂商凭证)

用你自己的上游厂商凭证调用。平台侧完全不扣费——费用直接产生在你自己的厂商账户上。 凭证归属要路由之后才知道,所以入口不做预判,在计费收尾时识别并跳过扣费。

订阅(subscription)

有生效中的订阅时,额度内的调用只记量不扣费。 订阅同时会带来一套限制策略,优先于 API Key 上手动挂载的策略,见 限流、配额与并发

API 扣费(payg)

没订阅,或订阅额度已用完,就走按量扣积分。前提是账号开启了「API 扣费访问」开关。

入口门槛:请求为什么被拒

走到 payg 这一级时,网关按顺序检查三道门槛,任何一道不过就直接拒绝:

顺序检查不通过时
1「API 扣费访问」开关是否开启 403 40202(无订阅)
429 42906(有订阅但额度用完)
2本月订阅外消费是否已达上限 429 42906 本月订阅外消费额度已达上限
3积分是否够(或能否自动兑换) 429 42907 积分不足,请充值或开启自动兑换
⚠️
新账号最常见的第一个错误:40202

未订阅、未开 API 扣费的账号,第一次调用就会撞上 40202 未订阅会员且未开启API扣费访问。如果账号还没实名, 错误信息里会追加一句引导——完成实名认证即可免费获得使用额度。这不是 bug,是设计。

🔒
计费资格判定是 fail-closed 的

计费预检数据加载不出来时,网关拒绝请求(返回 500 计费资格校验暂不可用,请稍后重试),而不是放行。 这和限流层「故障放行」的策略正好相反——宁可拒服务,也不产生无法计费的调用。

积分与余额

🧮
1 元 = 1,000,000 积分

积分是扣费的实际单位。用百万分之一元作最小粒度,是因为单次调用的费用经常小于 1 分钱, 用「元」做单位会在四舍五入里丢掉真实成本。

账户里有两个独立的资产池:

积分(points)

调用直接扣的东西。可由余额兑换而来,也可以通过活动、礼品码等方式获得。

余额(balance)

充值进来的钱,单位元。不直接用于调用,需要兑换成积分。

自动兑换

开启「自动兑换」后,积分不足时网关会在扣费事务里自动从余额兑换: 按 1 元粒度兑换,缺多少兑多少(缺口 ÷ 1,000,000 向上取整),兑完再扣。 兑换与扣费在同一个事务里完成,余额记录页能看到 auto_exchange 流水。

没开自动兑换、积分又不够,就会被 42907 拒在门外——即使余额还有很多。 这是新用户第二常见的困惑:充了钱却报积分不足。去后台开启自动兑换,或手动兑换一次即可。

订阅外月度上限

账号可以设一个「订阅外消费月度上限」(单位元)。设为 0 表示不限。 它只统计走 payg 的消费,是一道防跑量的保险——比如脚本写错死循环调用时,损失有上界。

费用是怎么算出来的

单次调用的费用由基础价格乘上一串百分比倍率得到:

billing formula
费用 = tokens / 1,000,000 × 模型单价
       × 策略倍率 × 策略折扣/100
       × 系统倍率/100
       × 网关倍率/100
       × 厂商倍率/100
       × 凭证倍率/100
       × 用户倍率/100
因子来源基准
模型单价模型定价表,输入/输出/缓存分别计价
策略折扣限制策略的 discount,80 即 8 折100
系统倍率全局配置100
网关倍率你实际命中的网关节点100
厂商倍率上游厂商配置100
凭证倍率实际命中的上游凭证100
用户倍率你的账号折扣,可带有效期100
💡
所有倍率一律以 100 为基准,异常值兜底 100

任何一个因子读到 0、负数或脏数据,都会被归一成 100(原价)。 设计取向很明确:宁可按原价收费,也不让脏数据放大折扣或把账单清零。

用户倍率还带有效期——到期后自动恢复 100。日志里记录的是调用当时的倍率快照, 事后改倍率不会让历史账单漂移。

查询你的实际价格

公开定价接口会把系统倍率、用户倍率、厂商倍率、凭证倍率一起下发, 带上登录 token 时返回的是你个人的倍率(匿名一律 100):

GET /api/v1/user/user/pricing

字段说明见 平台管理 API

什么情况下不扣费

⚠️
上游报错不一定不计费

请求已经打到上游、上游开始生成后才失败(比如流式中断), 已经产生的 token 上游照收,这部分会计入你的账单。 这也是为什么不要对已经开始出字的流式请求做无脑重试

对账

后台提供三份互相印证的记录,排查费用问题按这个顺序看:

记录看什么
调用日志每次调用的模型、token 数、计费状态、当时生效的各项倍率快照
消费记录每笔扣费的金额构成
余额/积分变动充值、兑换(含 auto_exchange)、消费的完整流水

订阅额度内的调用在调用日志里标记为 subscription_covered,消费记录里金额为 0—— 「有调用但没扣费」通常不是漏记,而是订阅覆盖了。