Create products and prices
Products and prices make up your product catalog in Paddle. They hold information about what is being sold, how much items are being sold for, and how often a charge is made.
Your product catalog holds the products that are being sold to customers, including subscription plans, recurring addons, and one-time charges.
Create products and related prices to start billing.
How it works
A complete product is made up of two parts:
- Product entities describe the items that are being sold. They hold attributes like product name, description, and an image that's shown on at checkout or on an invoice.
- Price entities are related to products and describe how much and how often they're billed for. They hold attributes like unit price, billing frequency, trial period, and localized prices.
Products are the items that customers buy — like subscription plans, recurring addons, or one-time charges. Prices describe how they pay for them. For example:
In this example:
- Starter, Professional, and Enterprise are products.
- $20/month, $100/month, and $200/month are prices.
When switching from monthly to yearly:
- Products remain the same — names remain as Starter, Professional, and Enterprise plans.
- Prices change — your page should fetch prices for products where the billing cycle is yearly rather than monthly
You can add as many prices as you like against a product. However, prices may only relate to one product.
Billing cycle
The billing cycle against a price determines how often Paddle bills for it. You can set an interval and a frequency. This is typically things like every month, every three months, or every year, but you can be as flexible as you like.
Paddle supports multi-product subscriptions, letting you add recurring addons alongside subscription plans. When building multi-product subscriptions, all items on a subscription must have the same billing period. This means that if a customer subscribes to your "Pro plan" with a yearly price, you must also create yearly price for any recurring addons. You can't add a monthly addon to a subscription for a yearly plan.
One-time charges
Prices don't have to have a billing cycle. These are called "one-time charges."
One-time charges can be billed to subscriptions. They're typically used for things like setup or onboarding fees at the start of a subscription, or data auditing or support incident fees during a subscription.
You might also use them to offer ebooks, access to webinars, or other learning resources to customers.
Create a product
Create products to describe items being sold. You can add prices to your products afterward.
We recommend creating products using the Paddle dashboard.
Create product
Go to Paddle > Catalog > Products.
Click New product.
Enter details
Enter details for your new product.
Click Save when you're done.
Create a related price
Once you've created products, create related prices that describe how you bill for them. You can't sell a product without creating a price.
We recommend creating prices using the Paddle dashboard.
Add price overrides to a price to set country specific prices. Price overrides let you override the base price with a custom price and currency for any country. See: Localize prices
Find product
Go to Paddle > Catalog > Products, then click the product you want to add a price to in the list.
Create price
Under the Prices section, click New price.
Enter details
Enter details for your new price.
Click Save when you're done.
Review prices and products
Once you've created products and related prices, you can use the include
query parameter in the Paddle API to review them. You can:
Get a product and all prices
To get a product and its related prices, send a GET
request to the /products/{product_id}
endpoint, using the include
query parameter with the value prices
.
Return entities related to the specified product. Use a comma-separated list to specify multiple product IDs.
Include related entities in the response. Use a comma-separated list to specify multiple entities.
Get a price and related product
To get a price and its related product, send a GET
request to the /prices/{price_id}
endpoint, using the include
query parameter with the value product
.
Return entities related to the specified price. Use a comma-separated list to specify multiple price IDs.
Include related entities in the response.
List prices for a product
To return a list of prices for a product, send a GET
request to the /prices
endpoint, using the product_id
query parameter to filter by product_id
.
You can pass a comma-separated list to list prices for more than one product.
Return entities related to the specified product. Use a comma-separated list to specify multiple product IDs.
Events
product.created | Occurs when a product is created. |
price.created | Occurs when a price is created. |
product.updated | Occurs when a price is created and associated with a product. |