A delivery succeeds when your server answers with a 2xx status within 10 seconds. Anything else — an error status, a timeout, or no connection — counts as a failure, and WaConnect tries again.
Retry schedule#
Each event is attempted up to 8 times over about 24 hours:
| Attempt | Waits before it |
|---|---|
| 1 | — (immediately) |
| 2 | 1 minute |
| 3 | 5 minutes |
| 4 | 30 minutes |
| 5 | 2 hours |
| 6 | 5 hours |
| 7 | 8 hours |
| 8 | 8 hours |
A retry sends exactly the same event, with the same id. Redirects are not followed, so give us the final URL.
The delivery log#
Developer settings keeps every delivery for 7 days: the event type and id, how many attempts it took, your server's status code and response, and any error. The event's content is kept only while it's being retried: once it's delivered, or retries end, it's cleared, because messages of API numbers aren't stored in WaConnect. A finished event can't be sent again, so store each event on your side when you receive it.
Automatic pause#
If an endpoint fails for 3 days in a row without a single success, WaConnect pauses it and emails your business's admins. A paused endpoint receives nothing until you resume it from its menu in Developer settings.
Your software can check this itself: GET /v1/webhooks returns each endpoint's status, when it last received an event and how many recent deliveries failed. Check it on a schedule and alert your team as soon as it isn't healthy.
Events that couldn't be delivered while an endpoint was down or paused are not kept. WaConnect doesn't store messages of API numbers, so keep your endpoint up and fix failures quickly.
Endpoint requirements#
- Public
httpsURL. Addresses in private networks (like10.x.x.xorlocalhost) aren't accepted. - Answer quickly: store the event, reply
200, then process it. - Expect duplicates now and then, and skip events whose
idyou've already handled.