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

invoice.voided

An invoice was voided and will not be collected.

Payload

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

invoiceIdstring

The invoice ID.

invoiceNumberstring

The human-readable invoice number.

invoiceStatusstring

Always "void" for this event.

periodStartstring | null

ISO 8601 start of the billing period.

periodEndstring | null

ISO 8601 end of the billing period.

issueDatestring | null

ISO 8601 date the invoice was issued.

dueDatestring | null

ISO 8601 date the invoice was due.

currencystring

The invoice currency code.

subtotalnumber

Subtotal in cents (100 = $1.00).

totalnumber

Total in cents (100 = $1.00).

customerIdstring

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

subscriptionIdstring | null

The subscription ID, if the invoice is linked to a subscription.

{
  "event": "invoice.voided",
  "timestamp": "2026-04-26T10:00:00.000Z",
  "organizationId": "org_abc123",
  "mode": "live",
  "apiVersion": "2026-05-25",
  "data": {
    "invoiceId": "inv_n4o5p6",
    "invoiceNumber": "INV-0043",
    "invoiceStatus": "void",
    "periodStart": "2026-04-25T00:00:00.000Z",
    "periodEnd": "2026-05-25T00:00:00.000Z",
    "issueDate": "2026-04-25T00:00:00.000Z",
    "dueDate": "2026-04-25T00:00:00.000Z",
    "currency": "usd",
    "subtotal": 9900,
    "total": 9900,
    "customerId": "user_123",
    "subscriptionId": "sub_1a2b3c4d"
  }
}

When this fires

An invoice is voided when it is nullified before collection: an admin marks it void through the dashboard or the API, or Commet voids unpaid invoices automatically when their subscription is canceled. Voiding is terminal — a void invoice is never retried or collected.

The payload carries the same invoice resource shape as invoice.created, with invoiceStatus set to "void".

Use this event to reverse anything you keyed off invoice.created for this invoice — pending dunning reminders, accounting entries, or in-app banners about an open invoice.

How is this guide?

invoice.overdue

An outstanding invoice passed its due date without payment.

payment_method.attached

A payment method was saved for a customer's subscription.