Products
A product groups one or more plans together. The product is what you sell; the plan is how you price it.
Object
{ "id": "prod_…", "object": "product", "code": "pro", "name": "Pro", "description": "For growing teams.", "tax_code": "txcd_10000000", "metadata": { "category": "self-serve" }, "status": "active", "created_at": "2026-05-06T12:34:56Z", "updated_at": "2026-05-06T12:34:56Z"}Endpoints
| Method | Path | What |
|---|---|---|
POST | /v1/products | Create. |
GET | /v1/products/{code-or-id} | Retrieve by code or by ID. |
PATCH | /v1/products/{code-or-id} | Update mutable fields. |
DELETE | /v1/products/{code-or-id} | Delete (only if no plan references it). |
GET | /v1/products | List. |
GET | /v1/products/{code-or-id}/plans | List plans for this product. |
The code is your contract
code is what your application references in API calls — same code in
sandbox and live. It’s the public name; pick a slug-style identifier
and don’t change it. The system ID (prod_…) is also stable, but
codes are easier to reason about.
Status
status | Meaning |
|---|---|
active (default) | Visible; new plans can reference it. |
archived | Hidden from default lists; existing references still work. |
deleted | Soft-deleted. |
Archive instead of delete when sunsetting — historic invoices still reference the product.
Tax code
tax_code is passed to your tax engine to determine the appropriate
tax rules. Defaults to your tenant’s default tax code. See
Tax.
Webhook events
product.created, product.updated, product.archived,
product.deleted.