Who is this for?

This article is for developers or technical founders for SaaS startups looking to implement a complete billing solution using Stripe. This article gets pretty technical, so we assume you have some experience with code.


In this article we assume you have a Stripe account setup already, as well as being familiar with NodeJS and are able to set up an application which can serve HTML.

  • Set up your Stripe account here
  • Read about NodeJS Express here

What will you learn?

In this series you will learn the basics of Stripe, how to setup a checkout flow for your customers to purchase subscriptions using Stripe Checkout, how to build a  page for your customers to view and manage their subscriptions, and lastly how to create a pricing page that updates when you edit your products in Stripe

The Stripe Billing Guide For SaaS Series:

  1. Stripe Billing Basics (this article)
  2. Checkout Flow using Stripe Checkout
  3. Subscription Management Page
  4. Dynamic Pricing Page

Introduction to Stripe Billing

A visualization for a basic subscription in Stripe

Stripe Billing is one of the products within Stripe aimed towards subscription billing, it supports just about any subscription use-case, including metered based (think billing per API call), tiered usage (think volume discounts), and combinations of plans. We are going to tackle in this series of articles how a SaaS startup looking to sell subscriptions can use Stripe Billing. Let's dive into some concepts and start building our pricing strategy in Stripe

Setup your Stripe


In Stripe, Products define the product or service you are offering and doesn't contain any pricing information. For this series we are going to be creating products for a fictional SaaS company, AcmeBot, which sells subscriptions for its chatbot. Lets start by creating a Product representing the basic tier of the application.  

The Product Creation form for our example business

The Unit label field should be used if you sell subscriptions per unit, for example where a company like Slack sells subscriptions per Active User Per month, our SaaS startup, AcmeBot, will just sell a flat subscription. After you create your Product, you will be prompted to set up your Plan.


The Plan in Stripe is an object that describes exactly how a customer pays for your Product. Inside you can configure exactly how much you want someone to pay, how often, and various details such as if they should have a free trial, be given special discounts if they reach a specific volume, and more.

For our AcmeBot example, we will start with a flat $50/month Plan without a free trial in our AcmeBot Basic Subscription Product. If you wanted multiple intervals (for example an annual plan) you would create another Plan in the Product

You may notice that there is a "Metered usage" option in the plan, this is useful for businesses which charge on a specific metric that resets each period, for example charging based on the number of API calls in a given month.

Adding a More Tiers

Now that we have a single tier of our SaaS mapped out, lets create a premium tier that would contain more features. We at Servicebot recommend that for multiple tiers, you split up your Plans over multiple Products, this way you can have your front-end code parse each product as a separate tier whereas multiple Plans in the same Product can get confusing especially if you require multiple intervals.

Lets create a new Product calls "AcmeBot Premium" with a $300/month plan under it

The Products we create with plans attached

Once you have  the Products created, we can move on to building! Check out the next article on how to build a checkout flow for someone to purchase a subscription.

If you are looking for a no-code solution to integrating with Stripe Billing, check out Servicebot, we provide drop-in UI components that connect directly to your Stripe account