Mergen sets your webhook URL and gives you a signing secret (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.
Test vector: secret whsec_5f2c0e8a1b7d4c3e9a6b2d8f0c4e7a1b3d5f7a9c1e3b5d7f, t=1791800000, body {"id":"whd_0a1b2c3d4e5f40718293a4b5c6d7e8f9","type":"call.ended"} → v1=7d9cfd29ab5dd09f9dbf440b42a898cb1f2df8ab04129a43320f57a892e2fb5a.

Delivery

  • Answer 2xx within 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; the GET endpoints are the source of truth.

Events

Payloads: see Webhooks in the API reference.