Delivery receipt
Phonovation sends a JSON payload with four fields:Delivered DLR
Treat
Status as a string rather than a fixed list of values. Its casing is preserved.
Handle the webhook
1
Read the raw body
Keep the exact request body before parsing the JSON. You need those original bytes to verify the signature.
2
Verify the signature
If you configured a signing secret, compare
X-Signature with an HMAC-SHA256 digest of the raw body. Reject the request if it does not match.3
Update your record
Use
ClientReference to find the matching record, then save the new Status.4
Acknowledge the webhook
Return any
2xx response after you have stored or safely queued the event.Signature format
The signature header looks like this:Signature header
X-Signature is omitted. Configure a secret whenever possible.
Retries and duplicates
Phonovation retries webhook delivery after these failures:- A network failure prevents the HTTP request from completing.
- Your endpoint returns
404 Not Found. - Your endpoint returns
408 Request Timeout. - Your endpoint returns a
5xxresponse.
4xx responses are not retried. This includes 400 Bad Request, 401 Unauthorized, and 403 Forbidden.
Return a
2xx response only after you have safely stored or queued the event. Retries can deliver the same event more than once, and delivery order is not guaranteed. Make your handler idempotent so processing a duplicate does not repeat a business action or corrupt status.
Webhook API Reference
Review the complete webhook payload and signature contract.