Commet Offers lets you combine trials, discounts, and fixed prices into a reusable sequence.
Oh, and say hi to Kyle!
Reward a referral
Promised a $20 billing credit for a referral? Once you've verified it, grant the credit with the reason. It reduces an eligible future invoice and leaves a record of the reward.
Waive usage charges
A customer incurred $40 in usage you agreed to cover. Grant an equivalent invoice credit.
Need to reduce a customer's bill? Grant a monetary credit in the invoice's currency, with a reason. Commet applies it to eligible invoices before tax and records where it was used.
Four ways to use it:
Here's a plan upgrade in the Customer Portal.
Choose a plan, review the proration breakdown, then confirm. The preview shows the new plan charge, credit for unused time, and estimated total.
Commet handles plan upgrades and downgrades through the Customer Portal, MCP, or API.
Create a Plan Group, add your plans, then order them from lowest to highest tier. That order defines the upgrade path.
Updating to @commet/node 9.4?
-Check your handlers for the new paused subscription status and resume invoice type.
-The SDK defaults to API 2026-08-27.
-Explicit API overrides and webhook endpoint versions stay unchanged.
Your billing experience. Ready to use, or built by you.
Use Commet's hosted customer portal, or build your own screens with the API and SDK for subscriptions, usage, and invoices.
You design the experience. Commet handles the billing.
Commet headless.
Create customers and subscriptions from the CLI. Request refunds from your code. Fetch invoices through the API.
Use these billing operations in your app, scripts, and workflows without opening the dashboard.
A customer changes their saved payment method. Past transactions still need to show how each payment was made.
Commet now stores "paymentMethod" on each transaction and includes it in transaction APIs and payment outcome webhooks.
Replying to @MaxHedronCoin
Max! Yep, the agent get a totally readable error and can communicate the authorization gap to the user.






