iMessage webhooks
Receive customer replies and delivery outcomes as signed HTTP events. SendiMessage posts to your endpoint when an inbound message arrives and when an outbound message reaches a final state.
How do iMessage webhooks work?
You register an endpoint and subscribe to events. When a customer replies, SendiMessage posts a signed receive event to your URL; when an outbound message reaches a final state, it posts an outbound event. Each delivery carries a X-SMSBridge-Signature header you verify before trusting the body.
Events
An inbound message arrived on one of your lines.
An outbound message reached a final state.
A line was blocked, or recovered.
Inbound payload
{"event": "receive","message_handle": "96699B14-AFDB-4B33-AA66-C4B093533DA3","from": "+14155550123","to": "+15555550100","content": "Can we move it to 3 PM?","media_url": null,"service": "iMessage","is_outbound": false,"status": "RECEIVED","date_sent": "2026-08-21T09:07:35Z","conversation_handle": "ee60f9b5-2ddb-4ea8-8ad7-bc70cf85727f"}
Signatures
When a webhook has a secret configured, each delivery includes X-SMSBridge-Signature — the hex HMAC-SHA256 of the raw request body computed with your webhook secret. Verify against the exact raw bytes received using a constant-time comparison.
Delivery semantics
Each event is delivered as exactly one POST with a 10-second timeout — there are no automatic retries, and your response status is not inspected. Treat webhooks as a low-latency hint and the API as the source of truth: everything an event carries is also queryable from GET /v2/messages (and GET /lines for block state), so a missed delivery is always recoverable by reconciliation.
FAQ
What signature header is used?
X-SMSBridge-Signature is the only signature header the API emits — an HMAC-SHA256 of the raw request body you verify with your webhook secret.
How do I test my endpoint?
Send a message and reply from a test recipient on your provisioned line, then verify the signature on the delivered event. See the webhook docs for verification code.
Implement webhooks
The full reference has verification examples in Node.js and Python.