Stripe Connect 负余额会影响哪个账户

先给结论:负余额首先落在产生该笔交易的那个账户上,而不是一律落在平台账户上。若扣款发生在关联账户,退款或拒付产生的负交易先记在该关联账户;若扣款发生在平台账户,则先记在平台账户。只有当关联账户自身余额仍为负、且账户配置把损失责任指向平台时,平台才需要承担该损失责任。因此“会影响哪个账户”取决于两件事:扣款发生在哪个账户,以及该账户的损失责任配置指向谁。

平台余额、关联账户、负余额责任
本文涉及的概念与核对环节。

机制:负交易先归属扣款账户

平台账户与每个关联账户各自拥有独立的 pending 和 available 余额,资金归属由所用的扣款类型决定。Stripe 会尽量用后续收款自动抵消负交易,并优先把负交易分配给扣款所在的账户。也就是说,关联账户上的退款、拒付先从该关联账户扣;平台账户上的扣款产生的退款、拒付先从平台账户扣。

即便如此,关联账户余额仍可能变成负数。此时要判断由 Stripe 还是平台承担,需读取账户属性,且属性名随 Accounts API 版本不同:

  • Accounts v2:defaults.responsibilities.losses_collector,读取时需在 include 参数中指定 defaults。
  • Accounts v1:controller.losses.payments。

两个版本中,值为 stripe 表示 Stripe 负责,值为 application 表示平台负责。这是来源给出的判断资金责任的主要依据;具体责任仍以账户实际配置和支付结构为准,不能脱离这两者作统一结论。

负余额状态下的可执行动作

当关联账户余额为负时,平台不能代该账户向其银行账户或借记卡发起打款;待该账户 Stripe 余额变为正数,Stripe 会恢复打款。

若 Stripe 尚未尝试从关联账户外部账户扣款,可将 debit_negative_balances 设为 true,允许 Stripe 按需自动扣款,即使该账户处于手动打款模式也会触发。需注意:Stripe 无法用借记卡纠正负余额;支持负余额自动扣款的银行所在国家包括澳大利亚、加拿大、欧洲(SEPA 国家,含英国)、新西兰和美国,具体支持的国家与账户类型以 Auto Debit FAQ 为准。

平台侧还有一层保护:针对平台需负责的关联账户可用负余额,Stripe 会在平台账户可用余额上持有储备金。视关联账户所在国家,Stripe 会从该账户银行账户发起提款以覆盖负余额;提款入账后该账户可用余额归零,但平台储备金会在提款入账后额外保留 3 个工作日,可在管理后台看到这笔储备。来源未说明该储备金与具体字段名的对应关系。

一个可复算的例子

假设条件:某关联账户完成一笔扣款,随后发生退款,金额为 100 单位,该关联账户当前可用余额为 30 单位,且未发生其他收款。

  1. 负交易先记在该关联账户:30 − 100 = −70,关联账户余额为负。
  2. 平台不能代其打款。此时读取该账户的 losses_collector(v2)或 controller.losses.payments(v1):若值为 application,平台需承担这 −70 的损失责任,Stripe 会在平台账户可用余额上持有储备金。
  3. 若该属性值为 stripe,则由 Stripe 承担,平台不因该负余额被划走资金。
  4. 若期间该关联账户新增收款 71 单位,余额变为 +1,Stripe 恢复向其打款;若只新增收款 70 单位,余额回到 0,仍需变为正数才恢复打款。

把例子中的扣款换成发生在平台账户,则第 1 步的 −70 直接落在平台账户,不涉及关联账户责任属性。

核对清单

  • 确认每笔争议交易发生在平台账户还是关联账户。
  • 按所用 Accounts API 版本读取对应责任属性,确认值为 stripe 还是 application;v2 读取时需在 include 参数中指定 defaults。
  • 以关联账户身份调用余额接口核对 pending 与 available:请求需带 Stripe-Account: {{CONNECTED_ACCOUNT_ID}} 头。
  • 检查关联账户是否有有效银行账户,以降低财务损失风险。
  • 如启用自动扣款,先确认账户所在国家与账户类型在支持范围内。
  • 注意平台与关联账户之间的转账失败不会自动重试,需显式再次发起。

以上区分的是机制与可复算示例,不构成交易、法律或投资建议;具体责任仍以账户实际配置和支付结构为准。

原始资料

docs.stripe.com

上一篇 Stripe Link 保存的支付信息和商家的账单设置怎么区分