Stripe客户取消ACH授权后的待处理付款与支付方式处理
客户撤销ACH授权(mandate)后,你需要完成一组核对动作:取消或捕获与该mandate关联的待处理付款,并把对应的PaymentMethod从客户上解绑,或者把mandate标记为失效。文档同时提示,撤销后继续对账户发起扣款,付款会失败。文档没有说明银行侧的处理时间,因此不要假定撤销会在某个时限内传导到银行端,也不要据此向客户承诺“已经彻底断开”。
收到撤销通知后的核对顺序
客户可以直接联系你撤销mandate。收到通知后,按下面的顺序核对:
- 找出与该mandate关联的待处理付款。对每一笔,取消或捕获;对无法继续处理的,按失败结果核对,不据此推断银行侧状态。
- 处理支付方式。在Dashboard的客户已保存支付方式中查看当前有效的mandate;用Detach API把PaymentMethod从客户上解绑,或用该API把mandate标记为inactive。
- 确认该客户名下没有残留的、仍指向同一银行账户的有效mandate。同一账户若通过其他mandate绑定,分别核对属于操作建议,文档未明示这一要求。
- 检查后续的自动扣款任务、订阅或发票计划,避免它们在撤销后继续生成扣款请求。撤销后的扣款会失败,提前停掉可以减少失败记录和客户沟通。
这四步是机制层面的核对动作,不涉及银行侧何时完成处理,也不涉及失败后的资金退回路径。
待处理付款与支付方式要同时处理
mandate是扣款授权的凭据,待处理付款是已经基于该凭据创建的扣款意图。撤销通知到达时,两者状态可能不一致:授权已失效,但付款仍在待处理队列里。文档要求对这类付款做取消或捕获,并提示撤销后发起的扣款会失败。核对动作因此要覆盖“已创建的付款”和“绑定的支付方式”两层,不能只改其中一个。
一个用于说明核对范围的假设
假设某客户名下有3笔待处理付款,其中2笔尚未捕获、1笔已捕获待结算;该客户通过1个mandate绑定了1个PaymentMethod。按上面的顺序,你需要取消那2笔未捕获付款、保留已捕获那笔的正常结算、detach那1个PaymentMethod,并检查是否有其他mandate指向同一账户。这个假设只用于说明核对范围,不是通用公式;实际笔数和状态以你在Dashboard或API中查到的为准。
在线与离线授权的区别不影响撤销后的动作
mandate分在线和离线两类。在线mandate出现在网站支付流程中,客户通过点击Accept或Pay之类的界面元素接受;离线mandate需要你以书面或电话方式向客户出示具体条款。使用Checkout、Payment Element或托管发票页时,Stripe会在支付页面展示在线mandate;如果你用Payment Intents API自建支付表单,则需要在确认PaymentIntent或SetupIntent之前自行在页面上展示mandate条款。这一区别影响的是授权取得方式,不影响撤销后的核对动作:无论mandate是在线还是离线取得,客户撤销后同样要取消或捕获待处理付款、detach支付方式或标记mandate失效。
核对完成后的状态确认
完成取消、捕获和detach之后,回到客户的已保存支付方式列表确认该mandate不再显示为有效,并确认没有新的扣款任务指向它。文档只支持到“撤销后扣款会失败”这一层结论,不提供银行侧处理时间、失败码分布或资金退回时限;这些不要写进对客户的说明里,也不要用它们推断撤销已经在上游生效。