payment.received
Fired when a recurring payment is processed
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.
invoiceTotalnumber
Invoice 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.
externalIdstring
Your external ID for this customer. Only included if you set an externalId when creating the customer.
subscriptionIdstring
The subscription ID.
paymentTransactionIdstring
The payment transaction ID.
grossAmountnumber
Gross amount in cents before fees.
currencystring
The payment currency code.
orgNetAmountnumber
Net amount after fees in cents.
customerEmailstring | null
The customer email used for this payment.
paidAtstring | null
ISO 8601 datetime when the payment was received.
{
"event": "payment.received",
"timestamp": "2026-04-25T00:05:00.000Z",
"organizationId": "org_abc123",
"data": {
"invoiceId": "inv_n4o5p6",
"invoiceNumber": "INV-0043",
"invoiceTotal": 9900,
"customerId": "user_123",
"externalId": "user_123",
"subscriptionId": "sub_1a2b3c4d",
"paymentTransactionId": "ptx_q7r8s9",
"grossAmount": 9900,
"currency": "usd",
"orgNetAmount": 9200,
"customerEmail": "billing@acme.com",
"paidAt": "2026-04-25T00:05:00.000Z"
}
}How is this guide?