通过Subscription向客户添加/删除额外费用

时间:2014-12-23 09:17:37

标签: stripe-payments

根据某些条件,我希望向客户收取额外费用,反之亦然 - 向他们的帐户添加资金或根本不收取费用。 他们全部订阅到某个平原。为了能够更改费用,我必须使用account_balance

https://stripe.com/docs/api#create_customer

account_balance
An integer amount in cents that is the starting account balance for your customer. A negative amount represents a credit that will be used before attempting any charges to the customer’s card; a positive amount will be added to the next invoice.

https://support.stripe.com/questions/subscription-setup-fees

For example, if you have a $10 monthly plan called ten-monthly, but want to charge your customer a $5 setup fee, this API call to create a customer would work:

curl -i https://api.stripe.com/v1/customers \
   -u sk_test_mkGsLqEW6SLnZa487HYfJVLf: \
   -d "card[number]=4242424242424242" \
   -d "card[exp_month]=11" \
   -d "card[exp_year]=2015" \
   -d "card[cvc]=314" \
   -d plan=ten-monthly \
   -d account_balance=500

然而,这两个相互矛盾:第一个说"负数表示信用"而第二个使用正数500来增加额外费用,这也被认为是一种信用(当我在银行贷款时,我欠钱)。

那么,哪一个是正确的?

1 个答案:

答案 0 :(得分:3)

当您查看第二个示例时,它会将帐户余额设置为500美分,即5美元,这意味着客户在创建时欠 $ 5。由于您正在创建一个客户并为他设置每月10美元的计划,因此第一张发票将为15美元,该计划为10美元,用户的当前帐户余额为5美元。

如果您想向您的客户提供4美元的赠款,以便他的第一张发票是6美元而不是10美元,那么在创建客户时,您可以将其帐户余额设置为-400( - $ 4)。

此设置费用的另一个解决方案是使用Invoice Items作为文档说:

  

有时您希望向客户添加费用或信用额度,但只能在常规结算周期结束时实际向客户的卡收费。这对于合并多项费用以最大限度地降低每笔交易费用或将条带列为基于使用情况的结算总计非常有用。

我发现这更容易使用,因为它直接显示在发票上,而不必查看客户的帐户余额,以了解会发生什么。

如果您想使用此解决方案,您可以阅读subscriptions doc上的指南,但想法会是这样的

  • 创建您的客户(无余额)
  • 为计划设置费(或信用额)
  • 创建发票项目
  • 订阅客户的计划

将创建第一张发票(并立即关闭),并自动获取您创建的发票项目。

对于下一张发票,如果您想为客户的订阅添加点数或费用,您可以收听invoice.created webhook并在该点为发票创建发票项目。第一张发票需要不同的原因是它始终自动关闭,因此您无法在webhook中为其添加发票项目