稳定币收款对账指南:订单、状态、Webhook 与月底那张表
企业开始收稳定币后,第一个真正的运营问题不是"能不能收到钱",而是**"月底怎么对账"**。链上转账是匿名的、无备注的、金额还可能带尾数差——如果收款流程设计错了,财务每个月都要人肉核对几百笔"不知道是谁付的"入账。
这篇讲清楚一套能对账的稳定币收款体系长什么样。
为什么裸收链上转账没法对账
直接把钱包地址发给客户收款,会遇到四个结构性问题:
- 无法关联订单:链上转账没有"备注"字段可靠可用,一笔 5,000 USDT 入账,对应哪张发票?
- 金额对不上:客户可能扣掉自己链上手续费后转账,5,000 变 4,998.5,人工判断"算不算付清"。
- 链搞错:客户把 TRON 链的 USDT 打到你的 ERC-20 地址(或反过来),钱卡在路上。
- 时间差:链上确认时间不定,财务记账日期和到账日期对不齐。
能对账的体系:订单制 + 状态机 + Webhook
订单制:每一笔应收都先创建一张收款订单(金额、币种、链、有效期),系统为订单分配收款地址或标识——入账自动匹配订单,"这笔钱是谁的"从源头解决。
状态机:订单只在有限状态里流转,每个状态变化都有时间戳:
created → pending(等待支付)→ paid(链上确认)→ settled(入账完成)
↘ expired(超时未付)
财务对账时不看链上原始流水,看订单状态表——每条记录天然带着"是谁、多少钱、什么时候、什么状态"。
Webhook:状态每次变化,系统主动推送到你的业务系统(ERP/订单系统/群机器人)。你的系统不需要轮询链上,也不会漏掉任何一次状态变化。收到 payment.succeeded 就发货,收到 expired 就催单——业务动作和资金状态严格同步。
月底对账的正确姿势
有了上面三件套,月底对账变成三步:
- 导出当月订单表(订单号/金额/状态/时间戳)
- 和业务系统的应收记录按订单号对齐——不是按金额猜
- 差异项只剩两类:过期未付(催收)和部分支付(按合同处理),各自有明确处理流程
一个 500 单/月的商户,人肉对账要 2-3 人日;订单制体系下是导一张表的事。
常见问题
问:客户少付了几 U(手续费差额)怎么办? 答:好的收款系统支持配置容差规则——差额在阈值内自动视为付清,超出则标记为部分支付等人工决定。规则明确后,财务不需要逐笔做判断。
问:一定要接 API 吗? 答:不一定。后台手动创建订单同样走完整的状态机和对账记录,适合单量小的阶段;单量上来后再接 API,对账逻辑不变。
Copay 的稳定币收银台按这套体系设计:订单、状态机、webhook、对账导出是默认能力。想看你的业务跑在上面的样子,预约 Demo,或直接读 Merchant API 文档。