Billing Catalog Operations
internalInternal operating guide for DB-backed billing catalog changes and checkout safety.
Source of truth
Catalog runtime data is normalized across billing catalog tables with version snapshots.
Core tables:
billing_catalogsbilling_catalog_versionsbilling_catalog_plansbilling_catalog_variantsbilling_catalog_discounts
Checkout safety rules
createCheckout validates:
planKeyexistsvariantIdbelongs to the plan and matches mode (if provided)- ambiguous multi-variant selection is rejected when no
variantIdis provided custom: truevariants are not purchasable
Admin API
GET /admin/billing/catalogGET /admin/billing/catalog/versionsPUT /admin/billing/catalog
Operational guidance
- apply catalog updates in small auditable steps
- preserve variant IDs to avoid provider/webhook correlation drift
- validate staging checkout and webhook paths after catalog edits
Legacy source reference: docs/guides/billing-catalog-operations.md