Start a new topic

Free plan vs. no subscription


I have (as probably many of you) a freemium model to implement. In our case, the free 'plan' doesn't require a credit card and has no time limit. Only access to some features is disabled.

Browsing through the forums, I've encountered many questions concerning transition between free and paid subscriptions in Chargebee:

However, my analysis shows that the most convenient way of handling this would be to not create a Chargebee subscription for the 'free' users. In other words, only a customer record would be created and a subscription would be added to it only once a user decides to upgrade to a premium plan.

The obvious advantages of this is that:

a) all the problems from the threads I linked to go away

b) I'm able to very simply find out whether an user has a paid plan: I just check whether she has an active subscription; for example, if somebody cancels the subscription, they automatically go back to the 'free' tier

My tests shows that this setup works. Is there any catch? Is this something Chargebee users do?

1 person has this question

Hey Artur,

Thanks for writing in.

The workflow you explained would work, however it'd be great if you could clarify these queries,

1. How would you be notified when a user wants to upgrade to a premium plan?

2. What kind of system do you have in place to make this work?

Let us know about this, so that we can assist you better.

1. This of course depends on where the user action is initiated. But I understand I can subscribe to the 'subscription created' event via a webhook.

2. The customers are created via Chargebee API if this what you are asking about.

Hi Artur

This slipped through the cracks. Sorry about that.

Based on the workflow you have proposed, 

  • You'll create the customer on sign up, without creating a subscription
  • When the customer wants to upgrade, you'll check if they have a payment method/subscription associated. 
  • If not, you'll show them a page to add their card, using Manage Payment Sources API
  • When you get the payment_source_added or the card_added webhook, you use the Create Subscription for Customer API to create their subscription
  • When the customer cancels their subscription, you can use the customer portal to let them cancel themselves and listen the subscription_cancelled webhook or use Cancel a Subscription API to cancel it yourself, depending on how you are handling account management on your end. 
  • This time, you'll be checking the customer's subscription status to see if they have an active paid plan, rather than checking if they have a subscription
  • In case the customer wants to reactivate their subscription, you can either give them the option to reactivate it themselves or use the Reactivate Subscription API to reactivate their subscription. 

There's an alternate method: You can create a $0 plan that renews every 20 years (just as an example; any longer duration plans would do). 

You can then automatically sign your customers up for this plan when they sign up and then move them to a paid plan using Update a Subscription API (after collecting the card details using the Payment Sources API of course). 

In case they wish to cancel, you can move them back to the $0 plan.

This way, you can identify the customers' subscription simply by checking for their plan, rather than making two checks to see if they have a subscription and then if it's active. 

Personally, we (Chargebee) follow, and have recommended to our customers the second method as it's a bit easier to manage it. 

Let me know your thoughts. 

- LN

Hello Lakshmi,

Thank you for your response. I think it is a trade-off: some scenarios are perhaps easier to manage using one solution and others benefit from the other.

On my end, our requirements shifted a little bit (the only constant thing about requirements, if you ask me!) and we won't be downgrading people automatically after their premium plan expires. We will require a conscious action to continue with a free plan. Hence, we need to have an extra 'no-subscription' state in our state diagram, which renders my initial solution infeasible. So we need to have a $0 plan after all.


Hi Artur

I hear ya! Changing requirements always tell us how much we are learning!

Having a $0 plan and switching between the plans sounds like a good way to go forward.

Let me know if I can be of more help.

- LN

I've got a problem with switching between plans. When my customers move from a Free Plan which didn't require them to input their credit cards, and they change to Paid Plan, the Hosted Portal doesn't prompt the customer to input their card details. How can I fix this?

1 person likes this

Interesting conversation - I'm at the same spot, realizing that I could just have a user account on my server, with no Chargebee account or subscription. And this would be my 'free' plan. Or, push users through the sign-up process to get them on an actual $0 subscription. 

In theory, so I thought, it'd be better to have all my users in the subscription system. But apparently, there are lingering problems when upgrading due to CC info not getting collected?

Hello there,

Thanks for writing in.

Considering the scenario above, customers can obviously Add a card in their customer portal and then change the plan. What you suggesting is a very valid use-case and i have taken this up my product team as a feature request. Im creating a support ticket for this and track it towards implementation.

Login or Signup to post a comment