Stripe客户取消ACH授权后的待处理付款与支付方式处理

客户撤销ACH授权(mandate)后,你需要完成一组核对动作:取消或捕获与该mandate关联的待处理付款,并把对应的PaymentMethod从客户上解绑,或者把mandate标记为失效。文档同时提示,撤销后继续对账户发起扣款,付款会失败。文档没有说明银行侧的处理时间,因此不要假定撤销会在某个时限内传导到银行端,也不要据此向客户承诺“已经彻底断开”。

客户撤销授权、处理待付款、解除支付方式
本文涉及的概念与核对环节。

收到撤销通知后的核对顺序

客户可以直接联系你撤销mandate。收到通知后,按下面的顺序核对:

  1. 找出与该mandate关联的待处理付款。对每一笔,取消或捕获;对无法继续处理的,按失败结果核对,不据此推断银行侧状态。
  2. 处理支付方式。在Dashboard的客户已保存支付方式中查看当前有效的mandate;用Detach API把PaymentMethod从客户上解绑,或用该API把mandate标记为inactive。
  3. 确认该客户名下没有残留的、仍指向同一银行账户的有效mandate。同一账户若通过其他mandate绑定,分别核对属于操作建议,文档未明示这一要求。
  4. 检查后续的自动扣款任务、订阅或发票计划,避免它们在撤销后继续生成扣款请求。撤销后的扣款会失败,提前停掉可以减少失败记录和客户沟通。

这四步是机制层面的核对动作,不涉及银行侧何时完成处理,也不涉及失败后的资金退回路径。

待处理付款与支付方式要同时处理

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不再显示为有效,并确认没有新的扣款任务指向它。文档只支持到“撤销后扣款会失败”这一层结论,不提供银行侧处理时间、失败码分布或资金退回时限;这些不要写进对客户的说明里,也不要用它们推断撤销已经在上游生效。

原始资料

docs.stripe.com

上一篇 Stripe ACH Direct Debit结算时间核对:T+4标准与T+2加速的区分方法