我如何告诉 Stripe 在创建贷方票据时通过其 API 为我计算税款?

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

使用 Stripe 的自动税费计算 (

automatic_tax[enabled]=true
) 时,Stripe 负责计算应用于发票的税额。我遇到的问题是,当通过 Stripe 的 API 创建“贷方票据” 部分退款时,
refund_amount
必须等于贷方票据金额(贷方票据金额 = 退款金额 + 税),但是我不知道计算出的退税金额应该是多少,因为 Stripe 会自行处理该计算。

考虑以下代码,它将尝试在发票上创建金额为 10.00 美元的贷方票据:

$stripe->creditNotes->create([
  'invoice' => 'in_xxxxxxxxxxxxx',
  'refund_amount => 1000,
]);

问题是 Stripe 会计算出

refund_amount
应该是 10.70 美元(假设 7% 的税),并会返回以下错误:

贷方金额、退款金额和带外金额 ($10.00) 的总和必须等于贷方票据金额 ($10.70)。

所以我认为我需要的是一个额外的参数,告诉 Stripe 我希望他们确定额外的税额应该是多少;像这样的东西:

$stripe->creditNotes->create([
  'invoice' => 'in_xxxxxxxxxxxxx',
  'refund_amount => 1000,
  'automatic_tax' => [
    'enabled' => true,
  ],
]);

但是该参数在 API 上不存在。有人对如何解决这个问题有什么建议吗?

stripe-payments stripe-tax
2个回答
0
投票
在创建贷方票据之前,您应该

检索发票并查看总计属性,以了解您应用于贷方票据的评估金额。


0
投票
解决方案是首先

创建“预览”贷方票据,其中提供计算出的税额。然后,您可以在创建实际贷方票据时将该税添加到退款金额中:

// The amount to refund. $amount = 1000; // ($10.00) // First create a preview credit note. $preview = $stripe->creditNotes->preview([ 'invoice' => 'in_xxxxxxxxxxxxx', 'refund_amount' => $amount, 'lines' => [ [ 'type' => 'invoice_line_item', 'invoice_line_item' => 'li_xxxxxxxxxxxxx', 'amount' => $amount, ], ], ]); // Collect the tax from the preview. $tax = 0; foreach ($preview->tax_amounts as $taxAmount) { $tax += $taxAmount->amount; } // Add the tax onto the refund amount. $totalAmount = $amount + $tax; // Issue the actual credit note. $creditNote = $stripe->creditNotes->create([ 'invoice' => 'in_xxxxxxxxxxxxx', 'refund_amount' => $totalAmount, 'lines' => [ [ 'type' => 'invoice_line_item', 'invoice_line_item' => 'li_xxxxxxxxxxxxx', 'amount' => $amount, ], ], ]);
    
© www.soinside.com 2019 - 2024. All rights reserved.