How access is resolved
The subscription keeps its immutable base-plan contract. The grant pins an immutable release of a higher plan and combines both contracts:- boolean features are enabled when either contract enables them;
- included usage, quota, and seat limits use the higher allowance;
- unlimited access applies when either contract is unlimited; and
- paid overage is never introduced by the grant.
Eligibility
The base subscription must be active and recurring. The target plan must belong to the same Plan Group and have a highersortOrder than the base plan.
The initial release supports metered plans with boolean features and hard-capped usage, quota, or seat limits. Commet rejects a grant when either plan uses:
- Credits or Balance consumption;
- paid overage;
- AI model pricing; or
- active subscription add-ons.
Choose a duration
Creating or updating a grant never restarts the billing cycle.
Grant access
Create the grant with the customer, active subscription, and target plan public IDs:Update the duration
Use the grant public ID to change its remaining duration:until_revoked, or cycles with a new durationCycles value. A new cycle count is resolved from the subscription’s current period and original billing anchor.
Revoke access
Revocation restores base-plan access immediately:pending_payment.
Plan Grants, Offers, trials, and Invoice Credit
Keep access in sync
Listen forcustomer.state_changed. plan_access_granted reports activation, while plan_access_ended reports expiration or revocation.
List a customer’s grants to inspect their status and duration-change timeline: