Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
No-code
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Overview
Online payments
Products and prices
    Overview
    How products and prices work
    Get started with products and prices
    Manage products and prices
Invoicing
Subscriptions
Quotes
In-person payments
Multiparty payments
After the payment
Add payment methods
Payment Links
Stripe Checkout
Stripe Elements
About the APIs
Regulation support
Implementation guides
Testing
HomePaymentsProducts and prices

Manage products and prices

Learn how to manage products and prices.

You can create and update products and prices in the Dashboard or through the API.

Some advanced use cases, like creating variable prices, require you to use the API. If you have a large number of products and prices or if you’re building a custom integration with Elements, you need to use the API.

  • Use the Dashboard to create and manage products and prices if you want to avoid writing code or if you only have a few products and prices. Set up your pricing model in test mode and click the Copy to live mode button on the product details page.
  • Use the API or the Stripe CLI to create and manage products and prices. The API is a direct method that you use for production implementations. The Stripe CLI is a developer tool that helps you build, test, and manage your integration with Stripe directly from your terminal.

The following API steps use a fictional SaaS collaboration tool (Togethere) as an example, where the basic product is a project management dashboard.

Create a product

Create a product and price

You can type “product.new” into the address bar of any browser to jump straight to the Product Editor.

Create a product

To create a product in the Dashboard:

  1. Go to the Products tab.
  2. Click +Add product.
  3. Enter the Name of your product.
  4. (Optional) Add a Description. The description appears at checkout, on the customer portal, and in quotes.
  5. (Optional) Add an Image of your product. Use a JPEG or PNG file that’s smaller than 2MB. The image appears at checkout.
  6. (Optional) If you’re using Stripe Tax, select a Tax category for your product. See tax categories for more information about the appropriate category for your product.
  7. (Optional) Enter a Statement descriptor. This descriptor overrides any account descriptors for recurring payments. Choose something that your customers would recognize on a bank statement.
  8. (Optional) Enter a Unit label. This describes how you sell your product. For example, if you charge by the seat, enter “seat” so the line item includes “per seat” for the price. Unit labels appear at checkout, and in invoices, receipts, and the customer portal.

Create a price for the product

To save a product in the Dashboard, you must also add at least one price. You can create multiple prices for a product. To add a price for your product:

  1. Select a Pricing model. For more details about recurring pricing models, read the pricing model guide.

    • Standard pricing: Charge the same price for each unit. If you use this option, select One time or Recurring.
    • Package pricing: Charge by the package, or group of units, like charging 25 USD for every 5 units. Purchases are rounded up by default, so a customer buying 8 units would pay 50 USD.
    • Graduated pricing: Use pricing tiers that may result in a different price for some units in an order. For example, you might charge 10 USD per unit for the first 100 units and then 5 USD per unit for the next 50. If you use this option, select the currency for the price and fill in the tier table.
    • Volume pricing: Charge the same price for each unit based on the total number of units sold. For example, you might charge 10 USD per unit for 50 units, and 7 USD per unit for 100 units. If you use this option, select the currency for the price and fill in the tier table.
    • Customer chooses price: Let the payer decide on the amount to pay for your product, service, or cause. Customer chooses price is only compatible with Checkout and Payment Links.
  2. (Optional) If you’re selling in multiple currencies, click Add more currencies to set how much to charge in each currency.

  3. Select a Billing period for recurring prices. You can add a custom period if none of the drop-down options are what you want.

  4. (Optional) Check the box under Billing period if you’re using metered billing.

  5. Select whether to Include tax in price. Learn more about taxes and subscriptions.

  6. Click Set as default price to make this price the default price of your product. It will say This is the default price if this price is already the default price. The first price for the product will automatically be set as the default price.

  7. (Optional) Enter a Price description. Customers don’t see this description.

  8. (Optional) Click Add another price if you want to create multiple prices for your product.

  9. Click Save product to save the product and price. You can edit both later. Click Save and add more if you want to create another product and price.

Edit a product

