Webhooks
Events Reference
All webhook event types that Xtopay can send to your endpoint.
| Event | Fired when |
|---|
payment.created | A payment object is created |
payment.pending | Customer opens the checkout page |
payment.succeeded | Payment is collected successfully |
payment.failed | Payment attempt fails |
payment.cancelled | Customer closes checkout without paying |
payment.expired | Checkout URL expires unused |
| Event | Fired when |
|---|
refund.created | A refund is initiated |
refund.succeeded | Refund reaches the customer |
refund.failed | Refund could not be processed |
| Event | Fired when |
|---|
subscription.created | A new subscription is created |
subscription.trial_started | Subscription enters trialing state |
subscription.trial_ending_soon | 3 days before trial ends |
subscription.trial_ended | Trial period is over |
subscription.activated | Subscription becomes active after trial |
subscription.renewed | Successful renewal charge |
subscription.payment_failed | Renewal charge fails (enters dunning) |
subscription.payment_action_required | Customer must update payment method |
subscription.updated | Plan, amount, or metadata changed |
subscription.cancellation_scheduled | Cancel-at-period-end set |
subscription.cancellation_reversed | Cancellation undone before period end |
subscription.cancelled | Subscription fully cancelled |
subscription.paused | Subscription paused |
subscription.resumed | Subscription resumed from pause |
| Event | Fired when |
|---|
invoice.created | Invoice is generated |
invoice.payment_succeeded | Invoice is paid |
invoice.payment_failed | Invoice charge fails |
invoice.voided | Invoice is voided |
| Event | Fired when |
|---|
customer.created | A new customer record is created |
customer.updated | Customer details changed |
customer.deleted | Customer record deleted |
customer.payment_method_added | New payment method attached |
customer.payment_method_updated | Payment method details updated |
customer.payment_method_removed | Payment method detached |
| Event | Fired when |
|---|
usage.threshold_reached | Customer hits a usage threshold you configured |
usage.period_closed | Billing period ends and usage is locked in |
In Dashboard → Settings → Webhooks, you can subscribe to:
- All events — receive every event type
- Category — e.g. all subscription events
- Specific events — handpick individual types
You can also configure multiple endpoints with different event filters — for example, send payment events to your fulfilment service and subscription events to your CRM.