如何保留平台账户中收取的税款 - Stripe Connect

问题描述 投票:0回答:1

我的平台使用 Stripe Connect。 我的平台负责确保向相关税务机关收取、征收和支付适当数额的税款。 我的问题是 Stripe 正确计算税款,正确向客户收取费用……但它不是将收取的税费与申请费一起转移到平台帐户,而是将收取的税款转移到关联帐户。

这是我设置结账会话的代码

require APPPATH .'third_party/stripe-php/init.php'; // Include the Stripe PHP bindings library
        \Stripe\Stripe::setApiKey($this->CI->config->item('stripe_api_key')); // Set API key
        $reg_id = $this->input->post('reg_id'); 
        $stripe_price_id = $this->input->post('stripe_price_id');           //this gets connected account number 'inst' is creator id value hidden in button
        $stripeAccount = $this->Profiles_model->fetch_stripe_account_by_id($reg_id);
        $email = $this->session->userdata('email');
        $stripeCustomerID = $this->Profiles_model->fetch_stripe_customerID($email);
                
        $session = \Stripe\Checkout\Session::create([
            'customer' => $stripeCustomerID,
            'customer_update' => [
            'address' => 'auto',
            ],
            'payment_method_types' => ['card'],
            'mode' => 'subscription',
            'metadata' => ['creator_id' => $reg_id],  
            "line_items" => [
                ['price' => $stripe_price_id,
                'quantity' => 1,
                ],
            ],
             'automatic_tax' => [
                        'enabled' => true,
                ],
            'subscription_data' => [
    //      'application_fee_percent' => 25,
            'transfer_data' => [
                'destination' => $stripeAccount, 
                'amount_percent' => 75,
                ],
                ],
          'success_url' => 'https://example.com/purchasesuccess',
          'cancel_url' => 'https://example.com/privatemember',
        ]);

Stripe 建议我增加申请费来支付税额,但是当收取的税额因客户位置而异时,我该怎么办? 我想也许我可以使用类似的方法来解决它:

'application_fee_amount' => ($fee+'line_items.data.amount_total'-'line_items.data.amount_subtotal'),

'application_fee_amount' => ($fee+'amount_total'-'amount_subtotal'),

或使用

'amount_percent' => 75,

文档说“amount_percent”是基于小计,但它转移了总额的 75%(即基本价格 + 税)。

想法?

php stripe-payments tax stripe-tax
1个回答
2
投票

所以我正在与 Stripe 合作解决这个问题,这是他们写的:

我理解您的观点,即税额应留给 平台,其余的则转移到关联帐户, 然而,从本质上讲,这并不是 Billing and Connect 产品的运作方式 操作。

创建订阅时,订阅对象会生成 发票,这将生成 payment_intents :

订阅 发票 - 付款意图

发票-Payment_intent

payment_intent 包含一系列属性,其中包括 金额、货币、客户(如果有的话)等。但是, 没有产品、折扣或税收的概念,因为这些是 订阅和发票对象的属性。

连接费用(即直接费用、目的地费用和单独费用以及 转账)在 payment_intent 级别处理,而不是订阅/ 发票级别。他们也没有产品、折扣的概念 和税收。当您从结账会话设置连接流程时

  • 在您的情况下,使用 subscription_data.transfer_data 属性,amount_percent 无法与小计相关,因为这 payment_intent 级别不存在小计金额。

这是他们建议的解决方案。 我能够毫不费力地实现这个,所以它有效。

- 创建一个没有任何 Connect 属性的 Checkout 会话。有一个可以为结账会话设置的transfer_group参数,但它 不可订阅。然而,省略它并不 防止您以后处理 SCT。

-保存发票成功付款中的费用 ID ch_xxx。您可以从 charge.succeeded 事件或 payment_intent.succeeded 事件。您可能还想听 获取小计的invoice. payment_succeeded或invoice.paid事件 金额。

- 创建转账,以连接帐户的 acct_id 作为目的地,以发票小计作为金额,以费用的 ch_id 作为源交易: https://stripe.com/docs/connect/charges-transfers#transfer-availability source_transaction 参数在这里至关重要 - 它将链接 转移到收费处,这将确保资金即使转移 如果您的余额尚不可用,并将创建 自动缺少transfer_group。

© www.soinside.com 2019 - 2024. All rights reserved.