【问题标题】:How to use Stripe payouts with customer invoices如何在客户发票中使用 Stripe 付款
【发布时间】:2019-03-13 17:13:50
【问题描述】:

我有一个关于如何为我的系统/平台实施适当支付的问题。

让我进一步解释一下。我有一个像 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;

【问题讨论】:

    标签: c# stripe-payments


    【解决方案1】:

    付款旨在通过关联账户的余额 -> 银行账户,而不是从您的平台到关联账户的银行账户。

    您在这里至少有两个资金流选择:

    1. 您可以在您的平台上运行发票(甚至是 0 美元订阅,计费周期为两周)。您可以在invoice.payment_succeeded 时收听网络挂钩,然后使用Transfer 将资金转移到目标连接帐户,请参阅https://stripe.com/docs/connect/charges-transfers。它将从关联账户的余额支付到他们的银行账户,或者您可以发起支付(如果是手动支付,https://stripe.com/docs/connect/payouts#using-manual-payouts
    2. 您可以直接在关联帐户上创建发票项目/发票或订阅。这有点棘手,因为您需要为您的平台汇出费用,但您可以通过申请费来做到这一点,请参阅https://stripe.com/docs/connect/subscriptions#working-with-invoices

    【讨论】:

    • 嗨鸭。我正在使用带有 0 美元订阅的第一个选项,每 2 周计费一次。然后当我收到 webhook 时,我可以将资金转移到关联账户,但我正在阅读文档。并担心转移的限制。特别需要平台(我的 Stripe 帐户?)和连接的帐户在同一区域!这是否意味着如果我的账户在美国,我不能将资金转移到澳大利亚的关联账户?也许我不明白传输限制!?
    • 我会直接与 Stripe 讨论这个问题并详细描述您的用例。我认为这与其说是技术限制,不如说是合规性限制。
    • 嗨鸭。我给他们发了一封电子邮件。但我想问你如何实现这种类型的系统。想想 Lyft/Uber,但乘车不收费。仅在骑行后提示!因此,由于小费很低(1 美元至 3 美元),我认为最好使用发票来避免每次收费的固定费用。但是当骑手在另一个国家骑行时,我的问题就来了。现在我必须从我的平台(美国)向另一个国家/地区的关联账户转账!
    • 嗨鸭。到目前为止,我有两个选择 - 1. 立即收费,但最低小费金额为 3.00 美元或 4.00 美元,因此 0.30 美分的固定收费不会从整体小费中扣除太多。但我希望能够给 1 美元以上的小费,这样就不会从每个小费中扣除 30%,这意味着我需要另一种解决方案,例如在计费周期结束时将所有小费和费用加起来一次的发票。这个解决方案对于我将如何实现它真的很困惑!
    • 这是有道理的,因为它不想为 1-4 美元的费用创建单独的费用。我会等待在越野方面收到 Stripe 的回复 --- 这确实让事情变得有点复杂!或者,您可以尝试编写一些逻辑来汇总每个国家/地区的用户帐户费用(例如,他们在美国,但访问加拿大,当月他们会在月底看到两项费用/两周 --- 一个用于美国游乐设施,另一个用于加拿大游乐设施),因此您不必担心跨境转移。
    猜你喜欢
    • 1970-01-01
    • 2015-03-01
    • 2019-12-31
    • 1970-01-01
    • 2021-04-19
    • 2022-01-21
    • 1970-01-01
    • 2023-03-23
    • 2015-09-23
    相关资源
    最近更新 更多