Webhook Events

Complete catalog of all webhook event types and their payloads

This page documents all webhook events available in RevKeen. Subscribe to specific events or use wildcards (*) to receive all events.

Event Naming Convention

Events follow the pattern: resource.action

  • customer.created — A customer was created
  • invoice.paid — An invoice was paid
  • subscription.canceled — A subscription was canceled
Pattern Matching: You can subscribe to event patterns like invoice.* to receive all invoice events, or * to receive all events.

Customer Events

customer.created

Triggered when a new customer is created.

{
  "id": "evt_xxxxxxxx",
  "type": "customer.created",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "cus_xxxxxxxx",
    "email": "john@example.com",
    "name": "John Doe",
    "companyName": "Acme Inc",
    "createdAt": "2026-01-15T10:30:00Z"
  }
}

customer.updated

Triggered when customer details are modified.

{
  "id": "evt_xxxxxxxx",
  "type": "customer.updated",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "cus_xxxxxxxx",
    "email": "john@example.com",
    "name": "John Smith",
    "updatedAt": "2026-01-15T10:30:00Z"
  }
}

customer.deleted

Triggered when a customer is deleted.

{
  "id": "evt_xxxxxxxx",
  "type": "customer.deleted",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "cus_xxxxxxxx"
  }
}

Invoice Events

invoice.created

Triggered when an invoice is created.

{
  "id": "evt_xxxxxxxx",
  "type": "invoice.created",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "inv_xxxxxxxx",
    "invoiceNumber": "INV-2026-0001",
    "customerId": "cus_xxxxxxxx",
    "status": "draft",
    "totalMinor": 9900,
    "currency": "USD",
    "createdAt": "2026-01-15T10:30:00Z"
  }
}

invoice.updated

Triggered when invoice details are modified.

{
  "id": "evt_xxxxxxxx",
  "type": "invoice.updated",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "inv_xxxxxxxx",
    "invoiceNumber": "INV-2026-0001",
    "customerId": "cus_xxxxxxxx",
    "status": "open",
    "totalMinor": 12900,
    "updatedAt": "2026-01-15T10:30:00Z"
  }
}

invoice.finalized

Triggered when an invoice is finalized and locked for payment.

{
  "id": "evt_xxxxxxxx",
  "type": "invoice.finalized",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "inv_xxxxxxxx",
    "invoiceNumber": "INV-2026-0001",
    "status": "open",
    "finalizedAt": "2026-01-15T10:30:00Z"
  }
}

invoice.sent

Triggered when an invoice is emailed to the customer.

{
  "id": "evt_xxxxxxxx",
  "type": "invoice.sent",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "inv_xxxxxxxx",
    "invoiceNumber": "INV-2026-0001",
    "customerId": "cus_xxxxxxxx",
    "status": "sent",
    "sentAt": "2026-01-15T10:30:00Z",
    "sentTo": "john@example.com"
  }
}

invoice.viewed

Triggered when a customer views the invoice.

{
  "id": "evt_xxxxxxxx",
  "type": "invoice.viewed",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "inv_xxxxxxxx",
    "invoiceNumber": "INV-2026-0001",
    "customerId": "cus_xxxxxxxx",
    "viewedAt": "2026-01-15T10:30:00Z"
  }
}

invoice.paid

Triggered when an invoice is fully paid. This is a critical event for provisioning goods/services.

{
  "id": "evt_xxxxxxxx",
  "type": "invoice.paid",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "inv_xxxxxxxx",
    "invoiceNumber": "INV-2026-0001",
    "customerId": "cus_xxxxxxxx",
    "status": "paid",
    "totalMinor": 9900,
    "amountPaidMinor": 9900,
    "currency": "USD",
    "paidAt": "2026-01-15T10:30:00Z"
  }
}

invoice.payment_failed

Triggered when a payment attempt fails. Consider retry or notify customer.

{
  "id": "evt_xxxxxxxx",
  "type": "invoice.payment_failed",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "inv_xxxxxxxx",
    "invoiceNumber": "INV-2026-0001",
    "customerId": "cus_xxxxxxxx",
    "status": "open",
    "attemptCount": 2,
    "lastPaymentError": "card_declined"
  }
}

invoice.past_due

Triggered when an invoice is past its due date. Send payment reminders.

