Webhook
Xendit uses webhooks to notify your application any time a business event occurs for your account. Set up your system to receive webhooks for events that happen asynchronously; when a disbursement has been completed, a Virtual Account has been created and paid, or your invoice has expired.
Setup
To begin receiving webhooks from Xendit, provide an endpoint in your system to receive event notifications from us. Once your endpoint URL is ready, provide the URL to Xendit via our webhook settings page in Xendit dashboard. Webhook notifications will be sent via HTTP POST requests to the endpoint URL that you saved.
During testing, you can use a tool like ngrok to make your endpoint available for receiving webhooks.
Delivery Attempts and Retries
Xendit simplifies integrations by providing automatic recovery mechanisms for your system. Understand how our delivery attempts and retry logic works when webhook were not successfully delivered to your system. (a delivery is successful when we receive a response with 2XX HTTP status code)
Attempts and retry logic
After the original webhook event notification, Xendit will attempt to re-deliver the webhook up to six times until we have receive a 2XX HTTP status response from your server. Each delivery will come with an exponential back-off between each interval as shown in the table below.
Retry Number | Interval (relative to last retry) | Interval (relative to original attempt) |
---|---|---|
1 | 15m | 15m |
2 | 45m | 1h |
3 | 2h | 3h |
4 | 3h | 6h |
5 | 6h | 12h |
6 | 12h | 24h |
View events
When viewing information about a specific event through the Dashboard's Webhook tab, you can check how many times Xendit attempted to send an event to the endpoint. This shows the latest response from your endpoint, a list of all attempted webhooks, and the respective HTTP status codes Xendit received.
Manual Retries
Xendit also provides manual resend feature via Webhook tab. This feature provides flexibility for users who want to pick specific events for retry.
INFO - A Developer user permission is required to resend event
To resend an event manually, simply visit the Webhook tab, find the event, and click Resend. Any resend activities will be recorded alongside the timestamp and user name. Historical deliveries can be seen in Event History by clicking the event detail
When a manual resend was triggered, the Source in Event History displays user name who resend the event
Source: Automatic indicates that the event was delivered or retried automatically by system
Batch Manual Retries
Webhook Custom Retry button helps you to resend a batch of webhooks based on your desired filter. Webhooks can be filtered by date, webhook status, or product type. This feature is particularly helpful if your service was down for a period of time or for a particular flow.
Simply visit our Webhook tab and find the Custom Resend button at the top right hand corner of the page. After clicking Apply Filter, then you can preview the number of webhooks and before confirming a resend.