一个 SaaS 开发者在周一早上打开 Stripe Dashboard,看到 3 个红色的 charge.dispute.created——三笔来自同一个用户,总金额 $297,理由是 “Product Not Received”。证据截止时间是 6 天后。他的产品是一个 Web 端 AI 写作工具,没有发货记录,没有物流单号,唯一的交付证明是用户注册后生成了 47 篇文档。
这个问题在数字产品独立开发者里太常见了。你卖的不是实体商品,没有物流公司帮你提供标准化的交付证明,但 chargeback 流程要求的证据门槛并不因此降低。好消息是:Stripe 的证据面板已经按 reason code 自动列出所需字段,你只需要知道每一类要交什么、不要交什么、以及怎么在截止时间前把正确材料打包。
三种最常见的 dispute reason code,证据要求完全不同
Stripe 把几百个卡组织原始 reason code 合并成了 8 大类,其中 3 类占了独立开发者 80% 以上的 chargeback。
| Reason Code | 典型场景 | 银行审查重点 | 必交证据(数字产品) |
|---|---|---|---|
| Fraud / Unrecognized | 卡主声称没做过这笔交易 | 付款人是否就是卡主 | IP 记录 + 设备指纹 + 用户邮箱 + 历史订单 |
| Product Not Received | 卡主说付了钱但没收到东西 | 有没有东西被交付 | 访问日志 + 使用时间戳 + 账户激活记录 |
| Product Unacceptable | 卡主说产品与描述不符 | 买之前看到的信息是什么 | 购买页截图 + 退款政策展示位置 + 用户沟通记录 |
| Subscription Canceled | 卡主说取消订阅后仍然被扣款 | 取消时间 vs 扣款时间 | 取消操作日志 + 自动续费提醒邮件 + TOS 条款 |
关键判断:先确定 reason code,再选证据,而不是把同一套通用材料发给所有 dispute。银行审查人员每天处理几十个案子,看到通用陈述基本直接判商户输。
没有物流单号:用使用日志替代交付证明
这是数字产品开发者最大的焦虑,但解决思路是明确的:用用户在付款之后的行为数据证明产品已经交付并被使用。
一条高价值的「替代交付证明」至少包含以下四层信息:
- 付款确认:Stripe 自动提交的 AVS/CVV/3DS 结果已经证明交易真实性,你不用重复提交。
- 账户激活:用户注册 / 激活账户的时间,精确到秒,与付款时间的间隔越短越好。
- 使用行为:用户登录过的 IP、访问过的页面、调用的功能、产生的数据(比如生成了多少篇文档、调了多少次 API)。每条记录标注精确时间戳和 IP 地址。
- 后续互动:用户是否有在付款后主动联系客服、修改设置、邀请团队成员。这些行为说明他们知道自己在使用服务。
一个实际提交结构的例子:
证据 1:用户账户激活时间 — 2026-03-14 14:22:31 UTC(付款后 3 分钟)
证据 2:2026-03-14 至 2026-04-28 的登录 IP 与访问记录(共 17 次登录)
证据 3:用户生成的 47 篇文档摘要(展示标题和创建时间)
证据 4:用户于 2026-04-10 发来的功能咨询工单
不要只交原始数据库导出。用 PDF 整理成一页时间线表格,每条事件标注时间、IP、动作。银行审查人员的一分钟里看不了 50 页日志。
Visa CE 3.0:欺诈类争议的增强证据通道
2025 年起 Visa 推出了 Compelling Evidence 3.0(CE 3.0)。如果你的 dispute 是 Visa 卡且 reason code 为 fraud(10.4),Stripe 证据面板会自动显示 CE 3.0 选项。
CE 3.0 的核心要求是「用历史交易证明这个用户确实是你」。你需要提供至少两笔 120-364 天前完成的、未发生争议的该用户交易,且这两笔交易必须和当前争议交易在以下六项中匹配至少两项(其中一项必须是 IP 或设备指纹):
| 匹配要素 | 数据来源 | 注意 |
|---|---|---|
| IP 地址 | 支付时的客户端 IP | 必须匹配,且至少一项是 IP 或设备 |
| 设备指纹 | Stripe Radar 自动采集 | 同上 |
| 设备 ID | 你的应用层可以自定义传入 | 只靠设备和设备 ID 不够 |
| 用户邮箱 | checkout 时填的邮箱 | 有独立权重 |
| 账户 ID | 你在 Stripe 上的 customer ID | 需要跨交易一致 |
| 收货地址 | 实体商品才有 | 数字产品通常不适用 |
满足条件后,在提交前先设 submit: false 预检:
// API 预检模式
{
"evidence": { ... },
"submit": false
}
然后看返回里的 evidence_details.enhanced_eligibility.visa_compelling_evidence_3.status。状态是 eligible 再正式提交。
CE 3.0 的实际效果:如果匹配成功,Visa 在仲裁阶段会把举证责任转移给发卡行——也就是说银行必须主动证明这笔交易不是卡主做的,而不是让商户去证明它是。这对胜率影响非常直接。
独立开发者在 Stripe 后台准备 chargeback 证据时,需要频繁登录 Dashboard 查看 dispute 状态、截止时间和补充材料要求。如果网络不稳定导致后台加载中断,可能在截止前几个小时才发现关键证据没有上传成功。保持Stripe Dashboard 稳定访问能确保申诉流程不被意外打断。
什么证据不要交:减分项清单
交错材料和不交材料一样危险。以下这些会拉低你的胜率:
- 当前版本的 TOS 条款全文:银行要的是「用户购买时看到的那个版本」,不是你网站现在显示的版本。如果你每次改 TOS 没有留历史快照,现在就把它加入你的部署流程。
- 与当前 dispute reason code 无关的证据:比如 reason code 是 fraud,你交了一堆产品功能的截图——银行会认为你没有真对争议点做回应。
- 不带时间戳的截图:一张没有 URL、没有日期、没有 IP 的截图在证据层面等于零。所有截图必须包含浏览器地址栏可见或叠加元数据标注。
- 泛化陈述信:不要写「我们是一家致力于客户满意度的公司」。改成「用户于 2026-03-14 14:19 完成购买,于 14:22 激活账户,在接下来 45 天内登录 17 次,最后一次登录为 2026-04-28。附件 PDF 包含完整时间戳和 IP。」
争议率控制:预防比申诉更重要
如果你的 chargeback 争议率(dispute activity ratio)超过 0.75%,卡组织会开始对你施加额外监控;超过 1% 可能直接触发 Stripe 账户层面的储备金预留或结算延迟。
| 预防手段 | 作用 | 成本 |
|---|---|---|
| Stripe Radar | 实时拦截高风险交易 | 基础版免费,Radar for Fraud Teams 按笔收费 |
| 3D Secure | 增加身份验证步骤,fraud 类 chargeback 责任转移给发卡行 | 无额外费用 |
| 续费前提醒邮件 | SaaS 续费 chargeback 的主要来源是用户忘记订阅 | 自己做,零成本 |
| 结算描述符 | 用户银行卡账单上显示的名字要能一眼认出是你的产品 | 在 Stripe Dashboard → Settings → Public Details 设置 |
| 退款流程公开可见 | 让不满意的用户走退款而不是 chargeback | 退款手续费通常比 $15 chargeback 费更低 |
| Chargeblast / Disputifier | 在 dispute 正式到达 Stripe 之前拦截(Ethoca / Verifi 预警网络) | 按量或按月付费 |
如果你的 SaaS 产品是靠 Stripe 收款的独立开发者业务,一两个 chargeback 不算灾难,但在三个月内争议率趋势向上就应该立即开始排查 root cause——是某个定价档位的用户预期不对齐?是取消流程太难找?还是某个地区的用户对账单描述不熟悉?