# Commet Documentation > B2B SaaS billing platform for Latin America - Documentation: Guides, SDKs, and references to integrate Commet into your application - [Introduction](/docs): Measure consumption, manage subscriptions, and accept payments for your SaaS or AI product with Commet. - **Quickstart** - [Create an API Key](/docs/create-api-key.md): Create a sandbox API key from the dashboard, CLI, or MCP, store it on your server, and rotate it safely. - [Quickstart](/docs/choose-a-billing-model.md): Go from a Commet account to your first subscription payment in sandbox. - Node.js: Integrate Commet with Node.js frameworks - [Integrate with Next.js](/docs/integrate-with-nextjs.md): Add billing and payments to your Next.js application. - [Integrate with Remix](/docs/integrate-with-remix.md): Add billing and payments to your Remix application. - [Integrate with Nuxt](/docs/integrate-with-nuxt.md): Add billing and payments to your Nuxt application. - [Integrate with SvelteKit](/docs/integrate-with-sveltekit.md): Add billing and payments to your SvelteKit application. - [Integrate with Astro](/docs/integrate-with-astro.md): Add billing and payments to your Astro application. - [Integrate with Express](/docs/integrate-with-express.md): Add billing and payments to your Express application. - [Integrate with Hono](/docs/integrate-with-hono.md): Add billing and payments to your Hono application. - [Integrate with Bun](/docs/integrate-with-bun.md): Add billing and payments to your Bun application. - Python: Integrate Commet with Python frameworks - [Integrate with Python](/docs/integrate-with-python.md): Install and configure the Commet Python SDK. - [Integrate with Flask](/docs/integrate-with-flask.md): Add billing and payments to your Flask application. - [Integrate with FastAPI](/docs/integrate-with-fastapi.md): Add billing and payments to your FastAPI application. - [Integrate with Django](/docs/integrate-with-django.md): Add billing and payments to your Django application. - Java: Integrate Commet with Java applications - [Integrate with Java](/docs/integrate-with-java.md): Install and configure the Commet Java SDK. - Go: Integrate Commet with Go applications - [Integrate with Go](/docs/integrate-with-go.md): Add billing and payments to your Go application using net/http. - [Integrate with Encore](/docs/integrate-with-encore.md): Add billing and payments to your Encore application. - PHP: Integrate Commet with PHP frameworks - [Integrate with PHP](/docs/integrate-with-php.md): Install and configure the Commet PHP SDK. - [Integrate with Laravel](/docs/integrate-with-laravel.md): Add billing and payments to your Laravel application. - [Integrate with Symfony](/docs/integrate-with-symfony.md): Add billing and payments to your Symfony application. - **Learn** - Customers: Create, manage, and provide self-service portals to your customers - [Manage Customers](/docs/manage-customers.md): Create and manage customers using the current Commet SDKs and dashboard. - [Customer Credits](/docs/customer-credits.md): Grant monetary invoice credit to a customer, inspect its remaining balance, and revoke unused credit. - [Customer Portal](/docs/customer-portal.md): Self-service portal for customers to manage their subscriptions. - Plans: Configure pricing plans, features, consumption models, and add-ons - [Manage Plans](/docs/create-plans.md): Create and manage pricing plans in Commet that automatically generate subscriptions. - [Configure Features](/docs/configure-features.md): Define capabilities and read current or prospective customer access. - [Consumption Models](/docs/consumption-models.md): Understand the three ways customers consume and pay for features in Commet plans. - [Balance and Top-Ups](/docs/balance-and-top-ups.md): Configure prepaid monetary usage, adjust a subscription balance, and let customers buy more. - [Add-ons](/docs/add-ons.md): Offer optional features customers can activate on their subscriptions for an additional price. - [Credit Packs](/docs/credit-packs.md): Configure credit packages that customers can purchase from the Commet Customer Portal. - [Plan Groups](/docs/plan-groups.md): Group plans together to enable self-service upgrades and downgrades in the Commet Customer Portal. - [One-Time Payments](/docs/one-time-payments.md): Sell lifetime access or one-time purchases with a single charge and no recurring billing. - Sales: Create Offers, Promo Codes, Markets, and customer acquisition strategies - [Offers](/docs/offers.md): Define reusable trials and temporary pricing terms independently from plans and distribution. - [Introductory Offers](/docs/introductory-offers.md): Apply an existing Offer automatically to eligible new subscriptions. - [Promotional Offers](/docs/promotional-offers.md): Apply any compatible Offer directly for campaigns, retention, and experiments. - [Card Promotions](/docs/card-promotions.md): Distribute a Promotional Offer to eligible card BINs and revalidate eligibility at checkout. - [Promo Codes](/docs/promo-codes.md): Distribute an existing Offer through a customer-entered checkout code. - [Markets and Regional Pricing](/docs/regional-prices.md): Combine currency pricing, reusable country Markets, and selectable price variants. - [Trial Periods](/docs/trial-periods.md): Use free-trial Offer phases for automatic onboarding or explicit campaigns. - Subscriptions: Manage subscription lifecycle, upgrades, and downgrades - [Manage Subscriptions](/docs/manage-subscriptions.md): Create, retrieve, pause, resume, cancel, and reactivate subscriptions. - [Grant Temporary Plan Access](/docs/plan-grants.md): Temporarily expand a subscription's features and limits without changing its plan, price, invoice, or billing cycle. - [Upgrade and Downgrade Plans](/docs/upgrade-and-downgrade-plans.md): How customers change plans through the Customer Portal and dashboard. - Usage: Track metered usage, AI tokens, and seat-based licenses - [Track Usage](/docs/track-usage.md): Record metered consumption with the current Commet SDKs. - [AI Token Billing](/docs/ai-token-billing.md): Automatically measure and charge for AI token usage with model-aware pricing and configurable margins. - [Seat Management](/docs/seat-management.md): Manage seat-based licenses with the Commet SDK. - [Quota Management](/docs/quota-management.md): Manage durable quota balances with the Commet SDK. - Invoicing: Invoice generation, billing cycles, and payment failure handling - [Invoices and Billing Cycles](/docs/invoices-and-billing-cycles.md): How Commet generates invoices, what they contain, and when customers are charged. - [Manage Invoices](/docs/manage-invoices.md): Review invoices, create adjustments, update outstanding status, send email, and generate PDF links. - [Handle Failed Payments](/docs/handle-failed-payments.md): What happens when a customer's payment fails and how they can reactivate from the Customer Portal. - Payments: Accept one-time payments with no subscription or plan - [Accept One-Time Payments](/docs/accept-one-time-payments.md): Charge customers once with the Commet payments resource — no subscription or plan required. Tax, invoice, and receipt handled automatically. - [Transactions, Refunds, and Retries](/docs/transactions-refunds-and-retries.md): Inspect provider-neutral payment attempts, refund successful charges, and retry failed renewals safely. - [Payment Providers](/docs/payment-providers.md): Connect your own Stripe or dLocal account to Commet and route payments without changing your billing integration. - [Payment Orchestration](/docs/payment-orchestration.md): Route payments across Commet and your connected PSPs using country rules, defaults, and provider-bound payment methods. - Finance: Payouts, account verification, and Merchant of Record - [Finance Overview](/docs/finance-overview.md): How money flows through Commet — balances, payouts, and transaction history. - [Request a Payout to Your Bank](/docs/payouts.md): Withdraw your available Commet balance to your bank account — $10 minimum, no payout fee, arrives in up to 7 business days. - [Account Verification](/docs/payouts-verification.md): How to get verified for payouts — complete the KYC form in the Commet dashboard. - [Supported Countries](/docs/supported-countries.md): Countries where Commet supports payouts and business operations. - [Merchant of Record](/docs/merchant-of-record.md): What a Merchant of Record is and how Commet handles taxes, compliance, refunds, and payouts on your behalf. - [Local Currency Taxes](/docs/local-currency-taxes.md): Banks in some countries add taxes or surcharges on top of local currency payments. What they are, where they apply, and how to handle customer questions. - [Acceptable Use Policy](/docs/acceptable-use.md): What products and services can be sold through Commet. - Platform: Organization settings, team access, branded domains, metrics, and operational events - [Organization Settings](/docs/organization-settings.md): Configure the organization identity, customer emails, notification recipient, language, and environment boundaries. - [Members and Permissions](/docs/members-and-permissions.md): Invite teammates and choose who can manage organization configuration. - [Custom Domains](/docs/custom-domains.md): Serve checkout and the Customer Portal from branded subdomains you control. - [Dashboard Metrics and Usage Events](/docs/dashboard-metrics-and-events.md): Understand MRR, revenue, churn, active subscriptions, and the usage-event explorer. - **Resources** - [SDK Reference](/docs/sdk-reference.md): Configuration, environments, and pagination - [API Versioning](/docs/api-versioning.md): How Commet versions its API and webhooks so your integration never breaks unexpectedly. - [Error Handling](/docs/error-handling.md): Handle errors with automatic retries and typed error classes - [Testing](/docs/testing-sandbox.md): Test safely with sandbox environment - [CLI](/docs/cli.md): The official command-line tool for Commet. Manage billing, forward webhooks, and automate your workflow from the terminal. - [Examples](/docs/examples.md): Explore complete applications for the main Commet billing models and lifecycle patterns. - **Plugins** - [Better Auth](/docs/better-auth.md): Better Auth Plugin for Billing and Subscriptions using Commet - Knowledge Base: How billing decisions work in Commet - **Billing fundamentals** - [How Billing Works](/docs/how-does-billing-work.md): How your billing behaves based on what you and your customers do - [Pricing Changes](/docs/what-happens-when-you-change-your-prices.md): What happens to your customers when you change your prices - [Billing Intervals](/docs/how-do-monthly-quarterly-and-yearly-billing-work.md): How weekly, monthly, quarterly, and yearly billing works and when your customers get charged - [Invoices](/docs/what-invoices-do-customers-receive-and-when.md): What invoices your customers receive and when - **Subscriptions** - [Plan Changes](/docs/what-happens-when-a-customer-changes-plans.md): What happens when your customer upgrades, downgrades, or switches plans - [Proration](/docs/how-is-proration-calculated-when-changing-plans.md): Exactly how mid-cycle charges are calculated when your customer upgrades - [Trials](/docs/how-do-trial-periods-work.md): How free-trial Offer phases work and what customers experience - [Free Plans](/docs/how-do-free-plans-work-without-payment.md): How free plans work for your customers - [Payment Failures](/docs/what-happens-when-a-payment-fails.md): What happens when your customer's payment fails - **Consumption and pricing** - [Seats](/docs/how-does-seat-based-billing-work.md): How seat-based billing works for your customers - [Quota](/docs/how-does-quota-based-billing-work.md): How quota-based billing works for your customers - [Discounts](/docs/how-do-discounts-work.md): How Offers, introductory placement, direct assignment, and Promo Codes work together - [Credits, Credit Packs, and Customer Credits](/docs/how-do-credits-credit-packs-and-customer-credits-differ.md): Choose the correct credit mechanism based on what the customer receives and how it expires. - [Balance and Top-Ups](/docs/how-do-balance-and-top-ups-work.md): Understand recurring balance, paid top-ups, administrative adjustments, and reset behavior. - [Offers, Promo Codes, and Card Promotions](/docs/how-do-offers-promo-codes-and-card-promotions-work-together.md): Understand where commercial terms live and how each distribution channel selects them. - **Payments** - [Payment Routing](/docs/how-does-payment-routing-work.md): Understand how Commet chooses a provider and why existing saved methods stay on their original connection. - [Refunds and Retries](/docs/what-happens-when-you-refund-or-retry-a-transaction.md): Understand how refunds and renewal retries affect transactions, invoices, and product access. - Build with AI: Tools and resources for AI agents using Commet - **Getting Started** - [AI Onboarding](/docs/ai-onboarding.md): Give an AI agent the product knowledge, tools, environment, and safety boundaries it needs to implement Commet. - **AI Tools** - [MCP Server](/docs/mcp-server.md): Use the MCP Server to manage billing infrastructure. - **Agent Skills** - [Commet Skills](/docs/commet-skill.md): Give AI agents expert-level billing knowledge with Agent Skills. - [Billing Best Practices Skill](/docs/billing-best-practices-skill.md): Comprehensive guide for building production-ready billing systems with AI agents. - [Pricing Models Skill](/docs/pricing-models-skill.md): Choose and implement the right pricing model for your SaaS with AI agents. - [Subscription Patterns Skill](/docs/subscription-patterns-skill.md): Universal subscription billing patterns for trials, proration, dunning, and more. - API Reference: Complete REST API reference for the Commet platform - Add ons - [Activate add-on](/docs/api-reference/add-ons/activate-addon.md): Activate an add-on on a subscription. Charges a prorated amount for the current billing period. - [Create add-on](/docs/api-reference/add-ons/create-addon.md): Create a new add-on linked to a feature. Each feature can only be assigned to one add-on. - [Deactivate add-on](/docs/api-reference/add-ons/deactivate-addon.md): Deactivate an add-on from a subscription. - [Delete add-on](/docs/api-reference/add-ons/delete-addon.md): Soft-delete an add-on. Fails if the add-on has active subscriptions. - [Get add-on](/docs/api-reference/add-ons/get-addon.md): Retrieve an add-on by its public ID or slug. - [List active add-ons](/docs/api-reference/add-ons/list-active-addons.md): List all active add-ons for a customer's subscription. - [List add-ons](/docs/api-reference/add-ons/list-addons.md): List all add-ons with cursor-based pagination. - [Update add-on](/docs/api-reference/add-ons/update-addon.md): Update an add-on's name, description, or pricing. - Api keys - [Create API key](/docs/api-reference/api-keys/create-api-key.md): Create a new API key. The full key is only returned once in the response. - [Delete API key](/docs/api-reference/api-keys/delete-api-key.md): Permanently revoke and delete an API key. - [List API keys](/docs/api-reference/api-keys/list-api-keys.md): List API keys with cursor-based pagination. Keys are returned without the full secret. - Credit packs - [Create credit pack](/docs/api-reference/credit-packs/create-credit-pack.md): Create a new credit pack. - [Delete credit pack](/docs/api-reference/credit-packs/delete-credit-pack.md): Soft-delete a credit pack. - [List credit packs](/docs/api-reference/credit-packs/list-credit-packs.md): List all active credit packs. - [Purchase credits](/docs/api-reference/credit-packs/purchase-credits.md): Purchase a credit pack for a subscription. Charges the customer and adds credits to their balance. - [Update credit pack](/docs/api-reference/credit-packs/update-credit-pack.md): Update a credit pack's name, description, credits, price, or active status. - Customers - [Batch create customers](/docs/api-reference/customers/batch-create-customers.md): Create up to 100 customers in a single request. - [Grant customer credit](/docs/api-reference/customers/create-customer-credit.md): Grant monetary credit in one currency. Credit is applied FIFO before tax to eligible recurring invoices. - [Create customer](/docs/api-reference/customers/create-customer.md): Create a new customer. Idempotent when customerId is provided. - [Grant temporary plan access](/docs/api-reference/customers/create-plan-grant.md): Temporarily expand an active subscription's feature access using a higher plan in the same plan group. Billing, prices, periods, invoices, and the base subscription remain unchanged. - [Get customer](/docs/api-reference/customers/get-customer.md): Retrieve a customer by their public ID, including subscription status and metadata. - [List customer credits](/docs/api-reference/customers/list-customer-credits.md): List currency-specific invoice credit grants and their remaining balances for a customer. - [List customers](/docs/api-reference/customers/list-customers.md): List customers with cursor-based pagination. - [List plan grants](/docs/api-reference/customers/list-plan-grants.md): List the independent audit timeline for paid-plan access granted without checkout or payment credentials. - [Revoke remaining customer credit](/docs/api-reference/customers/revoke-customer-credit.md): Revoke the unallocated remainder of a customer credit grant. Applied invoice history is unchanged. - [Revoke temporary plan access](/docs/api-reference/customers/revoke-plan-grant.md): End expanded access immediately and restore the base plan's limits. The subscription, billing cycle, invoices, and payment state remain unchanged. - [Update customer](/docs/api-reference/customers/update-customer.md): Update a customer's name, external ID, or metadata. - [Update temporary access expiration](/docs/api-reference/customers/update-plan-grant.md): Keep the overlay for a number of the subscription's existing billing cycles, set an exact deadline, or leave it active until revoked. The billing anchor is never reset. - Features - [Create feature](/docs/api-reference/features/create-feature.md): Create a new feature. Code must be lowercase alphanumeric with underscores. - [Delete feature](/docs/api-reference/features/delete-feature.md): Delete a feature. Fails if the feature is attached to active plans or has an active add-on. - [Get feature access](/docs/api-reference/features/get-feature-access.md): Get one feature's access and current usage for a customer. To evaluate a prospective consumption, use POST /usage/check. - [Get feature](/docs/api-reference/features/get-feature.md): Get a single feature definition by code from the organization's feature catalog. - [List feature access](/docs/api-reference/features/list-feature-access.md): List a customer's feature access and current usage. - [List features](/docs/api-reference/features/list-features.md): List every feature defined in the organization. This is the organization's feature catalog (definitions), not a customer's feature access. - [Update feature](/docs/api-reference/features/update-feature.md): Update a feature's name, description, or unit name. At least one field must be provided. - Invoices - [Create adjustment invoice](/docs/api-reference/invoices/create-adjustment-invoice.md): Create a one-off adjustment invoice and return the created invoice. Use a negative amount for a credit. - [Download invoice PDF](/docs/api-reference/invoices/download-invoice.md): Generate a signed URL to download the invoice as a PDF. The URL expires after 7 days. - [Get invoice](/docs/api-reference/invoices/get-invoice.md): Retrieve a single invoice by its public ID, including line items. - [List invoices](/docs/api-reference/invoices/list-invoices.md): List invoices with cursor-based pagination. Filter by customer, status, or subscription. - [Send invoice email](/docs/api-reference/invoices/send-invoice.md): Send the invoice to the customer via email. - [Update invoice status](/docs/api-reference/invoices/update-invoice-status.md): Mark an outstanding invoice as "paid" or "void" and return the updated invoice. Cannot change the status of already paid or voided invoices. - Markets - [Create market](/docs/api-reference/markets/create-market.md): Create a reusable market without attaching it to a plan or price. Countries can belong to only one active market. - [Delete market](/docs/api-reference/markets/delete-market.md): Delete an unused market. Markets referenced by prices or subscriptions cannot be deleted. - [Get market](/docs/api-reference/markets/get-market.md): Get one reusable market. - [List markets](/docs/api-reference/markets/list-markets.md): List reusable country groups that resolve market-specific prices independently from currency. - [Update market](/docs/api-reference/markets/update-market.md): Replace the name, countries, and metadata of a market. - Offers - [Create offer](/docs/api-reference/offers/create-offer.md): Create reusable offer terms without assigning a plan, price, eligibility rule, or distribution channel. - [Delete offer](/docs/api-reference/offers/delete-offer.md): Soft-delete an Offer. Existing applications and their accepted terms remain available for billing and audit. - [Get offer](/docs/api-reference/offers/get-offer.md): Retrieve reusable offer terms by public ID. - [List offers](/docs/api-reference/offers/list-offers.md): List reusable offer terms. Offers are independent from plans, prices, eligibility, and distribution channels. - [Update offer](/docs/api-reference/offers/update-offer.md): Replace reusable offer terms. Existing applications keep their immutable accepted terms. - Payments - [Cancel a payment link](/docs/api-reference/payments/cancel-payment.md): Cancel a pending payment link so it can no longer be paid. Only a link that has not been paid or started processing can be canceled; canceling an already canceled link is a no-op. Charges cannot be canceled. - [Charge a customer](/docs/api-reference/payments/charge-payment.md): Charge a customer's vaulted payment method off-session. Calculates tax, generates an invoice, and sends a receipt. Requires the customer to have a subscription in active, trialing, or past_due state. - [Create a payment link](/docs/api-reference/payments/create-payment.md): Create a hosted payment link. Returns a url the customer opens to pay with any card. Calculates tax, generates an invoice, and vaults the payment method on confirmation. No subscription or plan required. - [Get payment](/docs/api-reference/payments/get-payment.md): Retrieve a payment by its public ID. - [List payments](/docs/api-reference/payments/list-payments.md): List payments with cursor-based pagination. Filter by customer. - Payouts - [Add a payout bank account](/docs/api-reference/payouts/add-payout-bank-account.md): Add an additional destination bank account to the organization's existing payout account. Country and currency are resolved from the organization. The full account number is never returned — only `last4`. - [Deprecated payout verification](/docs/api-reference/payouts/complete-payout-verification.md): Deprecated. Complete business and identity verification in the Commet dashboard. This endpoint no longer accepts or processes KYC data. - [Request a payout](/docs/api-reference/payouts/request-payout.md): Withdraw available balance to the organization's verified payout account. `amount` is in cents (USD, minimum 1000 = $10). The payout is created in `pending` and settles to `paid` asynchronously as provider webhooks arrive. - Plan groups - [Add plan to group](/docs/api-reference/plan-groups/add-plan-to-group.md): Add an existing plan to a plan group with optional sort order. - [Create plan group](/docs/api-reference/plan-groups/create-plan-group.md): Create a new plan group for organizing plans. - [Delete plan group](/docs/api-reference/plan-groups/delete-plan-group.md): Delete a plan group. Plans in the group are unlinked, not deleted. - [Get plan group](/docs/api-reference/plan-groups/get-plan-group.md): Retrieve a plan group by ID, including its plans ordered by sortOrder. - [List plan groups](/docs/api-reference/plan-groups/list-plan-groups.md): List plan groups with cursor-based pagination. - [Remove plan from group](/docs/api-reference/plan-groups/remove-plan-from-group.md): Remove a plan from a plan group. - [Reorder plans in group](/docs/api-reference/plan-groups/reorder-plans-in-group.md): Set the display order of plans within a group. All plan IDs in the group must be provided. - [Update plan group](/docs/api-reference/plan-groups/update-plan-group.md): Update a plan group's name, description, or visibility. - Plans - [Add feature to plan](/docs/api-reference/plans/add-plan-feature.md): Attach a feature to a plan with limits, overage, and credits configuration. - [Add price to plan](/docs/api-reference/plans/add-plan-price.md): Add a base price or a selectable market price variant. Variants inherit their base price outside the markets they override. Configure introductory and promotional benefits through Offers. - [Create plan](/docs/api-reference/plans/create-plan.md): Create a new plan with optional consumption model, visibility, and plan group assignment. - [Archive plan price](/docs/api-reference/plans/delete-plan-price.md): Archive a price for new subscriptions. Existing subscriptions that selected it continue using its current catalog value. - [Delete plan](/docs/api-reference/plans/delete-plan.md): Soft-delete a plan. - [Delete regional prices](/docs/api-reference/plans/delete-regional-prices.md): Remove all regional currency overrides for a plan price. The request is rejected while billable subscriptions depend on an override. - [Get plan](/docs/api-reference/plans/get-plan.md): Get a plan with public price IDs and their automatic introductory offer IDs. - [List plans](/docs/api-reference/plans/list-plans.md): List plans with public price IDs and their automatic introductory offer IDs. - [Remove feature from plan](/docs/api-reference/plans/remove-plan-feature.md): Detach a feature from a plan. - [Set default price](/docs/api-reference/plans/set-default-plan-price.md): Set a specific price as the default and return the updated plan price. - [Set plan regional pricing](/docs/api-reference/plans/set-plan-regional-pricing.md): Configure regional prices and feature overage values for one currency. Currency-specific offer terms are managed through Offers. - [Set plan visibility](/docs/api-reference/plans/set-plan-visibility.md): Set a plan's public visibility and return the updated plan. - [Update plan feature](/docs/api-reference/plans/update-plan-feature.md): Update limits, overage, or enabled status of a feature on a plan. - [Update plan price](/docs/api-reference/plans/update-plan-price.md): Update a base price or market price variant. Removing a base market override is rejected while a variant depends on it. Offer terms are managed through Offers. - [Update plan](/docs/api-reference/plans/update-plan.md): Update a plan's name, description, visibility, or metadata. - [Upsert regional prices](/docs/api-reference/plans/upsert-regional-prices.md): Create or update regional currency price overrides for a plan price. - Portal - [Request portal access](/docs/api-reference/portal/request-portal-access.md): Generate a customer portal URL. Exactly one identifier (email or customerId) is required. - Promo codes - [Create promo code](/docs/api-reference/promo-codes/create-promo-code.md): Create a distribution code for an existing Offer. The referenced Offer owns the benefit and duration; the promo code owns redemption restrictions. - [Get promo code](/docs/api-reference/promo-codes/get-promo-code.md): Retrieve a promo code by its public ID. - [List promo codes](/docs/api-reference/promo-codes/list-promo-codes.md): List promo codes with cursor-based pagination. - [Update promo code](/docs/api-reference/promo-codes/update-promo-code.md): Update a promo code's billing interval, redemption limits, expiration, active status, or plan restrictions. - Provisioning - [Create claim link](/docs/api-reference/provisioning/create-claim-link.md): Issue a fresh claim link for an organization that was provisioned headlessly and has not been claimed yet. Any previously issued link stops working. - Quota - [Add quota](/docs/api-reference/quota/add-quota.md): Add to a customer's quota allowance for a feature. Defaults to 1 if count is omitted. - [List quota allowances](/docs/api-reference/quota/get-all-quota-allowances.md): Get all quota allowances for a customer across every quota feature in their plan. - [Get quota allowance](/docs/api-reference/quota/get-quota-allowance.md): Get the current quota allowance (used vs included) for a specific feature. - [Remove quota](/docs/api-reference/quota/remove-quota.md): Remove from a customer's quota allowance for a feature. Defaults to 1 if count is omitted. Returns 400 insufficient_balance if the balance would go negative. - [Set quota](/docs/api-reference/quota/set-quota.md): Set a customer's quota allowance for a feature to an exact value. - Seats - [Add seats](/docs/api-reference/seats/add-seats.md): Add seats to a customer's subscription. Prorates charges for the current billing period. - [Bulk set seats](/docs/api-reference/seats/bulk-set-seats.md): Set all seat types at once. - [Get all seat balances](/docs/api-reference/seats/get-all-seat-balances.md): Get the current balance for all seat types in a customer's subscription. - [Get seat balance](/docs/api-reference/seats/get-seat-balance.md): Get current balance for a specific seat type. - [Remove seats](/docs/api-reference/seats/remove-seats.md): Remove seats from a customer's subscription. Takes effect at the end of the billing period. - [Set seats](/docs/api-reference/seats/set-seats.md): Set seats to an exact count. - Subscriptions - [Adjust balance](/docs/api-reference/subscriptions/adjust-balance.md): Adjust a subscription's balance or credits by a signed amount. Positive adds, negative subtracts. - [Apply an Offer to a subscription](/docs/api-reference/subscriptions/apply-subscription-offer.md): Apply a direct Offer to a subscription. On a pending payment checkout it quotes or replaces the checkout discount and the existing checkout URL remains unchanged. On an active subscription it applies the Offer immediately with its discount phases starting at the next billing cycle; the call is rejected while another applied Offer still has active or upcoming discount phases. Offers with a free trial phase cannot be applied after checkout creation. - [Cancel subscription](/docs/api-reference/subscriptions/cancel-subscription.md): Cancel immediately or at period end and return the updated subscription. - [Change plan](/docs/api-reference/subscriptions/change-plan.md): Upgrade or change billing interval immediately, optionally applying an Offer. Scheduled changes do not accept offers. - [Create a recovery payment link for a past due subscription](/docs/api-reference/subscriptions/create-subscription-recovery-link.md): Generates a hosted, signed recovery link that lets the customer pay the outstanding renewal charge for a past_due subscription. Unlike reactivate, which charges server-to-server, this returns a link the merchant can deliver through their own email, SMS, or dashboard. The link carries a self-contained signed token and stays valid until the charge is paid or the subscription is no longer past due. - [Create subscription](/docs/api-reference/subscriptions/create-subscription.md): Create a subscription for a customer. Commet selects the default price when priceId is omitted and resolves its market from the customer's billing country. Without an offer override, Commet applies the price's automatic introductory Offer. Pass offerId to apply an active compatible Offer directly, or cardPromotionId to preselect a card-eligible Promotional Offer for the initial checkout when card promotions are enabled for the organization. For the initial checkout, provider accepts either a processor name or an exact payment connection ID. - [Get active subscription](/docs/api-reference/subscriptions/get-active-subscription.md): Get the active subscription for a customer. Returns null if none. - [Get subscription by ID](/docs/api-reference/subscriptions/get-subscription.md): Get a subscription by its public ID, regardless of status (including pending_payment and past_due). - [List subscriptions](/docs/api-reference/subscriptions/list-subscriptions.md): List all subscriptions. Filter by customer ID or status. - [Pause subscription](/docs/api-reference/subscriptions/pause-subscription.md): Pause immediately or schedule a pause for the end of the current billing or trial period. Set durationDays to null for an indefinite pause. - [Preview plan change](/docs/api-reference/subscriptions/preview-change-plan.md): Preview proration details for an immediate plan change without applying it. Free-to-paid changes are never scheduled and the change-plan endpoint always returns hosted checkout for them. For paid plans, interval direction takes precedence: a longer interval is immediate and a shorter interval is scheduled. When the interval is unchanged, a higher-sort-order plan is immediate and a lower-sort-order plan is scheduled. A paid-to-free change is always scheduled. Returns credit, charge, and net amount. The target plan must belong to the same plan group as the current plan, otherwise a 400 with code `plans_not_in_same_group` is returned. A change between two free plans has nothing to prorate and returns a zero-amount estimate. Scheduled changes return a 400 with code `plan_change_scheduled`; apply those via the change-plan endpoint. Pass offerId to quote the destination plan with an Offer. - [Reactivate a past due or canceled subscription](/docs/api-reference/subscriptions/reactivate-subscription.md): Reactivates a subscription. A past_due subscription retries its outstanding renewal charge (recovering to active on success). A canceled subscription generates a fresh invoice, charges the saved card, and resets the billing period. On a successful charge the subscription becomes active; a declined charge returns an error with a recoveryUrl in the error details that can be sent to the customer to update their card. A canceled subscription may apply an Offer by offerId; past-due recovery cannot. - [Remove an Offer from a pending checkout](/docs/api-reference/subscriptions/remove-subscription-offer.md): Remove the quoted direct Offer from a subscription's pending payment checkout. The existing checkout URL remains unchanged and returns to its undiscounted price. - [Resume subscription](/docs/api-reference/subscriptions/resume-subscription.md): Resume a paused subscription. Immediate pauses continue the preserved period without a charge. Period-end pauses charge a new period before access is restored. - [Revoke scheduled pause](/docs/api-reference/subscriptions/revoke-subscription-pause.md): Revoke a pause before it becomes effective. Active pauses must be resumed instead. - [Top up balance](/docs/api-reference/subscriptions/topup-balance.md): Top up a subscription's balance. Charges the customer's payment method for the specified amount. - [Revert scheduled cancellation](/docs/api-reference/subscriptions/uncancel-subscription.md): Revert a scheduled cancellation and return the updated subscription. Only works before cancellation takes effect. - [Update payment method](/docs/api-reference/subscriptions/update-payment-method.md): Creates a hosted checkout session for the customer to update the subscription's default payment method. - [Update subscription pause](/docs/api-reference/subscriptions/update-subscription-pause.md): Change the duration of a scheduled or active pause. Set durationDays to null to make it indefinite. - Test clock - [Advance test clock](/docs/api-reference/test-clock/advance-test-clock.md): Starts a durable run that moves the test clock forward and processes every billing deadline due before the target time. Poll GET /test-clock for progress and terminal results. Sandbox only. - [Get test clock state](/docs/api-reference/test-clock/get-test-clock.md): Returns the organization's current test clock state and latest durable run. Sandbox only. - [Deprecated manual billing processing](/docs/api-reference/test-clock/process-test-clock-billing.md): Deprecated. POST /test-clock now advances time and processes every due billing deadline in one durable run. - Transactions - [Get transaction](/docs/api-reference/transactions/get-transaction.md): Retrieve a single payment transaction by its public ID, including provider details. - [List transactions](/docs/api-reference/transactions/list-transactions.md): List payment transactions with cursor-based pagination. Filter by status or customer email. - [Refund transaction](/docs/api-reference/transactions/refund-transaction.md): Issue a full refund and return the provider-neutral refund resource with its actual status. - [Retry transaction](/docs/api-reference/transactions/retry-transaction.md): Retry a failed subscription renewal and return an honest retry result. The original failed transaction remains immutable. - Usage - [Check usage availability](/docs/api-reference/usage/check-usage-availability.md): Check if a customer can consume a feature before actual consumption. Returns availability and cost estimates based on the plan's consumption model. - [Set current usage](/docs/api-reference/usage/set-usage.md): Set a metered feature's usage to an exact value for the current period. Use the Idempotency-Key header to make retries safe. - [Track usage event](/docs/api-reference/usage/track-usage.md): Track a usage event for a metered feature. Deducts from balance/credits if applicable. - Webhooks - [Create webhook endpoint](/docs/api-reference/webhooks/create-webhook-endpoint.md): Create a new webhook endpoint. The response includes the signing secret which is only returned once. - [Delete webhook endpoint](/docs/api-reference/webhooks/delete-webhook-endpoint.md): Permanently delete a webhook endpoint. - [Get webhook endpoint](/docs/api-reference/webhooks/get-webhook-endpoint.md): Retrieve a webhook endpoint by its public ID. - [List webhook endpoints](/docs/api-reference/webhooks/list-webhook-endpoints.md): List webhook endpoints with cursor-based pagination. - [Test webhook endpoint](/docs/api-reference/webhooks/test-webhook-endpoint.md): Send a test event to a webhook endpoint to verify connectivity. - [Update webhook endpoint](/docs/api-reference/webhooks/update-webhook-endpoint.md): Update a webhook endpoint. Only the provided fields change. - Webhooks: Real-time event notifications for subscription, payment, and invoice changes - [Introduction](/docs/webhooks/introduction.md): Receive real-time notifications when events happen in your Commet account. - **Subscription Events** - [subscription.created](/docs/webhooks/subscription-created.md): Fired when a new subscription is created - [subscription.activated](/docs/webhooks/subscription-activated.md): Fired when a subscription becomes active after payment - [subscription.reactivated](/docs/webhooks/subscription-reactivated.md): Fired when a canceled subscription is reactivated and its reactivation charge succeeds. - [subscription.pause_scheduled](/docs/webhooks/subscription-pause-scheduled.md): A period-end subscription pause was scheduled. - [subscription.pause_updated](/docs/webhooks/subscription-pause-updated.md): A scheduled or active pause duration changed. - [subscription.pause_revoked](/docs/webhooks/subscription-pause-revoked.md): A scheduled pause was revoked before taking effect. - [subscription.paused](/docs/webhooks/subscription-paused.md): A subscription pause became effective. - [subscription.resumed](/docs/webhooks/subscription-resumed.md): A paused subscription restored access. - [subscription.resume_failed](/docs/webhooks/subscription-resume-failed.md): A period-end resume charge failed. - [subscription.canceled](/docs/webhooks/subscription-canceled.md): Fired when a subscription is terminated, at period end or immediately. Revoke access here. - [subscription.updated](/docs/webhooks/subscription-updated.md): Fired when subscription details change, including when a cancellation is scheduled. - [subscription.plan_changed](/docs/webhooks/subscription-plan-changed.md): Fired when a subscription changes plans - [subscription.cancellation_scheduled](/docs/webhooks/subscription-cancellation-scheduled.md): Fired when a cancellation is scheduled for the end of the billing period. Do NOT revoke access yet. - [subscription.cancellation_revoked](/docs/webhooks/subscription-cancellation-revoked.md): Fired when a scheduled cancellation is reverted before it executes. The subscription continues normally. - [subscription.plan_change_scheduled](/docs/webhooks/subscription-plan-change-scheduled.md): Fired when a downgrade or interval change is scheduled for the end of the billing period. - [subscription.plan_change_revoked](/docs/webhooks/subscription-plan-change-revoked.md): Fired when a scheduled plan change is replaced before it executes. - [subscription.past_due](/docs/webhooks/subscription-past-due.md): Fired when a recurring payment fails and the subscription enters a grace window while Commet retries the charge. - **Trial Events** - [trial.started](/docs/webhooks/trial-started.md): Fired when a subscription enters its trial period. Grant access here. - [trial.converted](/docs/webhooks/trial-converted.md): Fired when a trialing customer converts to a paid subscription before the trial ends. - [trial.expired](/docs/webhooks/trial-expired.md): Fired when a trial period runs out and regular billing begins. - [trial.will_end](/docs/webhooks/trial-will-end.md): Predictive event fired once, 3 days before a trial ends. - [trial.checkout_ready](/docs/webhooks/trial-checkout-ready.md): A trial checkout link is ready to share with the customer. - **Checkout Events** - [checkout.ready](/docs/webhooks/checkout-ready.md): A checkout link is ready to share with the customer. - **Payment Events** - [payment.received](/docs/webhooks/payment-received.md): Fired when a payment settles successfully, including initial charges, renewals and recovery attempts - [payment.failed](/docs/webhooks/payment-failed.md): Fired when a subscription charge fails, including resume charges and recovery attempts - [payment.recovered](/docs/webhooks/payment-recovered.md): A previously failed payment was recovered. - [payment.retry_failed](/docs/webhooks/payment-retry-failed.md): All dunning retries were exhausted; the subscription was canceled. - [payment.refunded](/docs/webhooks/payment-refunded.md): A payment was refunded to the customer. - [payment.disputed](/docs/webhooks/payment-disputed.md): A customer opened a dispute against a payment. - [payment.dispute_resolved](/docs/webhooks/payment-dispute-resolved.md): A payment dispute was resolved as won or lost. - **Payment Link Events** - [payment_link.created](/docs/webhooks/payment-link-created.md): A payment link was created and is ready to be paid. - [payment_link.completed](/docs/webhooks/payment-link-completed.md): A payment link was paid successfully. - [payment_link.failed](/docs/webhooks/payment-link-failed.md): A payment link charge attempt failed. - [payment_link.canceled](/docs/webhooks/payment-link-canceled.md): A payment link was canceled before being paid. - **Invoice Events** - [invoice.created](/docs/webhooks/invoice-created.md): Fired when a new invoice is generated - [invoice.upcoming](/docs/webhooks/invoice-upcoming.md): Predictive event fired once, 3 days before a subscription renews. - [invoice.overdue](/docs/webhooks/invoice-overdue.md): An outstanding invoice passed its due date without payment. - [invoice.voided](/docs/webhooks/invoice-voided.md): An invoice was voided and will not be collected. - **Payment Method Events** - [payment_method.attached](/docs/webhooks/payment-method-attached.md): A payment method was saved for a customer's subscription. - [payment_method.updated](/docs/webhooks/payment-method-updated.md): A customer's default payment method was replaced. - **Customer Events** - [customer.created](/docs/webhooks/customer-created.md): Fired when a customer is created. The payload mirrors the customer resource from GET /customers. - [customer.updated](/docs/webhooks/customer-updated.md): Fired when a customer's details change. Carries the full current customer resource. - [customer.state_changed](/docs/webhooks/customer-state-changed.md): Aggregate entitlement event — what can this customer access right now. - **Plan Grant Events** - [plan_grant.created](/docs/webhooks/plan-grant-created.md): A plan grant was created. - [plan_grant.updated](/docs/webhooks/plan-grant-updated.md): A plan grant duration changed. - [plan_grant.expired](/docs/webhooks/plan-grant-expired.md): A plan grant expired. - [plan_grant.revoked](/docs/webhooks/plan-grant-revoked.md): A plan grant was revoked. - **Credits & Balance Events** - [credits.granted](/docs/webhooks/credits-granted.md): Non-purchase credits were granted to a subscription. - [credits.purchased](/docs/webhooks/credits-purchased.md): A credit pack purchase was completed. - [credits.low](/docs/webhooks/credits-low.md): Remaining credits dropped below 10% of the period grant. - [credits.depleted](/docs/webhooks/credits-depleted.md): A subscription ran out of credits. - [credits.expired](/docs/webhooks/credits-expired.md): Unused plan credits expired at the period reset. - [balance.topped_up](/docs/webhooks/balance-topped-up.md): A prepaid balance top-up was completed. - [balance.low](/docs/webhooks/balance-low.md): Prepaid balance dropped below 10% of the last refill. - [balance.depleted](/docs/webhooks/balance-depleted.md): A subscription ran out of prepaid balance. - **Quota & Usage Events** - [quota.threshold_reached](/docs/webhooks/quota-threshold-reached.md): Usage crossed 80% of a feature's included quantity. - [quota.exceeded](/docs/webhooks/quota-exceeded.md): Usage passed a feature's included quantity. - [usage.recorded](/docs/webhooks/usage-recorded.md): A usage event was recorded. High volume — explicit opt-in. - **Seat Events** - [seats.updated](/docs/webhooks/seats-updated.md): A customer's seat count changed. - [seats.limit_reached](/docs/webhooks/seats-limit-reached.md): A seat change reached the plan's included seat limit. - **Add-on Events** - [addon.activated](/docs/webhooks/addon-activated.md): An add-on was activated on a subscription. - [addon.deactivated](/docs/webhooks/addon-deactivated.md): An add-on was deactivated from a subscription. - **Payout Events** - [payout.available](/docs/webhooks/payout-available.md): Funds became available to pay out to your bank. - [payout.created](/docs/webhooks/payout-created.md): A payout to your bank account was initiated. - [payout.paid](/docs/webhooks/payout-paid.md): A payout landed in your bank account. - [payout.failed](/docs/webhooks/payout-failed.md): A payout to your bank account failed. # API error reference Every registered Commet API error code links to a stable English Markdown reference. - [`validation_error`](https://commet.co/docs/api-reference/2026-08-27/errors/validation_error.md) — The request failed validation. The response message, param, and details identify the invalid field, value, or field combination. - [`invalid_json`](https://commet.co/docs/api-reference/2026-08-27/errors/invalid_json.md) — The request body is not valid JSON. - [`unauthorized`](https://commet.co/docs/api-reference/2026-08-27/errors/unauthorized.md) — The request does not contain a valid Commet API key. - [`forbidden`](https://commet.co/docs/api-reference/2026-08-27/errors/forbidden.md) — The caller is authenticated but cannot perform this operation in the current organization or state. - [`sandbox_only`](https://commet.co/docs/api-reference/2026-08-27/errors/sandbox_only.md) — This operation is available only to sandbox organizations. - [`payouts_not_available_in_sandbox`](https://commet.co/docs/api-reference/2026-08-27/errors/payouts_not_available_in_sandbox.md) — Payout operations are not available in sandbox mode. - [`not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/not_found.md) — The requested endpoint or resource could not be found in the current organization, mode, or API version. - [`customer_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/customer_not_found.md) — The requested customer does not exist in this organization. - [`feature_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/feature_not_found.md) — The requested feature, seat feature, or quota feature does not exist in this organization. - [`plan_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/plan_not_found.md) — The requested plan does not exist or is not available in this organization. - [`subscription_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/subscription_not_found.md) — The requested subscription does not exist in this organization. - [`no_active_subscription`](https://commet.co/docs/api-reference/2026-08-27/errors/no_active_subscription.md) — The customer has no subscription that is active for this operation. - [`no_prices_configured`](https://commet.co/docs/api-reference/2026-08-27/errors/no_prices_configured.md) — The selected plan has no price available for the request. - [`already_has_active_subscription`](https://commet.co/docs/api-reference/2026-08-27/errors/already_has_active_subscription.md) — The customer already has a draft, trialing, active, or past-due subscription that blocks creating another subscription. - [`subscription_not_active`](https://commet.co/docs/api-reference/2026-08-27/errors/subscription_not_active.md) — The subscription status does not permit the requested operation. - [`subscription_has_open_dispute`](https://commet.co/docs/api-reference/2026-08-27/errors/subscription_has_open_dispute.md) — The subscription has an unresolved payment dispute that blocks the requested billing change. - [`subscription_required`](https://commet.co/docs/api-reference/2026-08-27/errors/subscription_required.md) — The requested operation requires a chargeable subscription. - [`provider_unsupported`](https://commet.co/docs/api-reference/2026-08-27/errors/provider_unsupported.md) — The configured payment connection does not support the requested operation. - [`no_payment_method`](https://commet.co/docs/api-reference/2026-08-27/errors/no_payment_method.md) — The subscription has no reusable payment method for this operation. - [`duplicate`](https://commet.co/docs/api-reference/2026-08-27/errors/duplicate.md) — The request conflicts with an existing resource, unique value, or previously recorded event. - [`already_scheduled`](https://commet.co/docs/api-reference/2026-08-27/errors/already_scheduled.md) — The requested subscription action is already scheduled. - [`feature_not_in_plan`](https://commet.co/docs/api-reference/2026-08-27/errors/feature_not_in_plan.md) — The requested feature is not included in the customer's plan or subscription. - [`feature_disabled`](https://commet.co/docs/api-reference/2026-08-27/errors/feature_disabled.md) — The requested feature is disabled for the customer's subscription. - [`insufficient_balance`](https://commet.co/docs/api-reference/2026-08-27/errors/insufficient_balance.md) — The operation cannot be charged against the available balance, or the required regional overage price is missing. - [`insufficient_credits`](https://commet.co/docs/api-reference/2026-08-27/errors/insufficient_credits.md) — The subscription does not have enough credits for the usage event. - [`insufficient_seats`](https://commet.co/docs/api-reference/2026-08-27/errors/insufficient_seats.md) — The requested seat removal exceeds the subscription's available seat balance. - [`included_limit_reached`](https://commet.co/docs/api-reference/2026-08-27/errors/included_limit_reached.md) — The requested usage exceeds the plan's included usage limit. - [`missing_regional_price`](https://commet.co/docs/api-reference/2026-08-27/errors/missing_regional_price.md) — The plan has no price for the subscription's currency or resolved market. - [`payment_failed`](https://commet.co/docs/api-reference/2026-08-27/errors/payment_failed.md) — The operation could not complete its payment or required tax calculation. - [`payment_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/payment_not_found.md) — The requested payment does not exist in this organization. - [`payment_method_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/payment_method_not_found.md) — The requested or required payment method could not be found. - [`payment_not_cancelable`](https://commet.co/docs/api-reference/2026-08-27/errors/payment_not_cancelable.md) — The payment's current state does not allow cancellation. - [`invalid_subscription_status`](https://commet.co/docs/api-reference/2026-08-27/errors/invalid_subscription_status.md) — The subscription's current status is incompatible with the requested operation. - [`one_time_subscription_not_cancelable`](https://commet.co/docs/api-reference/2026-08-27/errors/one_time_subscription_not_cancelable.md) — A one-time subscription cannot be canceled as a recurring subscription. - [`not_scheduled_for_cancellation`](https://commet.co/docs/api-reference/2026-08-27/errors/not_scheduled_for_cancellation.md) — The subscription has no scheduled cancellation to remove. - [`subscription_already_canceled`](https://commet.co/docs/api-reference/2026-08-27/errors/subscription_already_canceled.md) — The subscription is already canceled. - [`subscription_creation_failed`](https://commet.co/docs/api-reference/2026-08-27/errors/subscription_creation_failed.md) — Platform could not complete subscription creation. - [`subscription_activation_failed`](https://commet.co/docs/api-reference/2026-08-27/errors/subscription_activation_failed.md) — The subscription was created or saved, but its initial activation or checkout could not be completed. - [`subscription_cancel_failed`](https://commet.co/docs/api-reference/2026-08-27/errors/subscription_cancel_failed.md) — Platform could not complete subscription cancellation. - [`subscription_uncancel_failed`](https://commet.co/docs/api-reference/2026-08-27/errors/subscription_uncancel_failed.md) — Platform could not remove the subscription's scheduled cancellation. - [`plan_unavailable`](https://commet.co/docs/api-reference/2026-08-27/errors/plan_unavailable.md) — The subscription's plan is no longer available for this operation. - [`no_outstanding_invoice`](https://commet.co/docs/api-reference/2026-08-27/errors/no_outstanding_invoice.md) — The subscription has no outstanding invoice to charge or recover. - [`charge_in_progress`](https://commet.co/docs/api-reference/2026-08-27/errors/charge_in_progress.md) — A charge or payment retry is already running for the subscription. - [`charge_failed`](https://commet.co/docs/api-reference/2026-08-27/errors/charge_failed.md) — The charge required by the subscription operation failed. - [`idempotency_key_mismatch`](https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_key_mismatch.md) — The Idempotency-Key was already used with a different request payload or operation. - [`idempotency_in_progress`](https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_in_progress.md) — A request with this Idempotency-Key is still being processed. - [`idempotency_unavailable`](https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_unavailable.md) — Platform could not safely establish, release, or persist the idempotent response for this operation. - [`seat_limit_exceeded`](https://commet.co/docs/api-reference/2026-08-27/errors/seat_limit_exceeded.md) — The requested plan change would exceed the available seat limit. - [`no_change`](https://commet.co/docs/api-reference/2026-07-11/errors/no_change.md) — A client using an API version before 2026-07-24 requested a subscription update that would not change its current state. - [`no_change_requested`](https://commet.co/docs/api-reference/2026-08-27/errors/no_change_requested.md) — The request would not change the current subscription state. - [`plans_not_in_same_group`](https://commet.co/docs/api-reference/2026-08-27/errors/plans_not_in_same_group.md) — The current and target plans do not belong to the same plan group. - [`free_plan_change_not_supported`](https://commet.co/docs/api-reference/2026-08-27/errors/free_plan_change_not_supported.md) — This plan-change operation does not support the selected free plan. - [`plan_change_scheduled`](https://commet.co/docs/api-reference/2026-08-27/errors/plan_change_scheduled.md) — The requested plan change takes effect at the end of the current billing period instead of being prorated immediately. - [`addon_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/addon_not_found.md) — The requested add-on does not exist in this organization. - [`addon_already_active`](https://commet.co/docs/api-reference/2026-08-27/errors/addon_already_active.md) — The add-on is already active on this subscription. - [`addon_not_active`](https://commet.co/docs/api-reference/2026-08-27/errors/addon_not_active.md) — The add-on is not active on this subscription. - [`addon_has_activations`](https://commet.co/docs/api-reference/2026-08-27/errors/addon_has_activations.md) — The add-on cannot be deleted while subscriptions use it. - [`feature_already_exists`](https://commet.co/docs/api-reference/2026-08-27/errors/feature_already_exists.md) — A feature with the same code or name already exists, or the feature is already assigned where uniqueness is required. - [`feature_in_use`](https://commet.co/docs/api-reference/2026-08-27/errors/feature_in_use.md) — The feature cannot be deleted while a plan or add-on uses it. - [`model_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/model_not_found.md) — The requested AI model does not exist in the current model catalog. - [`pricing_mode_mismatch`](https://commet.co/docs/api-reference/2026-08-27/errors/pricing_mode_mismatch.md) — The submitted usage shape does not match the feature's configured pricing mode. - [`credit_pack_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/credit_pack_not_found.md) — The requested credit pack does not exist in this organization. - [`plan_group_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/plan_group_not_found.md) — The requested plan group does not exist in this organization. - [`offer_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/offer_not_found.md) — The requested offer does not exist or is not compatible with the selected operation. - [`offer_invalid`](https://commet.co/docs/api-reference/2026-07-11/errors/offer_invalid.md) — A client using an API version before 2026-07-24 selected an offer that does not satisfy the operation's eligibility or lifecycle conditions. - [`offer_not_applicable`](https://commet.co/docs/api-reference/2026-08-27/errors/offer_not_applicable.md) — The selected offer does not satisfy the eligibility or lifecycle conditions for this operation. - [`card_promotions_not_available`](https://commet.co/docs/api-reference/2026-08-27/errors/card_promotions_not_available.md) — Card promotions are not available for this organization. - [`promo_code_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/promo_code_not_found.md) — The requested promo code does not exist in this organization. - [`promo_code_expired`](https://commet.co/docs/api-reference/2026-08-27/errors/promo_code_expired.md) — The promo code is no longer within its valid redemption period. - [`webhook_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/webhook_not_found.md) — The requested webhook endpoint does not exist in this organization. - [`api_key_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/api_key_not_found.md) — The requested API key does not exist in this organization. - [`invoice_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/invoice_not_found.md) — The requested invoice does not exist in this organization. - [`transaction_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/transaction_not_found.md) — The requested transaction does not exist in this organization. - [`price_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/price_not_found.md) — The requested price does not exist on the selected plan or no price matches the operation. - [`price_in_use`](https://commet.co/docs/api-reference/2026-08-27/errors/price_in_use.md) — The price cannot be removed or changed while it is in use. - [`market_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/market_not_found.md) — The requested market does not exist in this organization. - [`market_in_use`](https://commet.co/docs/api-reference/2026-08-27/errors/market_in_use.md) — The market cannot be deleted while a price or subscription uses it. - [`market_group_not_found`](https://commet.co/docs/api-reference/2026-08-27/errors/market_group_not_found.md) — The requested market group does not exist in this organization. - [`market_group_in_use`](https://commet.co/docs/api-reference/2026-08-27/errors/market_group_in_use.md) — The market group cannot be deleted while a price or subscription uses it. - [`endpoint_not_available`](https://commet.co/docs/api-reference/2026-08-27/errors/endpoint_not_available.md) — This endpoint is not available in the resolved API version. - [`endpoint_deprecated`](https://commet.co/docs/api-reference/2026-08-27/errors/endpoint_deprecated.md) — The endpoint has been retired and returns HTTP 410 Gone. - [`organization_already_claimed`](https://commet.co/docs/api-reference/2026-08-27/errors/organization_already_claimed.md) — The organization has already completed its claim flow. - [`claim_not_pending`](https://commet.co/docs/api-reference/2026-08-27/errors/claim_not_pending.md) — The organization has no pending claim to complete. - [`CUSTOMER_NOT_FOUND`](https://commet.co/docs/api-reference/2026-07-11/errors/customer_not_found-legacy.md) — A subscription-creation request using an API version before 2026-07-24 referenced a customer that does not exist in the organization. - [`PLAN_NOT_FOUND`](https://commet.co/docs/api-reference/2026-07-11/errors/plan_not_found-legacy.md) — A subscription-creation request using an API version before 2026-07-24 referenced a plan that does not exist in the organization. - [`NO_PRICES_CONFIGURED`](https://commet.co/docs/api-reference/2026-07-11/errors/no_prices_configured-legacy.md) — The selected plan has no price available for this legacy subscription-creation request. - [`PRICE_NOT_FOUND`](https://commet.co/docs/api-reference/2026-07-11/errors/price_not_found-legacy.md) — The selected price does not exist on the plan or does not match this legacy subscription-creation request. - [`ALREADY_HAS_ACTIVE`](https://commet.co/docs/api-reference/2026-07-11/errors/already_has_active-legacy.md) — The customer already has a draft, trialing, active, or past-due subscription that blocks this legacy creation request. - [`CREATION_FAILED`](https://commet.co/docs/api-reference/2026-07-11/errors/creation_failed-legacy.md) — Platform could not complete this legacy subscription-creation request. - [`SUBSCRIPTION_NOT_FOUND`](https://commet.co/docs/api-reference/2026-07-11/errors/subscription_not_found-legacy.md) — A subscription lifecycle request using an API version before 2026-07-24 referenced a subscription that does not exist in the organization. - [`ALREADY_SCHEDULED`](https://commet.co/docs/api-reference/2026-07-11/errors/already_scheduled-legacy.md) — The subscription cancellation is already scheduled, so the same legacy cancellation request cannot be applied again. - [`ONE_TIME_NOT_CANCELABLE`](https://commet.co/docs/api-reference/2026-07-11/errors/one_time_not_cancelable-legacy.md) — A one-time or lifetime subscription cannot be canceled through this legacy endpoint. - [`CANCEL_FAILED`](https://commet.co/docs/api-reference/2026-07-11/errors/cancel_failed-legacy.md) — Platform could not complete this legacy subscription cancellation. - [`NOT_SCHEDULED_FOR_CANCELLATION`](https://commet.co/docs/api-reference/2026-07-11/errors/not_scheduled_for_cancellation-legacy.md) — The subscription is not scheduled for cancellation, so this legacy uncancel request has nothing to reverse. - [`ALREADY_CANCELED`](https://commet.co/docs/api-reference/2026-07-11/errors/already_canceled-legacy.md) — The subscription is already canceled and cannot be restored through this legacy uncancel operation. - [`UNCANCEL_FAILED`](https://commet.co/docs/api-reference/2026-07-11/errors/uncancel_failed-legacy.md) — Platform could not complete this legacy request to remove a scheduled cancellation. - [`rate_limited`](https://commet.co/docs/api-reference/2026-08-27/errors/rate_limited.md) — The caller exceeded the request allowance for the current window. - [`internal_error`](https://commet.co/docs/api-reference/2026-08-27/errors/internal_error.md) — Platform could not complete the operation because an internal execution path or dependency failed.