Skip to main content
Preview. The signing and retry scheme below is the one Melso’s outbound webhooks use in production today; the event types are new.
Register an HTTPS endpoint with Create a webhook endpoint and choose its event types. An endpoint receives the events of every company on your partner account.

The request

Melso sends a POST with a JSON body:
data is the object as its GET returns it. Two headers come with it:

Verify the signature

The signature is an HMAC-SHA256 of the timestamp, a dot and the raw body, keyed with your signing secret (the whole whsec_… string). Verify it on the raw bytes, before parsing JSON, and reject a timestamp older than five minutes.
Each attempt is signed again with its own timestamp.

Respond and retries

Answer any 2xx within 15 seconds; do the work afterwards. Redirects are not followed. A failed delivery is retried after 30 seconds, then with a doubling wait up to one hour, for 24 hours. After that it is failed; you can resend it and see every attempt in List webhook deliveries. Events can arrive out of order. When the order matters, read the object again with its GET.

Event types