You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Stripe中处理ACH支付时,如何确认资金已清算至可用余额?

确认Stripe ACH支付清算完成的方法

Stripe的ACH支付触发的charge.succeeded仅代表支付发起并通过初步校验,不意味着资金已完成银行清算。要准确追踪清算状态,可通过以下方式实现:

1. 监听charge.updated Webhook事件

当ACH资金完成清算后,Stripe会更新对应Charge对象的关联字段,你需要在Webhook中监听该事件并校验两个核心字段:

  • 确认charge.status为paid(注:初始成功时该字段也可能为paid,需结合下一字段判断)
  • 检查charge.balance_transaction.status是否变为available
  • 同时charge.balance_transaction.available_on会返回资金计入可用余额的时间戳,可作为辅助验证依据

2. 主动查询Balance Transaction状态

如果不需要实时监听,可定期通过API查询对应Charge关联的余额交易对象,判断清算状态:

# Ruby示例代码
charge = Stripe::Charge.retrieve('ch_xxx')
balance_tx = Stripe::BalanceTransaction.retrieve(charge.balance_transaction)
if balance_tx.status == 'available'
  # 触发自有平台的支付完成状态更新逻辑
end

3. 处理异常场景

ACH支付可能出现清算失败(如用户账户余额不足),此时会触发charge.failed或charge.dispute.created事件,需在业务逻辑中同步处理这些异常,避免误判清算状态。

注意:ACH Direct Debit的常规清算周期为5-7个工作日,不要过早判定清算完成,一切以balance_transaction的available状态为准。


内容的提问来源于stack exchange,提问作者stickmanjones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 14:42:02