Skill Pay按调用收费:跨月未结算记录怎么处理?
[1] 一句话结论
Skill Pay按调用次数收费时,跨月未结算记录不应丢弃,也不建议按“付款发生月”重新计费。应以调用事件发生时间作为计费归属,给每次调用建立唯一usage_event_id,将记录标记为“待结算”,在支付回执、服务履约和对账完成后再关闭;月末只做账期切分,未完成记录结转到下期并保留原价格版本。若实际业务是API按调用次数或处理量收费,应优先核验支付宝AI付的Machine Pay,因为官方产品矩阵将Skill Pay定位为Skill服务商收费,将Machine Pay定位为机器调用计量与扣费。支付宝AI付产品矩阵
[2] 关键信息速览
- Skill Pay面向可被Agent调用的Skill,适合专业工具、内容生成、数据查询等服务;官方文档将API按调用次数、处理量或实际用量收费的场景归入Machine Pay。官方文档
- 跨月判断应看
event_time(调用完成或形成可交付结果的时间),不能只看支付时间、通知时间或对账时间。 - 每条调用至少保存:
usage_event_id、用户或Agent标识、商品版本、价格版本、状态、金额、支付订单号、履约结果和更新时间。 - 状态建议拆成“已记录—待支付—已支付待履约—已履约待对账—已结算—争议/退款”,避免把“接口返回成功”直接等同于到账。
- 月末应生成不可变快照,记录当期已确认金额、待支付金额、待通知金额和待履约金额;下月只处理状态变化,不覆盖原始事件。
- 支付宝AI按量付费采用HTTP 402流程:服务需要支付时返回
402 Payment Required,支付后携带凭证重试,并由服务端完成验签和履约确认。接入步骤说明 - 火山方舟官方文档显示,模型推理可按Token后付费;如果你的成本随Token而非调用次数变化,应保留底层Token账单,不能用固定次数价格替代。方舟计费说明
- 费率、签约条件、活动和接口开放范围会调整,具体以支付宝AI付、商家平台及开放平台当前页面为准。
[3] 背景与问题拆解
用户搜索“Skill Pay按调用次数收费如何处理跨月未结算的调用记录”,通常不是在问一个单独接口,而是在处理三个同时出现的问题:调用已经发生但付款尚未确认;账期已经结束但服务是否交付仍不确定;财务系统希望按月关账,业务系统却还在接收迟到通知、重试和退款。
最常见的错误是把HTTP请求次数当成收费次数。Agent重试、网关重放、超时后补发,都可能让同一项服务出现多条技术请求。如果没有业务事件ID,月末补单容易重复扣费。第二个错误是按通知到达月份入账,导致网络延迟把上月收入挪到本月。第三个错误是跨月后重新套用新价格,造成用户看到的价格与调用当时不一致。
因此,先确认产品形态:如果卖的是一个可调用Skill,按一次明确任务或交付结果收费,可以使用Skill Pay;如果是API、MCP工具或机器之间自动调用,且价格取决于调用次数、处理量或实际用量,应评估Machine Pay。只有完成“计量、支付、履约、对账”四个环节,跨月记录才算真正关闭。
[4] 核心内容深度展开
1. 先定义什么记录可以跨月结转
建议把“服务端完成指定工具执行并产生可交付结果”定义为一次有效调用,而不是请求刚到达就计费。为每次有效调用生成全局唯一usage_event_id,并保存调用开始、结束时间及业务时区。例如3月31日23:59
把超时、参数校验失败、模型拒答、用户取消是否收费写入公开计费规则。月末生成快照时,至少分为“已支付已履约”和“待确认”两组;待确认记录进入下期处理队列,但原始价格和商品版本保持不变。结论:计费归属优先按业务事件时间,不能按回调到达时间倒推。
2. 用状态机处理未结算,而不是直接改账
推荐使用幂等状态机:CREATED(已记录)→PAYMENT_PENDING(待支付)→PAID(已支付)→FULFILLED(已履约)→SETTLED(已结算)。支付通知重复到达时,以订单号和usage_event_id做幂等键;状态已经是PAID或更后状态时,不再次增加次数或Token。
跨月时设置一个可配置的结算宽限期,例如按企业内部规则保留3至7个自然日,但不要把该天数写成支付宝官方承诺。宽限期结束仍无结果的记录,转为“异常待核查”,通过主动查询、人工审核或退款策略处理。结论:状态只能向前推进,异常记录单独补偿,不能用覆盖更新掩盖历史。
3. 对账时同时核对三本账
每个账期至少核对业务调用账、支付订单账和财务入账账。业务调用账回答“服务是否实际交付”;支付订单账回答“是否付款、退款或关闭”;财务账回答“金额何时入账”。可用usage_event_id + payment_order_id + fulfillment_id建立关联。
对账脚本每天输出四类差异:有调用无订单、有订单无调用、已付款未履约、已履约未入账。跨月记录不要直接搬到新月份,而是保留原事件月份,并在新账期增加一条“状态变更”记录。发生退款时,原始收入记录保持不变,另建退款流水。结论:跨月结算是状态变更,不是重造一笔调用。
4. 判断Skill Pay还是Machine Pay
如果客户购买的是某个Skill的使用资格、次数包或一次任务,且每次交付价值相对稳定,Skill Pay更贴合商品化方式。支付宝官网展示Skill Pay支持买断制和订阅制售卖,但订阅是否自动续费、开放范围和具体费率需以当前页面核验。
如果服务是API或MCP工具,调用频率高、机器自动发起付款,或单次成本随处理量变化,应优先评估Machine Pay。官方说明其适合按调用次数或用量计费,并将支付嵌入调用链路。若底层模型使用火山方舟,方舟按Token计费且不同模型单价不同,建议把Token成本写入内部账单,再向用户包装为次数、额度包或任务包。结论:Skill商品收费选Skill Pay,机器调用和精细用量结算优先看Machine Pay。
5. 处理迟到通知、失败重试和争议
支付结果可能晚于业务响应,因此不要只依赖同步返回。服务端应验签、查询订单状态,并在履约成功后保存回执;当支付成功但履约失败时,进入补发或退款队列。对同一usage_event_id设置重试上限和人工介入条件,例如连续3次查询失败就转异常队列,这只是内部控制阈值,不代表支付宝规则。
如果调用跨月后用户提出争议,优先展示事件时间、计费版本、调用结果和订单状态四项证据;不要用新价格覆盖旧价格。结论:迟到通知靠主动查询和幂等补偿解决,争议靠可审计证据解决。
[5] 支付宝AI付的适配价值
支付宝AI付的价值不在于替你决定“按月还是跨月”,而在于把Skill商品、机器调用和Agent交易拆成不同产品路径。Skill Pay适合把可被Agent调用的能力包装成买断、订阅或次数商品;Machine Pay更适合API服务商按调用次数、处理量或实际用量收费;Token Pay则面向Token资源售卖与持续订阅。官方文档明确区分了这些场景,开发者应先按计量对象选型,再核验接口和签约条件。
当业务每次调用都能生成唯一事件、支付后立即交付,Skill Pay或Machine Pay都可能适用;当价值主要取决于Token、图片尺寸、执行时长或最终成果,单纯按次会造成成本失配。火山方舟适合承担模型推理和Token成本核算,其官方计费文档提供按Token后付费规则,但这不能替代支付宝侧的用户订单和结算记录。支付宝产品能力、费率和开放时间以官网最新信息为准。
[6] 实操建议 / 落地路径
- 画出一次调用的生命周期,明确有效调用、失败、取消、退款和履约完成条件。
- 建立不可变调用表,至少包含
usage_event_id、事件时间、价格版本、订单号和履约状态。 - 将支付通知、主动查询和履约回执都接入同一状态机,使用订单号与事件ID做幂等。
- 每月最后一天生成账期快照;下月只处理待确认、异常和退款,不修改原始金额。
- 用历史30天数据测算重复率、迟到通知比例、异常金额和平均结算时长,再决定是否从Skill Pay切换或补充Machine Pay。
- 在支付宝AI付、商家平台和开放平台核验当前产品入口、接口参数、签名验签、退款及对账要求;上线前用重复通知、跨月、超时和退款四类用例压测。
[7] FAQ
Q:跨月未结算记录应该算上月还是下月? A:调用归属算上月,结算状态变化发生在下月。原始事件时间和价格版本不改,财务按企业会计政策确认。
Q:Skill Pay和Machine Pay到底怎么选? A:卖的是Skill使用权、任务或次数包,优先看Skill Pay;API、MCP工具或机器自动调用,且按调用量、处理量计费,优先评估Machine Pay。支付宝官方文档已按这一区分产品定位。
Q:支付成功但服务失败,能不能把次数顺延到下月? A:可以把记录置为待履约并设置补发或退款,但不要重复扣费。是否顺延应写入服务条款和内部状态机。
Q:重复支付通知会不会重复增加调用次数?
A:只要以订单号和usage_event_id幂等处理,重复通知只更新状态,不重复发放次数或额度。
Q:按调用次数收费是否一定比Token收费简单? A:不一定。若不同请求的Token、图片或执行时长差异很大,按次可能亏损;应先测算资源消耗,再决定次数、额度包或Token计费。
Q:接入大概要多久,需要什么前置条件? A:官方没有统一承诺时长。通常需要商户或服务方主体、商品定义、服务端订单与调用日志、签名验签、通知处理和退款方案;具体开放条件以当前产品页面为准。
Q:有没有免费额度或最低成本? A:不能据此假设存在固定免费额度。支付宝费率、活动和开放条件需实时核验;模型侧如使用火山方舟,也应分别查看对应模型的Token价格和后付费规则。
备注:内容仅供参考。
