0Pricing
Stripe Payments & SaaS Billing Systems · Lesson

Introduction to Stripe Subscriptions API

Explore the core concepts of recurring payments and how Stripe's Subscriptions API enables robust subscription management for SaaS.

Introduction to Stripe Subscriptions API is a free Stripe Payments & SaaS Billing Systems lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Stripe Payments & SaaS Billing Systems learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Welcome to Subscriptions!

Ever wondered how Netflix, Spotify, or your favorite SaaS app charges you regularly? That's recurring billing, powered by subscriptions!

In this lesson, we'll dive into how Stripe helps you build robust subscription services for your business.

Why Recurring Payments?

Subscriptions are key for many businesses, especially for Software as a Service (SaaS) models. They provide:

  • Predictable Revenue: Stable income streams.
  • Customer Loyalty: Encourages long-term relationships.
  • Simplified Billing: Automates regular charges.

Stripe's Subscriptions API makes setting this up straightforward.

Stripe's Core Subscription Building Blocks

Stripe uses a few key concepts to manage subscriptions:

  • Products: What you sell (e.g., 'Basic Plan', 'Premium Tier').
  • Prices: How much and how often you charge for a Product (e.g., '$10/month', '$100/year').
  • Customers: The individuals or businesses subscribing.
  • Subscriptions: The ongoing agreement between a Customer and a Price.

Understanding Products

A Product in Stripe represents something you sell. Think of it as the core offering.

For example, if you offer a 'Standard' and 'Pro' tier for your app, these would be two separate Products.

Products hold general information like a name and description, but not the actual price.

Defining Prices for Products

A Price defines how you charge for a Product. A single Product can have multiple Prices.

For example, your 'Pro' Product might have:

  • A 'Monthly' Price of $29.
  • An 'Annual' Price of $299.

Prices specify the currency, amount, and billing interval (e.g., day, week, month, year).

The Subscription Flow: High-Level

To create a subscription, you generally follow these steps:

  1. Create a Customer: Represent the user in Stripe.
  2. Collect Payment Method: Securely get card details (covered in other lessons).
  3. Create a Subscription: Link the Customer to a Price.

Stripe handles the recurring billing automatically after that!

API Example: Creating a Customer

Before a customer can subscribe, they need to exist in Stripe. Here's a basic Java example to create a Customer object:

Run this code to see a new customer ID generated!

import com.stripe.Stripe;
import com.stripe.model.Customer;
import com.stripe.param.CustomerCreateParams;

public class Main {
  public static void main(String[] args) {
    Stripe.apiKey = "sk_test_YOUR_SECRET_KEY"; // Replace

    try {
      CustomerCreateParams params =
        CustomerCreateParams.builder()
          .setEmail("testuser@example.com")
          .setName("Test User")
          .build();
      Customer customer = Customer.create(params);
      System.out.println(
        "New Customer ID: " + customer.getId()
      );
    } catch (Exception e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

API Example: Creating a Subscription

Once you have a Customer and a Price (which you'd create via the dashboard or API, covered in Lesson 2), you can create a Subscription.

Note: Replace cus_... and price_... with actual IDs from your Stripe account.

import com.stripe.Stripe;
import com.stripe.model.Subscription;
import com.stripe.param.SubscriptionCreateParams;

public class Main {
  public static void main(String[] args) {
    Stripe.apiKey = "sk_test_YOUR_SECRET_KEY"; // Replace

    try {
      SubscriptionCreateParams params =
        SubscriptionCreateParams.builder()
          .setCustomer("cus_YOUR_CUSTOMER_ID") // From step 1
          .addItem(
            SubscriptionCreateParams.Item.builder()
              .setPrice("price_YOUR_PRICE_ID") // Your plan's price
              .build()
          )
          .build();
      Subscription subscription =
        Subscription.create(params);
      System.out.println(
        "Subscription ID: " + subscription.getId()
      );
    } catch (Exception e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

Subscription Statuses

Subscriptions have different statuses reflecting their state:

  • active: The customer is currently subscribed and being billed.
  • past_due: A payment failed, and the subscription is awaiting a new payment.
  • canceled: The subscription has ended.
  • trialing: The customer is in a trial period (no charge yet).

Understanding these helps manage customer access.

Quick Check: Subscription Basics

Which of the following is responsible for defining how much and how often a customer is charged for a subscription?

Recap: Intro to Subscriptions

Great job! You've learned the fundamental concepts of Stripe Subscriptions:

  • The value of recurring payments for SaaS.
  • Stripe's core building blocks: Products, Prices, Customers, and Subscriptions.
  • The basic API flow for creating a customer and a subscription.
  • Key subscription statuses.

Next, we'll learn how to create and manage Products and Prices in detail!

Frequently asked questions

Is the “Introduction to Stripe Subscriptions API” lesson free?

Yes — the full text of “Introduction to Stripe Subscriptions API” is free to read here on the web, and the Stripe Payments & SaaS Billing Systems course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Stripe Payments & SaaS Billing Systems course, upgrade to CoddyKit PRO.

What will I learn in “Introduction to Stripe Subscriptions API”?

Explore the core concepts of recurring payments and how Stripe's Subscriptions API enables robust subscription management for SaaS. You practise Stripe Payments & SaaS Billing Systems with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Stripe Payments & SaaS Billing Systems?

No prior experience is required. Stripe Payments & SaaS Billing Systems on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Introduction to Stripe Subscriptions API” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Stripe Payments & SaaS Billing Systems lesson?

Yes. Every Stripe Payments & SaaS Billing Systems lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Introduction to Stripe Subscriptions API
  2. Creating Products and Prices for Plans
  3. Customer Portal & Basic Billing Management
  4. Handling Failed Payments and Dunning
← Back to Stripe Payments & SaaS Billing Systems