{
  "id": "evt_xxxxxxxx",
  "type": "invoice.past_due",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "inv_xxxxxxxx",
    "invoiceNumber": "INV-2026-0001",
    "customerId": "cus_xxxxxxxx",
    "status": "past_due",
    "dueDate": "2026-01-10T00:00:00Z",
    "daysPastDue": 5
  }
}

invoice.voided

Triggered when an invoice is voided. Cancel any pending fulfillment.

{
  "id": "evt_xxxxxxxx",
  "type": "invoice.voided",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "inv_xxxxxxxx",
    "invoiceNumber": "INV-2026-0001",
    "status": "voided",
    "voidedAt": "2026-01-15T10:30:00Z"
  }
}

invoice.uncollectible

Triggered when an invoice is marked as uncollectible (bad debt).

{
  "id": "evt_xxxxxxxx",
  "type": "invoice.uncollectible",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "inv_xxxxxxxx",
    "invoiceNumber": "INV-2026-0001",
    "status": "uncollectible",
    "markedAt": "2026-01-15T10:30:00Z"
  }
}

Subscription Events

subscription.created

Triggered when a new subscription is created. Wait for activation before granting access.

{
  "id": "evt_xxxxxxxx",
  "type": "subscription.created",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "sub_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "productId": "prod_xxxxxxxx",
    "status": "pending",
    "createdAt": "2026-01-15T10:30:00Z"
  }
}

subscription.activated

Triggered when a subscription becomes active. Grant access to your service.

{
  "id": "evt_xxxxxxxx",
  "type": "subscription.activated",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "sub_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "productId": "prod_xxxxxxxx",
    "status": "active",
    "currentPeriodStart": "2026-01-15T00:00:00Z",
    "currentPeriodEnd": "2026-02-15T00:00:00Z",
    "activatedAt": "2026-01-15T10:30:00Z"
  }
}

subscription.updated

Triggered when subscription details change.

{
  "id": "evt_xxxxxxxx",
  "type": "subscription.updated",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "sub_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "productId": "prod_yyyyyyyy",
    "status": "active",
    "previousProductId": "prod_xxxxxxxx",
    "updatedAt": "2026-01-15T10:30:00Z"
  }
}

subscription.renewed

Triggered when a subscription renews successfully. Extend access period.

{
  "id": "evt_xxxxxxxx",
  "type": "subscription.renewed",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "sub_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "status": "active",
    "currentPeriodStart": "2026-02-15T00:00:00Z",
    "currentPeriodEnd": "2026-03-15T00:00:00Z",
    "renewedAt": "2026-01-15T10:30:00Z"
  }
}

subscription.canceled

Triggered when a subscription is canceled. Access continues until period end.

{
  "id": "evt_xxxxxxxx",
  "type": "subscription.canceled",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "sub_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "status": "canceled",
    "cancelAtPeriodEnd": true,
    "canceledAt": "2026-01-15T10:30:00Z",
    "currentPeriodEnd": "2026-02-15T00:00:00Z"
  }
}

subscription.paused

Triggered when a subscription is paused. Suspend access.

{
  "id": "evt_xxxxxxxx",
  "type": "subscription.paused",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "sub_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "status": "paused",
    "resumeAt": "2026-03-01T00:00:00Z"
  }
}

subscription.resumed

Triggered when a paused subscription resumes. Restore access.

{
  "id": "evt_xxxxxxxx",
  "type": "subscription.resumed",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "sub_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "status": "active",
    "resumedAt": "2026-01-15T10:30:00Z"
  }
}

subscription.trial_will_end

Triggered 3 days before a trial ends. Notify customer to add payment method.

{
  "id": "evt_xxxxxxxx",
  "type": "subscription.trial_will_end",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "sub_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "status": "trialing",
    "trialEnd": "2026-01-18T00:00:00Z"
  }
}

subscription.past_due

Triggered when a payment fails and subscription becomes past due. Dunning process begins.

{
  "id": "evt_xxxxxxxx",
  "type": "subscription.past_due",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "sub_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "status": "past_due",
    "latestInvoiceId": "inv_xxxxxxxx"
  }
}

subscription.unpaid

Triggered when all payment retries have failed. Consider suspending access.

{
  "id": "evt_xxxxxxxx",
  "type": "subscription.unpaid",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "sub_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "status": "unpaid",
    "latestInvoiceId": "inv_xxxxxxxx"
  }
}

