退款不是把钱退回去,是三条账要同时平。
一、点一下退款按钮,三张表开始不一致
一个客户在第 6 天写信来,说年付的 120 美元想退。他打开后台点了退款,通道当天退回原卡,payments 表的状态改成 refunded,事情看起来结束了。月底做报表时,收入确认表上这笔 120 美元还挂在已确认收入里——没有人把它冲掉。
以下情境为教学假设,人物、引语和数字不代表经核实的真实案例。
这一篇的基线是每月 3 笔退款,平均每笔 12 美元,合计 36 美元/月、432 美元/年,占年确认收入 20,520 的 2.11%。比例不大,但它牵扯的表比收入本身多:一笔退款要同时改动支付通道的流水、内部的 payments 记录、以及按月确认的收入。
退款和拒付(chargeback)常被混着说,其实是两件事。退款是自己主动退,钱从自己的账户出去;拒付是客户找发卡行申诉,钱被强制扣回,还要付一笔罚金。前者是服务决策,后者是争议处理,账务上都要冲减收入,但流程完全不同。
退款也不是「获客成本」或「坏账」。它是收入的负数,必须冲减对应的确认收入;把它塞进市场费用,会让毛利看起来比实际好,也会让「退款率」这个指标从此消失。
一个人做产品时,退款请求通常先到邮箱而不是后台:客户找不到退款入口,就写信;信里往往还带着一句「你们是不是自动续费了」。处理这类信的时限最好写死,48 小时内必须有一个明确答复,哪怕答复是「需要走人工审批」。
退款入口藏得太深,客户就会改用拒付。后台里翻不到「取消」或「退款」,最省事的路径是给银行打电话;把入口放进账单页,比在 FAQ 里写一整段说明有效得多。
退款理由大致四类:买错了套餐、功能不符合预期、被重复扣款、服务出过事故。前两类按政策退,第三类必须先查幂等键和账本,第四类通常还要补一张善意补偿的贷记单。
退款率还会被定价和文案影响。年付页面上写「随时可退」的产品,退款率一定高于写「14 天内可退」的产品;这不是客户变坏了,是承诺本身不同。把承诺写清楚,退款反而更好处理。
退款政策要放在付款按钮旁边,不是服务条款第 9 条。客户付款前看到「14 天内可退」,退款时就不会觉得被骗;看不到,就会把「不退」当成默认规则,然后去找银行。
所以真正要设计的不是「退不退」,而是退款发生时,哪三张表要一起改、由谁改、改完怎么核对。下面按这个顺序拆。
二、四种退款与两个窗口
退款不是一种,是四种。它们的金额算法、审批路径和单据都不同。
| 类型 | 触发 | 金额 | 账务处理 | 窗口 |
|---|---|---|---|---|
| 全额退款 | 购买后短期内反悔 | 原额 | 冲销整张发票,开贷记单 | 7 天 |
| 部分退款 | 按未使用天数 | 剩余天数 ÷ 周期天数 × 已付 | 贷记单 + 退款单,按比例分摊税 | 14 天 |
| 善意退款 | 服务事故或投诉 | 自定义,常见 1 个月 | 贷记单,备注原因与审批人 | 30 天,人工 |
| 撤销 | 结算前取消授权 | 原额,尚未结算 | 不产生退款单,作废授权 | 结算前 |
部分退款的公式只有一个:剩余天数 ÷ 周期天数 × 已付金额。一笔 15 美元/月的订阅,在第 18 天申请,剩余 12 天,退 12 ÷ 30 × 15 = 6.00 美元。它已经超过 14 天窗口,所以走人工,但金额仍按这个公式算。
分母必须用真实周期天数,不能用固定的 30。月付遇到 31 天的月份、年付遇到 365 或 366 天,用错分母每笔只差几美分,一年几十笔就是一笔对不上的尾差。年付的分母是 365,闰年是 366。
取整按分截断,并且统一向下取整。向上取整看起来只多给客户一分钱,但退款笔数一多,通道流水与内部表的差额会稳定地偏一个方向,对账时很难解释。
窗口的意义是「不需要审批」的边界,不是「能不能退」的边界。14 天内自动退,超过 14 天走人工;人工审批看的是理由和金额,不是日期本身。把窗口写成硬拒绝,会把一个本来只需要回一封邮件的客户,变成一条公开的差评。
善意退款要走人工,审批人最好就是写政策的那个人。一个人做产品时,这条很容易退化成「自己批自己」,那就至少留一条备注:退多少、为什么退、对应哪张工单。三个月后回看,备注比金额有用。
退款退到原卡还是退到账户余额,是两种产品决策。退原卡干净,账就结束了;退余额会留下一个 customer balance,下次续费自动抵扣,账务上多一层「预收款」,对账时又多一张表。
窗口内也可能需要人工,比如同一客户一个月退三次。规则里要有一条按客户维度的频次限制,触发后转人工,而不是继续自动退。
窗口外的人工审批只有两条判据:这笔钱是不是重复收的,以及客户是否还在用。重复收的直接退;还在用的按剩余天数退;已经不用、金额又很小的,退比争更便宜。
三、三条账与三张单据
三条账分别是支付通道、内部 payments 表、收入确认表。它们的真相来源不同:通道只认流水,payments 表认业务事件,收入确认表认会计期间。
| 单据 | 谁开 | 关键字段 | 对应哪条账 | 缺失后果 |
|---|---|---|---|---|
| 退款单 | 支付通道 | 退款号、原支付号、金额、原因 | 通道流水 | 通道退了、内部没有记录 |
| 贷记单 | 自己 | 贷记单号、原发票号、金额、税额 | 收入确认表 | 发票无法冲销,报表虚高 |
| 拒付证据包 | 自己提交给通道 | 交易号、交付证据、沟通记录、截止日 | 通道争议流程 | 逾期视为放弃,直接败诉 |
退款单证明钱出去了,贷记单证明票被冲了,证据包证明这笔交易该不该被扣回。三张单据缺一张,三条账里就有一条对不上。
少收 270 美元那次,问题不在退款,在降级。9 笔降级本该期末生效、当期照付团队档的 30 美元,系统却把当期未结的账单一起作废了,客户白用了整月。收入确认表按团队档记了收入,应收账款挂在那里,通道与 payments 表却都没有这笔钱——三张表各自都「平」,合起来少了 9 × 30 = 270 美元。
重复退款 120 美元那次正好相反。一笔个人年付的退款请求被处理了两次,通道流水有两笔 120,payments 表只有一条退款记录,收入确认表只冲了一次。对账时通道比内部多 120,才把这件事翻出来。
退款单和贷记单不是一张东西:前者是钱的移动,后者是票据的冲销。只开退款单不开贷记单,发票在系统里仍然是「已收款」,月度收入不会减少;只开贷记单不退款,票冲了但钱没退,客户会来第二次。
贷记单号要独立连续,不能借用发票号。发票号和贷记单号是两本账,混在一起,年底统计「今年开了多少张票」时会把冲销也算进去,数字会比实际大一圈。
部分退款如果原发票含税,退款金额也要按比例拆税。整笔退的时候税自然全退,部分退的时候税按退款金额占原额的比例分摊,差一分钱都会让税表对不上。
退款之后订阅状态要单独决定:退全款通常意味着立即取消,部分退款通常保留到期末。把退款和取消绑成一个按钮,会让「只想退一次差价」的客户被迫离开。
拒付的证据包里最值钱的不是条款截图,是交付记录:客户什么时候登录、用了哪个功能、下载了什么。这些日志平时看起来只是运维数据,到了争议截止日就是唯一的证据。
证据包提交后不是结束,还要在内部记一笔预计损失。拒付结果通常要等几周,期间的报表如果按「可能赢」记满收入,月底被判定败诉时就要打回重记。
四、拒付、证据包与复算
拒付(chargeback,通道文档里也叫 dispute)是客户直接找发卡行,钱先被扣回,再由商户提交证据申辩。它和退款最大的区别是时间不由自己控制:证据包有截止日,过了就默认败诉。
基线里每月 105 笔账单,按 0.3% 的拒付率算,是 0.315 笔/月,一年 3.78 笔、约 3.8 笔。每笔金额按 12 美元、罚金按 15 美元算,一年成本 (12 + 15) × 3.8 = 102.6 美元。
这 102.6 美元还不包括时间。一份证据包要翻交易、导日志、写说明,按 40 美元/小时的机会成本算,半小时就是 20 美元,比罚金本身还贵。所以拒付的真正成本是「每笔都要人处理」,不是那 15 美元。
拒付率是有阈值的,通道会把超过阈值的商户列入监控名单。具体阈值各家不同,也会随行业变化,这里不引用任何报价;能确定的是,3.8 笔/年对一个 120 个付费订阅的产品来说还在安全区,但每一笔都值得认真申辩,因为比例是会被少数几笔放大的。
降低拒付的办法不在争议流程里,在账单上:账单描述要让客户一眼认出是谁扣的钱,交付要有记录,取消入口要好找。客户认不出扣款方时,第一反应是打电话给银行,而不是写邮件问你。
申诉也不必追求全胜。证据齐全就申辩,证据不足就认,把精力放在账单描述和取消入口上;全胜率能提升的空间,远小于把拒付原因消灭在发生之前。
复算:退款 3 笔/月,平均每笔 12 美元,36 美元/月、432 美元/年,占 20,520 的 2.11%;部分退款剩余 12 天、15 美元/月,12 ÷ 30 × 15 = 6.00 美元;拒付 105 × 0.3% = 0.315 笔/月,一年 3.78 笔,成本 (12 + 15) × 3.8 = 102.6 美元/年;少收的 270 美元来自 9 笔降级 × 30 美元。
退款 3 笔 × 12 美元 = 36/月;36 × 12 = 432/年;432 ÷ 20,520 = 2.11%
部分退款 12 × 15 ÷ 30 = 6.00
拒付 105 × 0.3% = 0.315/月;× 12 = 3.78 ≈ 3.8 笔/年
拒付成本 (12 + 15) × 3.8 = 102.6/年
少收 9 × 30 = 270
五、行动清单与复算验收
- 把退款政策写成四类:全额、部分、善意、撤销,各自写明金额算法与窗口
- 确认部分退款的分母用的是真实周期天数,年付按 365 或 366
- 规定取整方向为向下取整到分,并写进退款函数与测试用例
- 让每一笔退款都同时生成退款单与贷记单,编号连续且可追溯到原发票
- 把三条账做成一张月度对账表:通道流水、payments、收入确认
- 为拒付准备证据包模板,列清交付记录、登录日志与沟通记录
- 检查账单描述是否能让客户认出品牌,取消入口是否在两跳以内
- 复算 3 × 12 = 36 美元/月、432 美元/年,确认占 20,520 的 2.11%
验收标准:任取一笔退款,能在 5 分钟内说出它对应哪张原发票、冲减了多少确认收入、通道流水号是多少,并算出全年 432 美元与 2.11% 这两个数。
使用边界与实操验收
边界一:退款不是营销工具。 用退款换好评,短期有效,但会把退款率推高,也会让「14 天窗口」这类承诺失去意义。
边界二:窗口不是法律义务的全部。 14 天是产品政策,不是各地消费者保护法的上限;不同地区的强制撤回权可能更长,这里不做法律判断。
边界三:拒付不等于欺诈。 多数拒付是客户认不出账单或忘了取消,先按服务问题处理;直接当成欺诈,会把可以挽回的客户推走。
边界四:贷记单不能删号。 发票号必须连续,作废只能用贷记单冲销;删号会在审计时留下一个无法解释的缺口。
边界五:这一篇不管催收。 失败扣款后的重试与宽限属于 05 篇;退款发生在钱已经收到之后,两者的状态与账务都不同。
关键参考与核验范围
- Refunds :说明退款对象与原支付、原账单的关联方式,是三张单据设计的依据。
- Disputes :说明拒付流程、证据提交与截止日,对应证据包那一节。
- Credit notes :说明贷记单如何冲销发票,以及它与退款单的分工。
- Customer balance :说明退款退到余额时留下的预收款,是对账多一层的原因。
- Subscription invoices :说明订阅账单的生成方式,用于确认退款要冲减哪一期。
以上链接于 2026-10-26 实测可公开访问;未核验版本、价格与配额。核验日期:2026-10-26。
系列导航
- 回到本组目录:一个人的计费系统:订阅状态机、按比例计费与失败重试
- 上一篇:失败扣款与催收:五次尝试、五十五个百分点与七天宽限
- 下一篇:发票、收据与税务:一百零八张单据与七个必填字段
- 相关:一个人的定价与付费墙
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。