credits.purchased
A credit pack purchase was completed.
Payload
All webhook payloads follow a consistent top-level structure with event-specific data nested within the data object.
The subscription ID.
The customer ID. Returns your externalId if you provided one when creating the customer, otherwise returns the Commet publicId.
The invoice issued for the purchase.
The human-readable invoice number.
The purchased credit pack's name.
The number of credits purchased.
{
"event": "credits.purchased",
"timestamp": "2026-06-15T11:20:00.000Z",
"organizationId": "org_abc123",
"mode": "live",
"apiVersion": "2026-06-10",
"data": {
"subscriptionId": "sub_1a2b3c4d",
"customerId": "user_123",
"invoiceId": "inv_t1u2v3",
"invoiceNumber": "INV-0051",
"creditPackName": "Booster 500",
"credits": 500
}
}When this fires
When a customer buys a credit pack through the customer portal and the payment succeeds. Purchased credits never expire — unlike plan credits, they survive period resets.
Plan-included credits granted at each period reset fire credits.granted instead.
Use it to confirm top-up purchases in your own UI or analytics.
How is this guide?