Commet
  • Pricing
Log InTry out
Introduction

Subscription Events

subscription.createdsubscription.activatedsubscription.canceledsubscription.updatedsubscription.plan_changedsubscription.cancellation_scheduledsubscription.cancellation_revokedsubscription.plan_change_scheduledsubscription.plan_change_revokedsubscription.past_due

Trial Events

trial.startedtrial.convertedtrial.expiredtrial.will_endtrial.checkout_ready

Checkout Events

checkout.ready

Payment Events

payment.receivedpayment.failedpayment.recoveredpayment.refundedpayment.disputedpayment.dispute_resolved

Invoice Events

invoice.createdinvoice.upcominginvoice.overdueinvoice.voided

Payment Method Events

payment_method.attachedpayment_method.updated

Customer Events

customer.createdcustomer.updatedcustomer.state_changed

Credits & Balance Events

credits.grantedcredits.purchasedcredits.lowcredits.depletedcredits.expiredbalance.topped_upbalance.lowbalance.depleted

Quota & Usage Events

quota.threshold_reachedquota.exceededusage.recorded

Seat Events

seats.updatedseats.limit_reached

Add-on Events

addon.activatedaddon.deactivated

Payout Events

payout.availablepayout.createdpayout.paidpayout.failed
DocumentationKnowledge BaseBuild with AIAPI ReferenceWebhooks

quota.exceeded

Usage passed a feature's included quantity.

Payload

All webhook payloads follow a consistent top-level structure with event-specific data nested within the data object.

subscriptionIdstring

The subscription ID.

customerIdstring

The customer ID. Returns your externalId if you provided one when creating the customer, otherwise returns the Commet publicId.

featureCodestring

The metered feature code.

currentUsagenumber

Total usage in the current period.

includedAmountnumber

The included quantity for the period.

overageEnabledboolean

True when overage billing began; false when the hard limit was hit and usage is now blocked.

periodStartstring

ISO 8601 start of the usage period.

{
  "event": "quota.exceeded",
  "timestamp": "2026-06-22T17:45:00.000Z",
  "organizationId": "org_abc123",
  "mode": "live",
  "apiVersion": "2026-06-10",
  "data": {
    "subscriptionId": "sub_1a2b3c4d",
    "customerId": "user_123",
    "featureCode": "api_calls",
    "currentUsage": 1080,
    "includedAmount": 1000,
    "overageEnabled": true,
    "periodStart": "2026-06-01T00:00:00.000Z"
  }
}

When this fires

Once per feature per billing period, when period usage passes the included quantity:

  • Overage enabled (overageEnabled: true): overage billing began — every unit past the included amount will be charged at renewal.
  • Overage disabled (overageEnabled: false): the hard limit was hit — further usage requests for this feature are rejected. This case also fires customer.state_changed with trigger quota_exceeded, since the customer's access changed.

Use it to surface overage charges in your UI, or to block the feature when the limit is hard.

How is this guide?

quota.threshold_reached

Usage crossed 80% of a feature's included quantity.

usage.recorded

A usage event was recorded. High volume — explicit opt-in.