Welcome to Xendit’s latest documentation. For legacy content, access the previous documentation here or the previous API reference here.

Webhook behavior

Prev Next

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.

INFO The maximum webhook number that is able to be retried is 500. If the amount exceeds, we recommend adjusting the filter and resending the webhooks in multiple batches.