我对如何为我的系统/平台实施适当的支出有疑问。
让我进一步解释一下。我有一个像Lyft这样的平台,但是没有在每次乘车后立即创建和发布费用。我正在创建发票项目,以便每个发票计费周期(例如,每2周)仅向骑手收取一次费用。现在,我知道使用Stripe的发票或发票项目没有目的地ID。因此,我需要以某种方式告诉Stripe,哪些资金需要转给驱动程序。我怎么做?看来该方法将是创建一个Stripe payout,并将目的地作为驾驶员银行帐户ID。但是在尝试使用驱动程序外部帐户ID和银行帐户ID进行此操作后,Stripe抛出了一个异常,说“不存在这样的外部帐户acct_123456ABCD”
我上面描述的方法是否是实现此目的的正确方法?还是有更好的方法或更规定的方法?
仅供参考-为了了解为什么我要创建发票项目,而不是乘车后立即产生即时费用,这是因为我的服务费用都非常小($ 1.00- $ 3.00),因此避免了Stripe固定费用$ .30 / charge我正在将它们汇总到一张发票中,在每个帐单周期中,只有一笔固定费用。
感谢您的帮助。
出于特殊目的,我将在下面提供一个示例。 首先,我创建一个发票项目,然后创建一个付款。
var invoiceItemOptions = new StripeInvoiceItemCreateOptions()
{
Amount = tipPricing.GetTotalAmountCharged(),
Currency = "USD", //defaultCard.CurrencyCode,
CustomerId = '12334567',
Metadata = new Dictionary<String, String>() { { "EventId", 123 } }
};
var invoiceItemService = new StripeInvoiceItemService();
StripeInvoiceLineItem invoiceItem = invoiceItemService.Create(invoiceItemOptions);
StripeResponse invoiceResponse = invoiceItem.StripeResponse;
////////////////////////////////////////////////////////////////////////
var payoutOptions = new StripePayoutCreateOptions()
{
Amount = tipPricing.GetTotalDestinationAmount(hasBeenChargedThisMonth),
Currency = "USD",
Destination = bankAccount.ExternalAccountId, //bankAccount.AccountId,
Metadata = new Dictionary<String, String>() { { "EventId", 123 } }
};
var payoutService = new StripePayoutService();
StripePayout payoutCharge = payoutService.Create(payoutOptions);
StripeResponse payoutResponse = payoutCharge.StripeResponse;
答案 0 :(得分:1)
付款应在关联帐户的余额->银行帐户上进行,而不是从平台到关联帐户的银行帐户。
您在这里至少有两种资金流动选择:
invoice.payment_succeeded
收听网络鸣叫,然后使用Transfer
将资金转移到目标关联帐户,请参阅https://stripe.com/docs/connect/charges-transfers。从关联帐户的余额中,该笔款项将支付到其银行帐户,或者您可以发起支付(如果是人工支付,则https://stripe.com/docs/connect/payouts#using-manual-payouts)