API reference
Products and prices
A product is something sold; a price is what it costs. Payment links, invoices and subscriptions refer to prices. A price's amount and currency never change: archive it (active: false) and create a new one.
The product object
JSON
{
"id": "prod_9cct573e5ewmrj7f6hyjsqap",
"object": "product",
"livemode": true,
"created": "2026-09-10T10:00:00.000Z",
"updated": "2026-09-10T10:00:00.000Z",
"name": "Ethiopia Yirgacheffe, 1 kg",
"description": "Washed, light roast.",
"image": "file_3mg14w9wm9h26h2v61wzxhek",
"active": true,
"metadata": {
"sku": "ETH-YIR-1KG"
}
}The price object
JSON
{
"id": "price_mbk5s5r45kwheaq89dbmk2gz",
"object": "price",
"livemode": true,
"created": "2026-09-10T10:01:00.000Z",
"product": "prod_9cct573e5ewmrj7f6hyjsqap",
"active": true,
"type": "one_time",
"amount": "21.99",
"currency": "USD",
"recurring": null,
"nickname": "Retail",
"metadata": {}
}| Field | Meaning |
|---|---|
type | One of one_time, recurring. |
Every field
Fields of the product object
| Field | Type | Meaning |
|---|---|---|
id | string | Unique identifier: the object prefix, an underscore, 24 lower-case Crockford base32 characters. |
object | string | The type of this object. |
livemode | boolean | true for live mode (real money); false for test mode (simulated payments). |
created | string (date-time) | When the object was created. RFC 3339, UTC, milliseconds. |
updated | string (date-time) | When the object last changed. |
name | string | The product's name, as payers see it. |
description | string or null | A longer description; null for none. |
image | string or null | The file_ id of the product's picture; null for none. |
active | boolean | false once the product is archived: it cannot be sold again. |
metadata | object | Up to 50 keys of your own data. Key up to 40 characters, value a string up to 500 characters. Never used by Orrerie; never put secrets or personal data here. |
Fields of the price object
| Field | Type | Meaning |
|---|---|---|
id | string | Unique identifier: the object prefix, an underscore, 24 lower-case Crockford base32 characters. |
object | string | The type of this object. |
livemode | boolean | true for live mode (real money); false for test mode (simulated payments). |
created | string (date-time) | When the object was created. RFC 3339, UTC, milliseconds. |
product | string | The prod_ id of the product the price is for. |
active | boolean | false once the price is archived: it cannot be used on new links, invoices or subscriptions. |
type | string | One of one_time, recurring. |
amount | string | The price, a decimal string in its currency. It never changes. |
currency | string | The currency of the price: an ISO 4217 code or an asset id. It never changes. |
recurring | object or null | For a recurring price, how often it is charged (interval, interval_count); null for a one-time price. |
nickname | string or null | The merchant's own name for the price; null for none. |
metadata | object | Up to 50 keys of your own data. Key up to 40 characters, value a string up to 500 characters. Never used by Orrerie; never put secrets or personal data here. |
Endpoints
- GETList products/v1/products
- POSTCreate a product/v1/products
- GETRetrieve a product/v1/products/{id}
- PATCHUpdate a product/v1/products/{id}
- GETList prices/v1/prices
- POSTCreate a price/v1/prices
- GETRetrieve a price/v1/prices/{id}
- PATCHUpdate a price/v1/prices/{id}
Events
Webhook events whose data.object is an object of this page.