Skip to main content
A price defines how much and how often you charge for a product. Each price belongs to a product and specifies a type of either one_time or recurring. Recurring prices support flexible intervals, tiered pricing structures, and metered usage billing. Once a price is created, its core monetary fields are immutable — create a new price if you need to change the amount.

Create a price

POST /v1/prices Creates a new price for an existing product.

Request parameters

string
required
The ID of the product this price belongs to (e.g. prod_xxx).
string
Three-letter ISO 4217 currency code (e.g. ISK, EUR, USD). Defaults to the merchant’s default currency.
string
required
Pricing type. One of one_time or recurring.
number
Price per unit in the currency’s smallest unit. Minimum value is 0. Required when tiers_mode is not set.
object
Required when type is recurring. Defines the billing interval.
string
Enables tiered pricing. One of graduated (each tier applies to usage within that range) or volume (the tier price applies to the entire quantity based on total usage).
object[]
Array of tier objects. Required when tiers_mode is set.
string
ID of the meter to use for metered usage billing. Required when recurring.usage_type is metered.
number
Number of units included in the base price before metered usage billing begins.
string
GL account code to associate with this price for accounting export.
object
Set of key-value pairs you can attach to the price. Values must be strings.

Response fields

string
required
Unique identifier for the price (e.g. price_xxx).
string
required
ID of the associated product.
string
required
Three-letter ISO 4217 currency code.
string
required
Pricing type. One of one_time or recurring.
number
Price per unit. null when tiers_mode is set.
object
Recurring billing configuration. null for one-time prices.
string
Tier mode: graduated or volume. null if not using tiered pricing.
object[]
Array of tier configuration objects. null if not using tiered pricing.
string
ID of the associated meter, if applicable.
boolean
required
Whether the price is currently active.
object
Key-value pairs attached to the price.

List prices

GET /v1/prices Returns a paginated list of prices, ordered by creation date descending.

Query parameters

string
Filter prices by product ID.
string
Cursor for pagination. Pass the id of the last price from the previous page to retrieve the next page.
number
Maximum number of prices to return per page.

Response fields

object[]
required
Array of price objects.
boolean
required
Whether more prices exist beyond this page.

Retrieve a price

GET /v1/prices/{id} Retrieves the details of an existing price.

Path parameters

string
required
The ID of the price to retrieve.

Response fields

Returns a price object. See create a price for the full field reference.

Update a price

PATCH /v1/prices/{id} Updates a price. Only active, accounting_code, and metadata can be modified after creation. To change the amount, currency, or interval, create a new price.

Path parameters

string
required
The ID of the price to update.

Request parameters

boolean
Set to false to deactivate this price. Deactivating does not affect subscriptions already using it.
string
Updated GL account code.
object
Updated metadata. Replaces the existing metadata object entirely.

Response fields

Returns the updated price object. See retrieve a price for the full field reference.