退款流程
如何用政策、审批流程和客户沟通一致处理退款以防拒付。
为什么
退款不可避免 — 部分客户不满、部分误买、部分周期中流失。问题非是否退而是如何一致处理:清晰政策(何时退、多少、何窗内)、审批流程(谁能批 29 美元退 vs 500 美元退)、客户沟通(告诉他们何时处理退及何时卡上见)。替代是临时退:支持团队部分全退部分部分退,无记录为何,财务不能对账。更糟,无清晰退路径客户与银行争 议(拒付),这损你 15 美元拒付费加退额加失产品时间。好退流程损退额但省拒付费、支持时间和客户关系(得顺退的客户可能回;须拒付的客户永不回)。最常见错是让退难(需 3 邮件和经理)— 这推客户拒付,贵 5 倍。
何时使用
每当客户请求退款。首请求前设政策和工作流让团队知做啥。
如何做
1. 定退款政策:购后 14 天内全退(不问)、30 天内按比例退、30 天后不退(除非服务中断) 2. /refund-policy 发政策 — 这设客户期望并给支持团队参考点 3. 设审批流程:支持代理可退至 50 美元、团队负责人至 200 美元、经理至 500 美元、以上需总监 — 这防欺诈和大惊退 4. Stripe 处理退:用 stripe.refunds.create 带电荷 ID 和可选原因(你记录)— Stripe 退原支付方式 5. 与客户沟通:"我已处理你 29 美元退。5-10 工作日卡上现。你将收 Stripe 确认邮件。"— 设时间期望 6. 支持系统记退原因:"请求退 — 产品不合需"— 这数据帮你识别产品问题并减未来退 7. 部分退(按比例用天数)解释数学:"你用 30 天周期中 10 天,所以退 29 美元 × (20/30) = 19.33 美元"— 透明防"为何只得 19"工单 8. 按队列和原因跟踪退率 — 若新发布后退激增,发布引入回归;若退聚特定计划,计划定价或功能错位
示例
# 退款政策(发 /refund-policy)
# - 14 天内:全退,不问
# - 30 天内:按比例退(未用天 / 总天 × 额)
# - 30 天后:不退(除非服务中断)
# - 拒付:我们将直接退,请先联系支持
# 审批流程
const APPROVAL_LIMITS = { agent: 50, lead: 200, manager: 500, director: Infinity };
async function processRefund(chargeId: string, amount: number, agent: Agent) {
if (amount > APPROVAL_LIMITS[agent.role]) {
throw new Error(`${amount} 美元退需 ${nextRole(agent.role)} 审批`);
}
const refund = await stripe.refunds.create({
charge: chargeId,
amount: amount * 100, // 分
reason: "requested_by_customer",
metadata: { agent: agent.id, reason: agent.refundReason },
});
await emailCustomer(refund, "你 X 美元退 5-10 工作日现。");
return refund;
}
# 部分退(按比例)
// 29 美元/月计划客户,第 10 天请求退
// 用:10 天,未用:20 天
// 退:29 美元 × (20/30) = 19.33 美元
// 解释:"你用 30 天中 10 天,所以退 19.33 美元(20/30 × 29 美元)"常见问题
- ⚠让退难(29 美元需 3 邮件 + 经理)— 客户放弃并拒付,损 15 美元 + 退 + 失关系。让小退对支持代理易。
- ⚠无公开退政策 — 客户不知期望,所以拒付而非问。/refund-policy 发清晰政策。
- ⚠不沟通退时间 — 客户期望 2 天,需 5-10 工作日,期间拒付。前告诉他们时间。
最佳实践
- ✓发清晰退政策(14 天全、30 天按比例)并让支持代理无审批退至 50 美元 — 这让小退易并防拒付。
- ✓首回沟通退时间(5-10 工作日)— 这设期望并防客户等时拒付。
- ✓按队列跟踪退率和原因 — 发布后激增指回归,计划聚指定价或功能错位。