Payment Events

payment.succeeded

Triggered when a payment is captured successfully. Provision goods/services.

{
  "id": "evt_xxxxxxxx",
  "type": "payment.succeeded",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pay_xxxxxxxx",
    "invoiceId": "inv_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "amountMinor": 9900,
    "currency": "USD",
    "status": "succeeded",
    "paymentMethod": "card",
    "capturedAt": "2026-01-15T10:30:00Z"
  }
}

payment.failed

Triggered when a payment attempt fails. May trigger dunning workflow.

{
  "id": "evt_xxxxxxxx",
  "type": "payment.failed",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pay_xxxxxxxx",
    "invoiceId": "inv_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "amountMinor": 9900,
    "currency": "USD",
    "status": "failed",
    "failureCode": "card_declined",
    "failureMessage": "Your card was declined"
  }
}

payment.refunded

Triggered when a payment is refunded. Update fulfillment status.

{
  "id": "evt_xxxxxxxx",
  "type": "payment.refunded",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pay_xxxxxxxx",
    "invoiceId": "inv_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "amountRefundedMinor": 9900,
    "currency": "USD",
    "refundedAt": "2026-01-15T10:30:00Z"
  }
}

payment.captured

Triggered when an authorized payment is captured.

{
  "id": "evt_xxxxxxxx",
  "type": "payment.captured",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pay_xxxxxxxx",
    "invoiceId": "inv_xxxxxxxx",
    "amountMinor": 9900,
    "currency": "USD",
    "capturedAt": "2026-01-15T10:30:00Z"
  }
}

payment.disputed

Triggered when a payment is disputed (chargeback). Submit evidence by deadline.

{
  "id": "evt_xxxxxxxx",
  "type": "payment.disputed",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pay_xxxxxxxx",
    "disputeId": "dis_xxxxxxxx",
    "amountMinor": 9900,
    "currency": "USD",
    "reason": "fraudulent",
    "evidenceDueBy": "2026-01-25T00:00:00Z"
  }
}

payment.refund_failed

Triggered when a refund fails. Manual intervention may be needed.

{
  "id": "evt_xxxxxxxx",
  "type": "payment.refund_failed",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pay_xxxxxxxx",
    "refundId": "ref_xxxxxxxx",
    "amountMinor": 9900,
    "failureReason": "insufficient_funds"
  }
}

Payment Method Events

payment_method.created

Triggered when a payment method is saved to a customer.

{
  "id": "evt_xxxxxxxx",
  "type": "payment_method.created",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pm_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "type": "card",
    "card": {
      "brand": "visa",
      "last4": "4242",
      "expMonth": 12,
      "expYear": 2027
    }
  }
}

payment_method.updated

Triggered when payment method details are updated (e.g., via Account Card Updater).

{
  "id": "evt_xxxxxxxx",
  "type": "payment_method.updated",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pm_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "card": {
      "last4": "4242",
      "expMonth": 6,
      "expYear": 2028
    },
    "previousExpMonth": 12,
    "previousExpYear": 2027
  }
}

payment_method.deleted

Triggered when a payment method is removed from a customer.

{
  "id": "evt_xxxxxxxx",
  "type": "payment_method.deleted",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pm_xxxxxxxx",
    "customerId": "cus_xxxxxxxx"
  }
}

payment_method.expiring

Triggered when a card is expiring soon. Request customer to update card.

{
  "id": "evt_xxxxxxxx",
  "type": "payment_method.expiring",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pm_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "card": {
      "last4": "4242",
      "expMonth": 1,
      "expYear": 2026
    },
    "expiresAt": "2026-01-31T23:59:59Z"
  }
}

payment_method.expired

Triggered when a card has expired.

{
  "id": "evt_xxxxxxxx",
  "type": "payment_method.expired",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pm_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "expiredAt": "2026-01-01T00:00:00Z"
  }
}

payment_method.failed

Triggered when a payment method fails validation or a payment attempt.

{
  "id": "evt_xxxxxxxx",
  "type": "payment_method.failed",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "pm_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "failureCode": "card_declined",
    "failureMessage": "Card was declined"
  }
}

Payment Link Events

payment_link.created

Triggered when a payment link is created.

