Delivery requirements
For a webhook delivery to be marked as successful, your webhook receiver must:- Respond with an HTTP
2xxstatus code (such as200 OKor204 No Content). - Respond within 10 seconds. Requests exceeding 10 seconds are terminated and treated as failed timeouts.
Retry schedule
If your endpoint returns an HTTP status outside the2xx range (e.g. 500 Internal Error, 502 Bad Gateway, 404 Not Found) or times out, Tabs initiates retries:
After 6 total failed attempts (initial attempt + 5 retries), delivery transitions to
FAILED and automatic retries cease.
Manual retries & delivery logs
You can review every delivery attempt, inspect HTTP status codes, latency, and request payloads:- Open the Tabs Merchant Portal.
- Go to Developers > Webhooks.
- Scroll to the Recent Deliveries section.
- Click on any failed delivery to inspect the exact error response returned by your server.
- Click Retry Delivery to immediately re-dispatch the event payload to your endpoint.
Idempotency on webhook receivers
Because webhooks may be retried upon network timeouts, your server might occasionally receive the same event more than once. To prevent duplicate processing:- Record processed event IDs (
event.id) in your database. - If an incoming event has already been recorded as processed, return
200 OKimmediately without re-executing business logic.
