#Abishek
1 messages ยท Page 1 of 1 (latest)
I guess you'd have a 'free' price that they subscribe to for 2 months, and then you transition to the yearly price after that initial free phase
So, how would it work when it comes to renewal of the plan after the year? Will it charge again the price with 2 Free months or the actual cost?
Not quite sure which use case I need to look at on the link you shared
Depends on how you configure it. Default behaviour would be for it to 'release' after the year and then continue to bill the user at the regular yearly interval without the 2 months
There's no specific use case for that, but should be possible via: https://stripe.com/docs/billing/subscriptions/subscription-schedules/use-cases#upgrading-subscriptions
i.e. schedule an upgrade
so if we release the SubscriptionSchedule, what happens? Does their plan get canceled?
Answered this above:
then continue to bill the user at the regular yearly interval without the 2 months free
ok, thanks, just read through this https://stripe.com/docs/api/subscription_schedules/object#subscription_schedule_object-end_behavior
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
new to Subscription Schedules, so do we attach a subscription schedule to an existing Subscription that we create for a customer?
According to the docs, it says that it will continue to use the underlying subscription. so just wondering how
does it make sense?
You can just create the Schedule directly and that'll create the Subscription accordingly
Sorry, I just a feel a bit dumb after going over our conversation. So my use case was to charge the customer for the whole year and give them 2 months Free. So if the monthly price is $10, that would amount to $120 for the whole year. But I am going to charge them only $100 for the year giving them 2 months as Free. But I want them to charge $120 from the next years renewal.
Will Subscription Schedule do the same, charge them for all the intervals in one go?
The easiest way to grok this will be to use the API, in conjunction with test clocks
I'll give you a summary of how I'd tackle this:
Thank you
- Create the Schedule with 2 phases:
- The 1st phase should be for the 2 'free' months - you'll need a zero-amount Price object to do this and set
iterations: 2. - The 2nd phase will be for the remaining 10 months at $10 - you'll need a Price object to reflect this too.
iterations: 10.
- The 1st phase should be for the 2 'free' months - you'll need a zero-amount Price object to do this and set
- The schedule will then create the underlying Subscription object for your customer and will automatically handle the transition from the 'free' item to the paid item after 2 cycles/months.
- At the end of the initial year, after all the phases have finished, the Schedule will 'release' the underlying subscription. At this point the subscription will continue to cycle at the monthly interval determined by the active item, charging your user $10 p/m.
As I said, the easiest way to understand how this works and to confirm the behaviour is as you need is by setting it up as I described and then simulating time advancements with a test clock: https://stripe.com/docs/billing/testing/test-clocks
Hi ๐ I'm jumping in as my teammate needs to step away soon, and can help address any followup questions.
@amber hinge Thanks, it makes sense what @vivid plume said, but what is confusing to me is how will this charge the customers payment method? Will the SubscriptionSchedule charge them for all the scheules in one go or on a monthly basis?
Because subscription's charge the customer based on the interval set, so how does it work with this?
The Subscription Schedule will not process the payments, the underlying Subscription will. With the approach mentioned above, it looks like that would use monthly prices and therefore charge monthly.
Let's take a step back, what is your desired behavior?
OK, I don't want the customer to use the first 2 months of Free and cancel out on the rest. Is there a way to prevent this?
Prevent it how?
I want to capture the payment for the whole year as mentioned above
With the Subscription Schedule, the customer will not be charged for the first 2 months and then $10 for 10 months after that
Okay, how are you planning to create these Subscriptions? Will you be using Checkout Sessions?
API
Is your goal to have a $120 price that is charged annually, that includes a discount for the first year?
correct
I am working on a component and want to add this as an option for customer to set this up easily
Then I would create a Price that is $120/year, and create the Subscription with a one-time Coupon to discount the initial price.
ok
this definetly helps. But I am going to see how I can use Subscription Schedules to improve my component for use cases that was shared above. I want to discuss another similar scenario. Should I create another thread?
Nope, we can continue here.
ok great. The other scenario is also based on subscription and here it is.
Payment for full year only
- 1st Year - Full Payment - $120
- 2nd Year - 10% Discount - 108
- 3rd Year onwards - 20% Discount - $96
How do I go about setting this up?
These are basically renewal discounts
Subscription Schedules if you want to schedule those changes to happen automatically. Start with a Price of $120/year, for the next phase add a 10% Coupon (duration of the Coupon likely doesn't matter as it will only impact one Invoice), then the phase after that swap to a 20% off coupon.
So, Subscription Schedules accept a coupon?
ah I see it https://stripe.com/docs/api/subscription_schedules/create#create_subscription_schedule-phases-coupon
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
So, for this scenario, the iternations is not required if I am using the Price set for the whole year. Correct?
only the phase with the items and the coupon on each phase
I'd recommend setting iterations to 1, so you don't have to worry about dialing in the exact start/end time for each phase (unless you want to explicitly control those).
Any time! Always happy to help.