Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Stripe billing: trial with no plan selected and no credit card entered at signup

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!

like image 826
Marina K Avatar asked Jun 14 '14 10:06

Marina K


People also ask

How do I set up a free trial on Stripe?

For early access, contact us at [email protected]. Stripe Checkout lets you sign up customers for a free trial of a subscription service without collecting their payment details. At the end of the trial period you specify, use Stripe to configure a reminder email to collect a customer's payment details.

How do I get a free Stripe plan?

Here is how it works: To use our product, the user must select a plan (free, s, m, xl, xxl...) then enter its login/password and is then good to go for a free 30 days trial.

Does Stripe automatically charge for subscription?

Have Stripe automatically charge a customer's stored payment method. Stripe can automatically attempt to pay an invoice if the customer has a payment method on file. You can choose to automatically charge a customer when you're creating an invoice or through the API.


1 Answers

My answer would depend upon what percentage of your users end up selecting a plan after the trial period. If most do, then I'd recommend moving them into Stripe from the get-go. If most customers don't become paid users, I'd hold off moving them into Stripe until they do become paid users.

Towards the latter, you'd just create a virtual trial on your end, and then present them with the option to fully subscribe when the two weeks are up. This approach can make sense as it doesn't pollute your Stripe account with non-customers, and it'll be very easy to subscribe your customers to a subscription at any point after the two weeks (e.g., if they come back a week after the trial is up).

But with the former, if it'd make sense to get them into Stripe immediately. You could create a plan with no cost and a two-week trial and then watch the webhooks. That approach of yours is fine. Or you could create a plan with no cost and a two-week trial but a paid cost after that. Without a credit card on file, the subscription charge attempt will fail after that trial, and the subscription will be marked as delinquent. You may consider that to be useful.

Hope that helps! Larry

PS I work on support at Stripe.

like image 169
Larry Ullman Avatar answered Sep 18 '22 15:09

Larry Ullman