2
votes

Say we've setup a Stripe Subscription plan. i.e. $30/mo. (Note: the billing/account info is stored on Stripe.)

Let's say we want to offer the option to the customer to buy a year of the service upfront, and if they do, they only pay $25/mo (i.e. $300).

Is there any way to conceptually link the "paid upfront" payment, and the Subscription plan? There'll related, except the second one is simply being paid up front, and at a discount because of it.

Or is the second situation simply an unrelated charge to the setup plan/subscription, and just submitted as a charge object?

(I want to make sure I'm organizing payments in Stripe the best way).

1

1 Answers

3
votes

There's no universal "best way", it's up to you to decide which way is best suited for your application.

The simplest way, API-wise, would be to create a one-off charge for the yearly amount. But it is then up to you to track that the customer has paid for an entire year and should have access to your service during that time (if that's applicable to your business model).

If you'd rather have the customer being tracked as a subscriber on Stripe's end, what you can do is set up another plan for the correct amount and interval (i.e. $250/year).

Then, when a new customer signs up for this offer, you would:

  • subscribe them to the plan (this will immediately charge the customer for the $250 periodic amount)

  • immediately cancel the subscription with at_period_end set to true. This will prevent the customer from being billed again in one year, but will leave the subscription active until then.