To modify a product in the Dashboard:

  1. Go to the Products tab.
  2. Find the product you want to modify, click the overflow menu (
    ), then click Edit product.
  3. Make your changes to the product.
  4. Click Save product.

You can also edit products from within the product information page by clicking the overflow menu (

) or Edit.

Archive a product

If you want to disable a product so that it can’t be added to new invoices or subscriptions, you can archive it. If you archive a product, any existing subscriptions that use the product remain active until they’re canceled and any existing payment links that use the product are deactivated. You can’t delete products that have an associated price, but you can archive them.

To archive a product:

  1. Go to the Products tab.
  2. Find the product you want to modify, click the overflow menu (
    ), then click Archive product.

To unarchive a product:

  1. Go to the Archived tab on the Products>Overview page.
  2. Find the product you want to modify, click the overflow menu (
    ), then click Unarchive product.

You can also unarchive a product from the product information page.

Delete a product

You can only delete products that have no prices associated with them. Alternatively, you can archive a product.

If a product has a price associated with it, you have to delete or archive the price before you can delete the product. Stripe keeps a record of the price and product for historical transactions.

To permanently delete a product:

  1. Go to the Products tab.
  2. Find the product you want to modify, click the overflow menu (
    ), then click Delete product.

Create price

You can create single or multiple prices for a product. For example, Togethere may have a “starter” level offered at 10 USD per month, 100 USD per year, or 9 EUR as a one-time purchase.

After you create a price, you can only update its metadata, nickname, and active fields.

To create a price in the Dashboard, you have to create a product first. Then you can create a price:

  1. Select a Pricing model. For more details about recurring pricing models, read the pricing model guide.

    • Standard pricing: Charge the same price for each unit. If you use this option, select One time or Recurring.
    • Package pricing: Charge by the package, or group of units, like charging 25 USD for every 5 units. Purchases are rounded up by default, so a customer buying 8 units would pay 50 USD.
    • Graduated pricing: Use pricing tiers that may result in a different price for some units in an order. For example, you might charge 10 USD per unit for the first 100 units and then 5 USD per unit for the next 50. If you use this option, select the currency for the price and fill in the tier table.
    • Volume pricing: Charge the same price for each unit based on the total number of units sold. For example, you might charge 10 USD per unit for 50 units, and 7 USD per unit for 100 units. If you use this option, select the currency for the price and fill in the tier table.
    • Customer chooses price: Let the payer decide on the amount to pay for your product, service, or cause. Customer chooses price is only compatible with Checkout and Payment Links.
  2. (Optional) If you’re selling in multiple currencies, click Add more currencies to set how much to charge in each currency.

  3. Select a Billing period for recurring prices. You can add a custom period if none of the drop-down options are what you want.

  4. (Optional) Check the box under Billing period if you’re using metered billing.

  5. Select whether to Include tax in price. Learn more about taxes and subscriptions.

  6. Click Set as default price to make this price the default price of your product. It will say This is the default price if this price is already the default price. The first price for the product will automatically be set as the default price.

  7. (Optional) Enter a Price description. Customers don’t see this description.

  8. (Optional) Click Add another price if you want to create multiple prices for your product.

  9. Click Save product to save the product and price. You can edit both later. Click Save and add more if you want to create another product and price.

Set a default price

A product’s default price is the most common price you want to present to customers. For example, a product could have multiple prices for seasonal sales, but the default is the regular (non-sale) price. If your product only has one price, that is its default price. The default price must be an active Price.

To change your product’s default price in the Dashboard:

  1. Go to the Products tab.
  2. Find the product you want to modify, click the overflow menu (
    ), then click Edit product.
  3. Under the Price information section, find the price you want to set as the new default price, then click Set as default price.
  4. Click Save product.

To create a new price and make it the new default price in the Dashboard:

  1. Go to the Products tab.
  2. Find the product you want to modify and click on it to open the product information page.
  3. In the Pricing section, click the Add another price button.
  4. Enter your pricing details and select Set as default price. Read more about the fields available when you create a price.
  5. Click Add price.

Lookup keys

