Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
OverviewExplore all products
Start building
Start developing
Sample projects
About the APIs
    API tour
    Payment Intents API
    Setup Intents API
    Payment Methods
    Products and prices
      How products and prices work
      Manage products and prices
    Older APIs
    Release phases
Build with LLMs
Use Stripe without code
Set up Stripe
Create an account
Web Dashboard
Mobile Dashboard
Migrate to Stripe
Manage fraud risk
Understand fraud
Radar fraud protection
Manage disputes
Verify identities
HomeGet startedAbout the APIsProducts and prices

How products and prices work

Learn how products and prices in Stripe model your business.

Copy page

Products and prices are core resources for many Stripe integrations. Products define what your business offers, whether that’s goods or services. Prices define how much and how often to charge for products.

You can create products and prices in Stripe or import them into Stripe through the API. After you create products and prices, you can use them with Checkout Sessions, Payment Links, Invoices, Quotes, or a custom integration to create Subscriptions.

Products

Products describe the specific goods or services you offer to your customers. Use cases include:

  • E-commerce: If you sell clothes online, you can create a separate product for each size and color combination of shirts, for example.
  • SaaS platform: You could offer basic and premium pricing tiers, where basic and premium are separate products.
  • Donation platform: You accept donations for several different causes, and each cause is a different product.

Product IDs

Each product has a unique ID. Unlike most Stripe resources, you can choose the ID of the product yourself. We recommend choosing an ID that makes it easy to integrate Stripe with other systems you use. For example, if you’re selling physical goods, you can use the internal ID from your own systems.

Product names

When you create a product in Stripe, you have to provide a name. You can optionally add other attributes, like a description or image. If you’re using Stripe Tax, you can also define a tax code for each product, such as pet grooming, e-books, or SaaS. Stripe Tax uses the tax code to automatically calculate and collect sales taxes during purchase.

Prices

In Stripe, prices include additional information, such as tax behavior, volume tiers, and recurrence intervals for subscriptions. You don’t need to create new prices for each purchase–if you’re selling a product for one price, you only need to create one price. You can also make this price the default price for the product.

One-time and recurring payments

Prices can either be one-time or recurring. Subscriptions use recurring prices to charge the customer at an interval, such as “once a month.” If you sell the same service at several different subscription intervals, it’s best to create multiple recurring prices for the same product. Learn more about pricing models.

Multiple currencies

A single Price can support multiple currencies. For example, if you sell a product in the US for 10 USD, in Europe for 9 EUR, and in Japan for 1300 JPY, the same Price object can cover all three currencies. Each purchase uses one of the Price’s supported currencies, depending on how you use the Price in your integration. Learn more about multi-currency Prices.

Multiple prices

Because a product can have multiple prices associated with it, you need to specify which price to use when creating Checkout Sessions, Payment Links, Invoices, Quotes, or Subscriptions.

Unit amount

Most prices define a fixed unit_amount, but you can also configure the price to function with different tiers or usage-based models. Learn more about tiered pricing and usage-based pricing.

Tax behavior

If you use Stripe Tax, you can specify the tax_behavior for the price to determine whether the tax is already included in the amount, or if it needs to be added. Learn more about tax behavior.

Working with products and prices

Create or import products and prices

The quickest way to get started with products and prices is to create them through the Stripe Dashboard.

If you have a large product catalog that you manage using a spreadsheet or other software, you might prefer to import the product catalog programmatically using the Products and Prices API. Learn more about import products and prices.

If you need to charge an amount of money that’s different for each transaction (for example, a user-selected donation amount), you can create the product, but not create a price. Instead, you can use the price_data parameter when creating Checkout Sessions or Subscriptions to set the particular price.

Use products and prices

When creating a Checkout Session, specify the price id for each line item. The Checkout Session uses the price to compute the order total. It also retrieves the product associated with the price, then uses the product’s name and image to render the Checkout page.

Manage existing products and prices

You can update product details through the Dashboard or API. For example, you might change the description of a product, or add new product images to use on the Checkout page.

If you’re no longer selling a product, you can archive both it and the price through the Dashboard by clicking the Archive button, or through the API by setting active to false. We store the archived product and price information indefinitely to maintain records of past transactions.

In general, you can’t delete products or prices, you can only archive them. In certain cases, you can use the Dashboard to delete a price that has never been used, or to delete a product that doesn’t have any prices set.

To change the price of a product, create a new price for the new amount, then archive the existing price by setting active to false. Instead of changing the unit_amount on the existing price, you need to create a new price to make sure that we keep the existing price as an immutable record of past transactions.

You can set a default price on a product to specify the most common price to present to customers. You can change the default price to another price later, such as if you increase the price of your product.

Understand product and price compatibility

Not all features of products and prices are compatible with all Stripe APIs. Consult the following table for compatibility information.

Feature Checkout Payment Links Quotes Subscriptions Invoices
Product imagesIgnored*Ignored*Ignored*
Product descriptionsIgnored*Ignored*
Product tax codes
Product statement descriptorIgnored*
Recurring prices
Multi-currency pricesIgnored*Ignored*
Tiered pricesDisallowed*
Decimal amounts (for example, charging half-a-cent per unit)Disallowed*
Usage-based pricesDisallowed*
Customer chooses priceDisallowed*Disallowed*Disallowed*

Entries marked as Disallowed indicate that if a product or price uses this feature, you can’t use that product or price with this Stripe API.

Entries marked as Ignored indicate that the feature has no effect with this Stripe API, but you can still use the product or price as usual.

Understand limitations

We don’t limit the number of customers, coupons, products, prices, or most other objects that you can create in your Stripe account.

When using recurring prices with Subscriptions:

  • All prices on a Subscription must have the same recurring.interval and recurring.interval_count
  • The maximum interval time period of a price is 3 years
Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc