I read this post Stripe - How to handle subscription with a free plan and no credit card required at sign up time and found it very helpful, but I still have a question.
My app has two paid plans: 'basic' and 'pro'. On signup user doesn't select a plan and doesn't enter card details. Basically, the user is on a generic trial plan for the first 14 days and after this trial expires the user will have to choose a paid plan and enter card details.
What would be the best way to handle this trial? I was thinking about these approaches:
a) Since I don't know which paid plan the user will choose after trial expiry, I can't make use of Stripe trial periods functionality.
From Stripe Docs: When you create plans, one of the options you can set is how long the trial period will last. If you do choose to offer a trial period, the customers you sign up won't be charged for the first time until after the trial period has ended.
I was thinking to create a Stripe plan called 'trial' with an amount set to $0.00, the trial period of 14 days and interval of 2 weeks. This way I will be able to listen to Stripe webhook customer.subscription.updated
to determine if trial expired and update the database accordingly. I am not sure if this is a good approach because it will generate an invoice for this trial plan (it is set as a subscription). I do like Stripe webhooks though. Is there a better way to do it?
b) Another option is to only have paid plans in Stripe and create Stripe subscription when the trial expires and the user has to choose a plan and enter card details. This way I won't be using Stripe to check if trial expired. I will do checks on user login to determine if the trial is still active.
Thanks for your help!