Skip to main content
Your catalog is what you sell, described in credits. Each environment has its own, and you keep it in your repo with the CLI. Credit packs are called add-ons in the API (/v1/add-ons, addOnId), with type: "credit_pack".

Plan versions

Plans are versioned. When a plan’s credits, price or overage terms change, customers already on it keep the old version and customers who start it afterwards get the new one. Publishing the same values again changes nothing ("changed": false). Features and packs change in place.

IDs and limits

All prices are in USD, and all plans are monthly.

Archiving

Removing an item from your catalog file archives it, which hides it from new checks, tracks and purchases and keeps its history:
  • An archived feature returns 404 feature_not_found from check and track. Its recorded usage stays.
  • An archived plan can’t be attached. Customers already on it keep their subscription and credits; nothing is cancelled in Stripe.
  • An archived credit pack can’t be bought. A Checkout already open can still complete.
Publishing an archived item’s ID again brings it back.

Stripe sync

Paid plans sync to Stripe after each change. A plan’s stripeSyncStatus is pending while the sync runs, synced once Stripe has the Product and Price, or failed; a free plan’s is null. Packs don’t sync ahead of time: Ledger prices each pack’s Checkout when it opens. If a paid plan hasn’t synced when you attach it, attach syncs it first, and returns 502 stripe_checkout_failed if Stripe refuses.