Most businesses display pricing information on their website. If these prices are hard-coded and you want to change them, the process is often manual and requires you to deploy new code. To better manage these scenarios, you can use the lookup_key attribute on the Price object. This key allows you to:

  • Render different prices in your frontend.
  • Use the rendered price to bill customers.

You can pass a lookup_key when you create a price:

Command Line
curl https://api.stripe.com/v1/prices \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d product=
{{PRODUCT_ID}}
\ -d unit_amount=1000 \ -d currency=usd \ -d "recurring[interval]"=month \ -d lookup_key=standard_monthly

Instead of hard-coding text like 10 USD per month on your pricing page and using a price ID on your backend, you can query for the price using the standard_monthly key and then render that in your frontend:

Command Line
curl -G https://api.stripe.com/v1/prices \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d "lookup_keys[]"=standard_monthly

To optimize performance, you might want to add a caching layer to only reload the price occasionally.

When a customer clicks your subscribe or pay button, you pass the price from the GET request above into the Subscriptions API.

Now that you can render different prices, if you decide that you want to start charging new users 20 USD per month rather than 10 USD per month, you only need to create a new price and transfer the lookup key to that new price using transfer_lookup_key=true:

Rounding

Rounding occurs on the line item level of your invoices. For example, if you create a price with unit_amount_decimal = 0.05 and a monthly subscription for that [price] with quantity = 30, rounding occurs after multiplying the quantity by the decimal amount. In this case, the calculated amount for the line item would be 0.05 * 30 = 1.5, which rounds up to 2 cents. If you have multiple line items, each is rounded up before summing up the total amount for the invoice. This ensures that customers are still charged an integer minor unit amount, as decimal amounts only apply for pricing.

Command Line
curl https://api.stripe.com/v1/prices \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d product=
{{PRODUCT_ID}}
\ -d unit_amount=2000 \ -d currency=usd \ -d "recurring[interval]"=month \ -d lookup_key=standard_monthly \ -d transfer_lookup_key=true

Edit a price

Multiple properties can be updated on a price, either in the Dashboard or the API. For example, you can change whether the price is active, or modify its metadata.

Note that you can not change a price’s amount in the API. Instead, we recommend creating a new price for the new amount, switch to the new price’s ID, then update the old price to be inactive.

To modify a price in the Dashboard:

  1. Go to the Products tab.
  2. Find the product for the price you want to modify, and click on it
  3. Find the price you want to modify, click the overflow menu (
    ), then click Edit price.
  4. Make your changes to the price. You can add another price at this point.
  5. Click Save.

Archive a price

If you want to disable a price so that it can’t be added to new invoices or subscriptions, you can archive it. If you archive a price, any existing subscriptions that use the price remain active until they’re canceled and any existing payment links that use the product are deactivated.

To archive a price through the Dashboard:

  1. Go to the Products tab.
  2. Find the product you want to modify, click the overflow menu (
    ).
  3. On the product information page, find the price you want to modify, then click the overflow menu (
    ) next to it and click Archive price.

To unarchive a price:

  1. Go to the Products tab.
  2. Find the product you want to modify, click the overflow menu (
    ).
  3. On the product information page, find the price you want to modify, then click the overflow menu (
    ) next to it and click Unarchive price.

Delete a price

You can only delete prices that you’ve never used. Otherwise, you can archive them.

To permanently delete a price in the Dashboard:

  1. Go to the Products tab.
  2. Find the product you want to modify, click the overflow menu (
    ).
  3. On the product information page, find the price you want to modify, then click the overflow menu (
    ) next to it and click Delete price.

Display pricing information

After creating products and prices, you can embed a pricing table on your website to display pricing information to your customers. When customers choose a subscription option, they’re taken directly to checkout. Configure, customize, and update directly in the Dashboard without writing any code.

Was this page helpful?
Need help? Contact Support.
Watch our developer tutorials.
Check out our product changelog.
Questions? Contact Sales.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Create a product
Edit a product
Archive a product
Delete a product
Create price
Edit a price
Archive a price
Delete a price
Display pricing information
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to your Stripe account and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$