CommetCommet
GitHubDiscordStatus
Introduction

Subscription Events

subscription.createdsubscription.activatedsubscription.reactivatedsubscription.pause_scheduledsubscription.pause_updatedsubscription.pause_revokedsubscription.pausedsubscription.resumedsubscription.resume_failedsubscription.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.retry_failedpayment.refundedpayment.disputedpayment.dispute_resolved

Payment Link Events

payment_link.createdpayment_link.completedpayment_link.failedpayment_link.canceled

Invoice Events

invoice.createdinvoice.upcominginvoice.overdueinvoice.voided

Payment Method Events

payment_method.attachedpayment_method.updated

Customer Events

customer.createdcustomer.updatedcustomer.state_changed

Plan Grant Events

plan_grant.createdplan_grant.updatedplan_grant.expiredplan_grant.revoked

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

payment_link.completed

A payment link was paid successfully.

Payload

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

paymentContextobject | null

The original reason for a charge and how this attempt was initiated. Recovery never replaces the original reason. Context can be null when it was not captured, including retries of historical invoices.

paymentIdstring

The payment link ID.

statusstring

The link status. Always "succeeded" for this event.

amountnumber

The collected amount in cents (100 = $1.00).

currencystring

The payment currency code.

descriptionstring

The payment description shown to the customer.

customerIdstring | null

The customer ID, or null when the link is not tied to a customer. Returns your externalId if you provided one when creating the customer, otherwise returns the Commet publicId.

invoiceIdstring

The one-time invoice generated for this payment.

invoiceNumberstring

The human-readable invoice number.

paymentTransactionIdstring | null

The payment transaction ID for the settled charge.

paymentMethodPaymentMethod | null

The payment method: card, oxxo, or mercado_pago. Null when unknown.

subPaymentMethodSubPaymentMethod | null

The source of funds for this charge, when reported by the provider. Null when unavailable or unknown.

{
  "event": "payment_link.completed",
  "timestamp": "2026-06-23T14:30:00.000Z",
  "organizationId": "8f14e45f-ceea-4e7a-9c3d-1c2b3a4d5e6f",
  "mode": "live",
  "apiVersion": "2026-08-27",
  "data": {
    "paymentContext": {
      "reason": "one_time_payment",
      "paymentLinkId": "pay_l1m2n3",
      "recovery": null
    },
    "paymentId": "pay_l1m2n3",
    "status": "succeeded",
    "amount": 5000,
    "currency": "usd",
    "description": "One-time onboarding fee",
    "customerId": "user_123",
    "invoiceId": "inv_n4o5p6",
    "invoiceNumber": "INV-0044",
    "paymentTransactionId": "txn_q7r8s9",
    "paymentMethod": "card",
    "subPaymentMethod": null
  }
}

When this fires

When a customer pays a payment link on the hosted pay page and the charge settles. Commet generates a one-time invoice (invoiceType: "one_time_payment") and a payment transaction at the same time; the payload carries the invoiceId and paymentTransactionId.

This is the event to fulfill the purchase on — the money has been collected.

The event fires the same way regardless of which payment provider processes the charge.

How is this guide?

payment_link.created

A payment link was created and is ready to be paid.

payment_link.failed

A payment link charge attempt failed.