Webhooks & Events
How to send real-time device updates to Seam through a single webhook endpoint. Seam uses webhook events to keep device state accurate without polling and to correlate lock actions, access-code changes, and connectivity updates.
Webhook registration
Seam registers one webhook URL per environment (production, staging, or development).
Your API should deliver all events to the provided URL.
Correct behavior:
one webhook URL per Seam environment
no per-user or per-account webhook registration
Seam maps each incoming event to the correct connected account internally
Your API should allow Seam to register this URL and specify which event types it wants to receive.
Webhook registration request
POST https://devicecloud.example.com/webhooks
{
"url": "https://webhooks.seam.co/provider_events",
"events": [
"device.added",
"device.removed",
"device.online",
"device.offline",
"device.low_battery",
"lock.action_completed",
"access_code.created",
"access_code.updated",
"access_code.deleted",
"access_code.used",
"access_code.incorrect_attempt"
]
}Webhook registration response
Event Delivery
Your API should POST events to the registered webhook URL as they occur.
Example delivery
POST https://webhooks.seam.co/provider_events
A 2xx response means the event was accepted.
Retry behavior
Your API should retry event delivery when Seam returns a non-2xx status.
Recommended approach
Exponential backoff
Retries for at least 24 hours
Payload unchanged
Maintain chronological order when possible
Event Examples
Device connectivity events
Device online
Device offline
Bridge or hub offline
Device time is wrong
Lock action events
Successful action
Failed action
Access code lifecycle events
Code created
Code updated
Code deleted
Access code usage events
Successful usage
Incorrect PIN attempt
Event format consistency
All events should follow a standard shape:
Last updated
Was this helpful?