{
  "id": "evt_xxxxxxxx",
  "type": "payment_link.created",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "plink_xxxxxxxx",
    "url": "https://checkout.revkeen.com/p/plink_xxxxxxxx",
    "amountMinor": 9900,
    "currency": "USD",
    "createdAt": "2026-01-15T10:30:00Z"
  }
}

payment_link.viewed

Triggered when a payment link is viewed by a customer.

{
  "id": "evt_xxxxxxxx",
  "type": "payment_link.viewed",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "plink_xxxxxxxx",
    "viewedAt": "2026-01-15T10:30:00Z",
    "viewerIp": "192.168.1.1"
  }
}

payment_link.completed

Triggered when a payment link is successfully completed. Fulfill the order.

{
  "id": "evt_xxxxxxxx",
  "type": "payment_link.completed",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "plink_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "invoiceId": "inv_xxxxxxxx",
    "paymentId": "pay_xxxxxxxx",
    "completedAt": "2026-01-15T10:30:00Z"
  }
}

payment_link.expired

Triggered when a payment link expires.

{
  "id": "evt_xxxxxxxx",
  "type": "payment_link.expired",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "plink_xxxxxxxx",
    "expiredAt": "2026-01-15T10:30:00Z"
  }
}

Checkout Session Events

checkout.session.completed

Triggered when a checkout session completes successfully. Fulfill the order.

{
  "id": "evt_xxxxxxxx",
  "type": "checkout.session.completed",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "cs_xxxxxxxx",
    "customerId": "cus_xxxxxxxx",
    "invoiceId": "inv_xxxxxxxx",
    "subscriptionId": "sub_xxxxxxxx",
    "amountTotalMinor": 9900,
    "currency": "USD",
    "completedAt": "2026-01-15T10:30:00Z"
  }
}

checkout.session.expired

Triggered when a checkout session expires. Consider cart recovery email.

{
  "id": "evt_xxxxxxxx",
  "type": "checkout.session.expired",
  "created": "2026-01-15T10:30:00Z",
  "data": {
    "id": "cs_xxxxxxxx",
    "customerEmail": "john@example.com",
    "expiredAt": "2026-01-15T10:30:00Z"
  }
}

All Events Summary

EventDescriptionAction Required
customer.createdCustomer was createdSync to CRM
customer.updatedCustomer details changedSync changes
customer.deletedCustomer was deletedClean up data
invoice.createdInvoice created-
invoice.updatedInvoice modified-
invoice.finalizedInvoice locked for payment-
invoice.sentInvoice emailed-
invoice.viewedCustomer viewed invoice-
invoice.paidInvoice fully paidProvision service
invoice.payment_failedPayment attempt failedNotify customer
invoice.past_dueInvoice past due dateSend reminders
invoice.voidedInvoice voidedCancel fulfillment
invoice.uncollectibleMarked as bad debtWrite off
subscription.createdSubscription createdWait for activation
subscription.activatedSubscription activeGrant access
subscription.updatedSubscription changedUpdate access level
subscription.renewedSubscription renewedExtend access
subscription.canceledSubscription canceledAccess until period end
subscription.pausedSubscription pausedSuspend access
subscription.resumedSubscription resumedRestore access
subscription.trial_will_endTrial ends in 3 daysNotify customer
subscription.past_duePayment overdueStart dunning
subscription.unpaidAll retries failedSuspend access
payment.succeededPayment capturedProvision service
payment.failedPayment failedRetry or notify
payment.refundedPayment refundedUpdate fulfillment
payment.capturedAuthorization captured-
payment.disputedChargeback receivedSubmit evidence
payment.refund_failedRefund failedManual intervention
payment_method.createdCard saved-
payment_method.updatedCard updated (ACU)-
payment_method.deletedCard removed-
payment_method.expiringCard expiring soonRequest new card
payment_method.expiredCard expiredNotify customer
payment_method.failedCard validation failedRequest new card
payment_link.createdPayment link created-
payment_link.viewedLink viewed-
payment_link.completedLink completedFulfill order
payment_link.expiredLink expired-
checkout.session.completedCheckout completedFulfill order
checkout.session.expiredSession expiredCart recovery

Event Count by Category

CategoryCount
Customer3
Invoice10
Subscription10
Payment6
Payment Method6
Payment Link4
Checkout Session2
Total41