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

checkout.ready

A checkout link is ready to share with the customer.

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.

invoiceIdstring

The invoice this checkout collects.

invoiceNumberstring

The human-readable invoice number.

invoiceTotalnumber

Invoice total in cents (100 = $1.00).

invoiceCurrencystring

The invoice currency code.

checkoutUrlstring

The hosted checkout URL to share with the customer.

{
  "event": "checkout.ready",
  "timestamp": "2026-03-25T14:30:05.000Z",
  "organizationId": "org_abc123",
  "mode": "live",
  "apiVersion": "2026-06-10",
  "data": {
    "subscriptionId": "sub_1a2b3c4d",
    "customerId": "user_123",
    "invoiceId": "inv_k1l2m3",
    "invoiceNumber": "INV-0042",
    "invoiceTotal": 9900,
    "invoiceCurrency": "usd",
    "checkoutUrl": "https://pay.commet.co/checkout/tok_9f8e7d6c"
  }
}

When this fires

When a subscription is created without a payment method on file, Commet generates a hosted checkout link for the first invoice and fires this event as soon as the link is ready. Commet also emails the link to the customer — this webhook lets you deliver it through your own channels (in-app banner, chat, SMS) instead of relying on email alone.

The link stays valid until the invoice is paid or voided. Trials with their own checkout flow fire trial.checkout_ready instead.

Use the checkoutUrl to put the payment link in front of the customer wherever they already are.

How is this guide?

trial.checkout_ready

A trial checkout link is ready to share with the customer.

payment.received

Fired when a recurring payment is processed