0Pricing
Stripe Payments & SaaS Billing Systems · Lesson

Creating Products and Prices for Plans

Learn to define and manage products and their associated pricing models (e.g., monthly, yearly) within Stripe.

Creating Products and Prices for Plans is a free Stripe Payments & SaaS Billing Systems lesson on CoddyKit — lesson 2 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.

Intro to Products & Prices

Welcome to creating your subscription service! A key step is defining what you sell and how much it costs.

In Stripe, you'll use two main concepts for this: Products and Prices.

Think of them as the building blocks for any item or service you want to charge for, especially for recurring subscriptions.

What is a Stripe Product?

A Product in Stripe represents the core item or service you're offering. It's the 'what' you're selling.

  • It holds general information like the product's name (e.g., 'Pro Plan', 'Premium Support').
  • It can also include a description and optional images.
  • A product itself doesn't have a price; it's just the definition of the offering.

For subscriptions, a product often represents a specific tier or plan.

What is a Stripe Price?

A Price in Stripe defines how much a product costs and how it's billed. This is the 'how much' and 'how often' of your offering.

  • It specifies the amount (e.g., $10.00).
  • It defines the currency (e.g., USD, EUR).
  • Crucially for subscriptions, it sets the billing interval (e.g., monthly, yearly).

A single product can have multiple prices (e.g., monthly vs. yearly options for the same 'Pro Plan').

Product-Price Relationship

Products and Prices work together. A product is like a blueprint, and prices are the specific ways you can sell that blueprint.

For example:

  • Product: 'Premium Software Plan'
  • Price 1: $29.99 USD per month
  • Price 2: $299.99 USD per year

Both prices are linked to the same 'Premium Software Plan' product, offering different billing frequencies to your customers.

Creating a Product via API

While you can create products in the Stripe Dashboard, using the API gives you programmatic control. Let's create a simple product using Python:

Note: This code demonstrates the API call structure. It requires a real Stripe API key to actually create resources.

import stripe

# Set your secret API key (replace with your actual key)
# stripe.api_key = 'sk_test_YOUR_STRIPE_SECRET_KEY'

def main():
    print("--- Creating a Stripe Product ---")
    print("This code shows how to define a product.")
    print("It requires a valid API key to run successfully.")

    try:
        # Simulate the API call
        print("\nCalling stripe.Product.create(...)")
        # product = stripe.Product.create(
        #     name='Basic SaaS Plan',
        #     description='Our entry-level software subscription.',
        #     type='service'
        # )
        # print(f"Product created with ID: {product.id}")
        print("  name='Basic SaaS Plan',")
        print("  description='Our entry-level software subscription.',")
        print("  type='service'")
        print("(If successful, Stripe would return a product ID like 'prod_ABCXYZ')")

    except Exception as e:
        print(f"\nError: {e}")
        print("Please ensure your API key is correctly set.")

if __name__ == "__main__":
    main()

Creating a Recurring Price (API)

Now that we have a product, let's create a recurring price for it. This price will define the monthly cost.

You'll need the id of the product you just created (or an existing one). Let's assume 'prod_ABCXYZ' for our example.

import stripe

# Set your secret API key (replace with your actual key)
# stripe.api_key = 'sk_test_YOUR_STRIPE_SECRET_KEY'

def main():
    print("--- Creating a Recurring Price ---")
    print("This code shows how to define a monthly price for a product.")
    print("It requires a valid API key to run successfully.")

    product_id = 'prod_ABCXYZ' # Use your actual product ID here

    try:
        # Simulate the API call
        print(f"\nCalling stripe.Price.create(...) for product {product_id}")
        # price = stripe.Price.create(
        #     unit_amount=1000, # $10.00 (in cents)
        #     currency='usd',
        #     recurring={'interval': 'month'},
        #     product=product_id
        # )
        # print(f"Price created with ID: {price.id}")
        print("  unit_amount=1000, # $10.00 (in cents)")
        print("  currency='usd',")
        print("  recurring={'interval': 'month'},")
        print(f"  product='{product_id}'")
        print("(If successful, Stripe would return a price ID like 'price_123DEF')")

    except Exception as e:
        print(f"\nError: {e}")
        print("Ensure your API key and product ID are correct.")

if __name__ == "__main__":
    main()

Different Billing Intervals

Stripe's pricing allows for flexible billing intervals to suit various subscription models:

  • month: Billed every month.
  • year: Billed every year.
  • week: Billed every week.
  • day: Billed every day (less common for SaaS, but available).

You specify the interval within the recurring object when creating a price.

Dashboard vs. API Management

You have two primary ways to manage your products and prices:

  • Stripe Dashboard: Great for initial setup, viewing existing items, and making manual changes. Go to 'Products' in your dashboard.
  • Stripe API: Essential for automation, integrating with your application, and dynamic price creation (e.g., for different customer segments).

For a scalable subscription service, the API will be your primary tool for management.

Best Practices & IDs

When defining products and prices:

  • Clear Naming: Use descriptive names for your products and prices.
  • Product Type: For subscriptions, usually set type='service'.
  • Price IDs: Stripe assigns unique IDs (e.g., prod_ABCXYZ, price_123DEF). Store these IDs in your application's database to reference them when creating subscriptions.

These IDs are crucial for linking your customers to the correct subscription plans.

Check Your Knowledge

Let's test your understanding of Stripe products and prices.

Recap: Products & Prices

Great job! In this lesson, you learned the foundational concepts of Stripe Products and Prices:

  • Products define the items or services you sell (e.g., 'Basic Plan').
  • Prices define the cost, currency, and billing frequency for a product (e.g., '$10/month USD').
  • You can create and manage both using the Stripe API for programmatic control.

Understanding these concepts is crucial for building any subscription-based business with Stripe. Next, you'll learn how to let customers manage these subscriptions!

Frequently asked questions

Is the “Creating Products and Prices for Plans” lesson free?

Yes — the full text of “Creating Products and Prices for Plans” 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 “Creating Products and Prices for Plans”?

Learn to define and manage products and their associated pricing models (e.g., monthly, yearly) within Stripe. 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 2 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Creating Products and Prices for Plans” 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