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

trial.started

Fired when a subscription enters its trial period. Grant access here.

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.

statusstring

Always "trialing" for this event.

planIdstring

The plan ID.

planNamestring

The plan name.

trialEndsAtstring

ISO 8601 datetime when the trial ends.

{
  "event": "trial.started",
  "timestamp": "2026-03-25T14:32:00.000Z",
  "organizationId": "org_abc123",
  "mode": "live",
  "apiVersion": "2026-05-25",
  "data": {
    "subscriptionId": "sub_1a2b3c4d",
    "customerId": "user_123",
    "status": "trialing",
    "planId": "plan_pro_monthly",
    "planName": "Pro",
    "trialEndsAt": "2026-04-08T00:00:00.000Z"
  }
}

Trial lifecycle

Trials in Commet collect a payment method at checkout, so every trial has a clear path to revenue:

MomentEventWhat to do
Checkout completes with trial daystrial.startedGrant full access.
3 days before the trial endstrial.will_endRemind the customer billing starts soon.
Customer upgrades during the trialtrial.convertedTrial ends early, paid plan starts now.
Trial runs outtrial.expiredRegular billing begins automatically.

Subscriptions with status: "trialing" have full access — treat them like active in your entitlement checks.

How is this guide?

subscription.past_due

Fired when a recurring payment fails and the subscription becomes past due. Access is cut immediately.

trial.converted

Fired when a trialing customer converts to a paid subscription before the trial ends.