Skip to main content
A product is the thing. A price is the deal. Keeping them apart means you can change what you charge without touching what you sell, and without rewriting your integration.
A product record on the left linked to three prices: monthly and yearly on Base, and monthly on Ethereum.A product record on the left linked to three prices: monthly and yearly on Base, and monthly on Ethereum.

One product, as many prices as the way you sell needs

Creating a product with its first price

Most of the time you want both at once, so the create call accepts a nested price.
Response

Cadences

If you need an interval the list does not cover, send interval_seconds instead and Reclack bills on that rhythm.

Adding more prices

A product can carry as many prices as you need. Add a yearly option next to the monthly one:
Changing a price is usually the wrong instinct. Create a new one and point new customers at it. Existing subscriptions keep the terms their customers agreed to, which is what the approval in their wallet was signed against.

Networks

A price lists the networks it can settle on. The payer picks from that list at checkout, which means they can settle where their funds already are rather than bridging first.
You need a registered settlement address for each network you accept. See Settlement.

Retiring a price

Deactivate rather than delete where a price has history. A deleted price takes its reporting with it, and a subscription that referenced it becomes harder to explain.
An inactive price cannot start new subscriptions. The ones already running are untouched. Full parameters are in the products and prices reference.