Paddle Billing
Search

Add non-catalog products and prices to a transaction

Charge for an item without having to add it to your product catalog by passing price or product attributes when working with a transaction.

What's new?

We updated the Paddle platform so that now you can create transactions for products and prices that aren't in your catalog.

When creating or updating a transaction, you can now pass price and product attributes directly to a transaction, as well as passing existing price IDs.

In future updates, we'll release functionality to let you bill one-time non-catalog items to a subscription, then work with recurring non-catalog items on a subscription. These changes are scheduled for Q1 2024.

How it works

As well as creating transactions for items in your product catalog, you can create transactions for non-catalog items by passing a price and (optionally) a product object directly to a transaction when creating or updating.

Adding non-catalog items to a transaction is great for one-off or bespoke items that are specific to that transaction. They let you manage your product catalog outside of Paddle. When adding a custom item to a transaction, you can:

  • Pass a price object for an existing product to charge for a custom price for a catalog product
  • Pass a price object and a product object to charge for a custom price for a custom product

This means you have the flexibility to manage your catalog in the way that best suits the way that you work. For example:

  • If you work with third-party app stores, you can manage your product catalog centrally and pass custom prices and products to transactions.
  • When invoicing enterprise customers, you can agree custom prices for existing products when negotiating.
  • You can use Paddle to bill for large product catalogs where prices may change daily, like eBook resellers or customers who may show personalized prices to different users.

Summary of changes to fields

Request bodies

This is a summary of the changes to fields in the Paddle API in request bodies:

FieldChangeNotes
transaction.items[].price_idValidation changeThis field is no longer required if you include a price object instead.
transaction.items[].priceNew fieldYou can send a price object instead of a price_id to bill for a non-catalog item.

Examples

Create a transaction for a one-time item

This example creates a draft transaction for a one-time non-catalog item. It's for a custom product.

POSThttps://api.paddle.com/transactions

Create a transaction for a recurring item

This example creates a draft invoice for a 50-user enterprise plan. It's for an existing product, related using the product_id field.

Collection mode is manual, meaning this transaction is an invoice. Once issued, Paddle sends an invoice that must be paid manually.

POSThttps://api.paddle.com/transactions

Next steps

This change is available in version 1 of the Paddle API.

It's a non-breaking change, meaning it doesn't impact existing integrations. You can continue creating transactions by passing price IDs for items in your product catalog. We recommend this for customers who sell a set of digital products at the same price points.

You can create or update transactions using the API to start charging for non-catalog items.

This is part of a set of changes around non-catalog items. In future updates, we'll release functionality to let you bill one-time non-catalog items to a subscription, then work with recurring non-catalog items on a subscription. These changes are scheduled for Q1 2024.

Learn more