Device Removal Notifications
Device removal notifications are sent when a partner loses access to a Ring device. This occurs when users revoke permissions, remove devices, or modify their integration settings.
Webhook Delivery
Ring delivers all webhook notifications with an HMAC-SHA256 signature in the X-Signature header. Partners must verify this signature before processing the payload. See Notifications for signature verification details.
Webhook Payload
{
"meta": {
"version": "1.1",
"time": "2026-02-13T19:28:04.020279817Z",
"request_id": "668b822c-266b-43c4-a1f0-6045bc5f3b1c",
"account_id": "ava1.ring.account.XXXYYY"
},
"data": {
"id": "<device_id>_device_removed_<timestamp>",
"type": "device_removed",
"attributes": {
"source": "<device_id>",
"source_type": "devices",
"timestamp": 1771010883164
},
"relationships": {
"devices": {
"links": {
"self": "/v1/devices/<device_id>"
}
}
}
}
}
When Device Removal Occurs
Device removal notifications are triggered when:
- User explicitly removes device from partner integration
- User deletes the device from their Ring account
- User revokes partner access permissions
- Device is permanently offline or decommissioned
- Integration is disconnected or disabled
Processing Device Removal
def handle_device_removal(payload):
device_id = payload['data']['attributes']['source']
account_id = payload['meta']['account_id']
removal_timestamp = payload['data']['attributes']['timestamp']
# Stop active streaming sessions
terminate_active_streams(device_id)
# Cancel scheduled operations
cancel_scheduled_operations(device_id)
# Clean up stored data
cleanup_device_resources(device_id)
# Update device status in partner system
mark_device_removed(device_id, account_id, removal_timestamp)
return {'status': 'device_removed'}
Post-Removal Behavior
After device removal:
- All API requests for the device will return 404 errors
- Active streaming sessions are terminated
- Scheduled operations are cancelled
- Historical data may be preserved for audit purposes
Best Practices
- Verify HMAC signature: Always verify the
X-Signatureheader before processing - Use account_id: Associate events with the correct Ring user via
meta.account_id - Immediate cleanup: Process removal notifications promptly to free resources
- Graceful termination: Close active sessions and operations cleanly
- Data preservation: Archive important data before cleanup
- User communication: Inform users about device removal
- Audit logging: Log all removal events for compliance
- Idempotency: Handle duplicate removal notifications safely

