whsec_...). One JSON event per POST:
Verify the signature
v1 = hex HMAC-SHA256(secret, t + "." + raw body). Use the raw body; reject t older than 5 minutes.
whsec_5f2c0e8a1b7d4c3e9a6b2d8f0c4e7a1b3d5f7a9c1e3b5d7f, t=1791800000, body
{"id":"whd_0a1b2c3d4e5f40718293a4b5c6d7e8f9","type":"call.ended"} →
v1=7d9cfd29ab5dd09f9dbf440b42a898cb1f2df8ab04129a43320f57a892e2fb5a.
Delivery
- Answer
2xxwithin 10 s. Otherwise 8 tries: 30 s, 1, 2, 4, 8, 16, 32 min. - Events can repeat or arrive out of order: deduplicate on
id; theGETendpoints are the source of truth.
Events
Payloads: see Webhooks in the API reference.