Event catalog
Complete reference of all webhook events emitted by Wajub — payloads, descriptions, and which resources trigger them.
12 min read
Each state change on a Wajub resource emits a signed webhook event. This page lists every event you can subscribe to, grouped by resource.
Payment events
payment.createdeventoptionalA new payment has been created and is awaiting customer action.
payment.processingeventoptionalThe payment is being processed by the provider.
payment.succeededeventoptionalThe payment was successful. Funds are captured. Fulfill the order on this event.
payment.failedeventoptionalThe payment failed. `data.reason` carries the failure reason code.
payment.cancelledeventoptionalThe payment was cancelled by the customer or merchant.
payment.expiredeventoptionalThe payment window closed before completion.
payment.refundedeventoptionalA succeeded payment was fully refunded.
payment.partially_refundedeventoptionalA partial refund was applied to a succeeded payment.
Transfer events
transfer.createdeventoptionalA new transfer has been created.
transfer.processingeventoptionalThe transfer is being processed by the provider.
transfer.succeededeventoptionalFunds were successfully sent to the beneficiary.
transfer.failedeventoptionalThe transfer failed. Funds are re-credited.
transfer.cancelledeventoptionalThe transfer was cancelled before completion.
Refund events
refund.createdeventoptionalA new refund request has been created.
refund.processingeventoptionalThe refund is being processed by the provider.
refund.succeededeventoptionalThe refund completed. Funds returned to the customer.
refund.failedeventoptionalThe refund failed. Check `data.reason` for the cause.
refund.cancelledeventoptionalThe refund was cancelled before completion.
Dispute events
dispute.createdeventoptionalA dispute has been opened. The response deadline is in `data.due_by`.
dispute.updatedeventoptionalThe dispute status or evidence has changed.
dispute.closedeventoptionalThe dispute is resolved. Check `data.status` for won/lost.
Invoice events
invoice.senteventoptionalAn invoice has been sent to the customer.
invoice.paideventoptionalThe invoice has been paid in full.
invoice.overdueeventoptionalThe invoice has passed its due date without payment.
invoice.cancelledeventoptionalThe invoice has been cancelled.
Webhook event payload format
Every event follows the same envelope:
{
"id": "evt_4Rf8Lm2Xc9",
"type": "payment.succeeded",
"created_at": "2026-05-24T11:02:41.000Z",
"sandbox": false,
"data": {
// Resource-specific payload — see the resource's schema
}
}idstringoptionalUnique event identifier (evt_xxx). Use to deduplicate.
typestringoptionalEvent type in `resource.action` dot notation.
created_atISO 8601optionalTimestamp when the event was created.
sandboxbooleanoptional`true` for test-mode events, `false` for live events. Use to distinguish environments in your handler.
dataobjectoptionalResource payload. Contains the relevant resource object at the time of the event.
Use event.id to deduplicate
Always store event.id and skip processing if you've already handled it. Wajub retries webhooks,
and network delays can cause duplicate deliveries.
Was this page helpful?