如何支付给连接用户(将资金从连接用户的条纹账户转移到他们的个人银行账户)?

时间:2021-02-22 11:37:27

标签: ruby-on-rails stripe-payments

当使用 Stripe Connect 的“Express”变体时,使用目的地费用,用户支付,付款在平台和连接用户之间分配,余额将在连接用户的帐户中累积。资金将首先显示为“待处理”,不久之后,资金将在关联用户的帐户中显示为“可用”。

假设支付时间间隔设置为manual,那么平台负责将资金从连接用户的条带账户转移到他们的实际银行账户,因此连接用户最终可以使用这些资金,例如普通钱。

问题

平台如何将支付“可用”资金从连接用户的条带账户转移到连接用户的实际银行账户?

到目前为止我发现了什么

根据Stripe docs,正确的代码应该是:

transfer = Stripe::Transfer.create({
  amount: 1000,
  currency: "usd",
  destination: "{{CONNECTED_STRIPE_ACCOUNT_ID}}",
})

这是正确的吗?

我怀疑它可能不是的原因是:

  1. 因为AFAIK在Stripe命名法中的“转移”意味着平台关联账户之间的资金流动,不是< /strong> 关联账户和关联用户的个人银行账户之间。

  2. 因为destination只能表示资金被转移的条带帐户来自的帐号,所以为什么要调用它'目的地',如果它实际上是目的地的反面

这两个问题都提示了这个问题。

1 个答案:

答案 0 :(得分:1)

感谢您提出如此清晰明确的问题!

付款

为了直接回答核心问题,当关联账户配置为接收手动付款时,平台可以调用 /v1/payouts [1] 以将资金从关联账户的可用余额转移到其外部账户.在 Ruby 中,它看起来像:

payout = Stripe::Payout.create({
  amount: 1000,
  currency: 'usd',
}, {
  stripe_account: '{{CONNECTED_STRIPE_ACCOUNT_ID}}',
})

使用 Transfers 提供的代码确实是将资金从平台账户转移到关联账户的方式,作为“单独收费和转账”集成 [2] 的一部分。

由于您的系统使用的是 Express 帐户和目的地费用(其中一部分费用使用 transfer_data[amount] 转移到连接的帐户),这是用于将资金从平台转移到关联的帐户。

  1. https://stripe.com/docs/connect/manual-payouts#regular-payouts
  2. https://stripe.com/docs/connect/charges-transfers