> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ionicfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Catalog

> Products, prices, and catalog-backed checkout.

Products describe what you sell. Prices describe how much a product costs. Checkout sessions and payment links can reference prices with `price_id` so the amount and currency come from the catalog.

Use this page for the model. Use the generated endpoint pages for payloads and exact field requirements.

The core path is [Create product](/api-reference/products/create-a-product), then [Create price](/api-reference/prices/create-a-price), then reference the `price_` ID from checkout or payment-link creation.

## Product endpoints

| Endpoint                                                   | Use it for                                                         |
| ---------------------------------------------------------- | ------------------------------------------------------------------ |
| [Create product](/api-reference/products/create-a-product) | Add a product.                                                     |
| [List products](/api-reference/products/list-products)     | Page through products, optionally filtering by `active`.           |
| [Get product](/api-reference/products/retrieve-a-product)  | Retrieve one product by `prod_` ID.                                |
| [Update product](/api-reference/products/update-a-product) | Change name, active state, metadata, images, kind, or cross-sells. |

## Price endpoints

| Endpoint                                             | Use it for                                                            |
| ---------------------------------------------------- | --------------------------------------------------------------------- |
| [Create price](/api-reference/prices/create-a-price) | Add a one-time price to a product.                                    |
| [List prices](/api-reference/prices/list-prices)     | Page through prices, optionally filtering by product or active state. |
| [Get price](/api-reference/prices/retrieve-a-price)  | Retrieve one price by `price_` ID.                                    |
| [Update price](/api-reference/prices/update-a-price) | Change active state, nickname, or metadata.                           |

## Notes

* Product `name` is required on create.
* Price `product_id` and `currency` are required on create; `unit_amount` should be sent explicitly, including `0` for free prices.
* Prices are mostly immutable. Update active state, nickname, or metadata instead of changing amount or currency.
* `cross_sells` uses replace semantics when present: omit it to keep existing values, send `[]` to clear.
