Bridge Webhook Events
Bridge devices send webhook notifications for two kinds of events: events the Bridge generates automatically on its own, and events triggered by a job you sent to the Bridge (see Jobs for Lock (Bridge Proxied) and Jobs for Bridge (Bridge Targeted)).
All webhook requests are signed — see Webhook Security for how to validate them.
Bridge Automated Events
These events are caused by the Bridge device itself and occur automatically, without user intervention.
| Event Type | Number Mapping |
|---|---|
| Job Complete | 3 |
| Activity Log Received | 5 |
| Bridge Connection | 10 |
Job Complete Event
type is always 3 for Job Complete events. data also carries job-specific fields — see Job-Specific Webhook Data below. proxyId is the Bridge device ID that relayed the command; product.id is the target lock device ID.
Job Status Codes
| Code | Status | Description |
|---|---|---|
| 0 | Success | Job completed successfully |
| 1 | Generic Error | Job failed due to generic error |
| 2 | Operation In Progress | Another operation is currently running on the device |
Supported Job Types
The following job types trigger Job Complete Event webhooks:
| Job Type ID | Operation Name | Description |
|---|---|---|
| 1 | Lock | Engage the lock mechanism |
| 2 | Unlock | Disengage the lock mechanism |
| 4 | Create PIN | Add a new custom PIN code to the device |
| 5 | Delete PIN | Remove an existing custom PIN code |
| 9 | Get Battery Level | Retrieve current battery percentage |
| 10 | Get Status | Fetch current lock state and diagnostics |
| 15 | Get Logs | Get device activity logs |
Activity Log Received Event
activityLogs is an array of lock activity objects. Fields on each activity object other than pin, newPin, pinType, and value1-value5/time1-time2 are always present; those are populated only for the log types that use them.
Every lock activity object has these common fields:
| Common Field | Description |
|---|---|
| logType | An integer indicating the type of event |
| entryDate | The time since UNIX epoch in seconds that the event occurred |
| keyId | Identifier of the Bluetooth Guest key used for guest operations, or 0 if it was an event initiated via a Bluetooth Admin key or via the lock's keypad |
| operationId | An identifier of the Bluetooth command operation that generated this activity log, or undefined if there was no operationId defined for that particular command |
Some log types are populated with additional fields:
| Log Type | Translation | Additional Fields | Description |
|---|---|---|---|
| 11 | Bluetooth unlock | N/A | N/A |
| 13 | Bluetooth set time | time1 | The time the clock was set to |
| 14 | Change volume via keypad | value1, value2 | Previous volume, new volume |
| 15 | Change volume via Bluetooth | value1, value2 | Previous volume, new volume |
| 16 | Wrong PIN | pin | The wrong PIN that was attempted |
| 17 | PIN exceeded maximum length | pin | The PIN that was attempted |
| 18 | Unlock with master PIN | pin | The master PIN |
| 19 | Unlock with generated PIN previously used at least once (permanent, duration, weekly etc) | pin | The PIN used to unlock |
| 20 | Use a one-time PIN | pin | The PIN that was used |
| 21 | Use a permanent PIN for the first time | pin | The PIN that was used |
| 22 | Use a duration PIN for the first time | pin | The PIN that was used |
| 23 | Use a weekly PIN for the first time | pin | The PIN that was used |
| 24 | Use a monthly PIN for the first time | pin | The PIN that was used |
| 25 | Use a weekday PIN for the first time | pin | The PIN that was used |
| 26 | Use a weekend PIN for the first time | pin | The PIN that was used |
| 27 | Create a new PIN via Bluetooth | pin, time1, time2, pinType | The PIN that was used; start time if sent via Bluetooth; end time if sent via Bluetooth; the type of PIN used |
| 28 | Change PIN via keypad | pin, newPin | The original PIN; the new PIN it is changed to |
| 29 | Change PIN via Bluetooth | pin, newPin, time1, time2, pinType | The original PIN; the new PIN, if sent via Bluetooth; start/end time if sent via Bluetooth; the PIN type if sent via Bluetooth |
| 30 | Delete PIN via keypad | pin | The PIN that was deleted |
| 31 | Delete PIN via Bluetooth | pin | The PIN that was deleted |
| 32 | Change Master PIN | pin, newPin | The old master PIN; the new master PIN |
| 33 | Change auto-relock via keypad | value1, value2 | Time of timer autorelock in seconds; time of sensor autorelock in seconds |
| 34 | Change auto-relock via Bluetooth | value1 | Time of sensor autorelock in seconds, or 0 if disabled |
| 35 | Change incorrect PIN lockout count via keypad | value1, value2 | Previous value of incorrect PIN lockout count; new value |
| 36 | Change incorrect PIN lockout count via Bluetooth | value1, value2 | Previous value, or 0 if disabled; new value, or 0 if disabled |
| 37 | Bluetooth lock | N/A | N/A |
| 38 | Enable auto-unlock | value1, value2 | 1 if enabled, 0 if disabled; minimum RSSI to unlock when touched, actual RSSI value = value2 + 256 |
| 39 | Blacklist Bluetooth Guest key | value3 | Guest key id |
| 40 | Unblacklist Bluetooth Guest key | value3 | Guest key id |
| 41 | Change daylight savings time | N/A | N/A |
| 42 | Add key card | value5 | Card UID |
| 43 | Key card unlock | value5 | Card UID |
| 44 | Delete key card | value5 | Card UID |
| 45 | Set LED brightness | value1 | Brightness |
| 46 | Set relock alarm | value1 | Time before alarm sounds after opening in seconds, or 0 if disabled |
| 47 | Auto-relock lock (after opening and closing the lock) | N/A | N/A |
| 48 | Auto-relock lock (without first opening the lock) | N/A | N/A |
| 49 | Lock via keypad/button | N/A | N/A |
| 50 | Unlock via button | N/A | N/A |
| 51 | Lock with key/thumbturn | N/A | N/A |
| 52 | Unlock with key/thumbturn | N/A | N/A |
| 53 | Attempted break-in | N/A | N/A |
| 54 | Add fingerprint | value2 | Fingerprint UID |
| 55 | Delete fingerprint | value2 | Fingerprint UID |
| 56 | Fingerprint unlock | value1, value2 | 0 if unlock was successful, else a Bluetooth command result code; fingerprint UID (null if unsuccessful) |
| 57 | Invalid key card unlock attempt | value5 | Card UID |
Bridge Connection Event
Sent when a Bridge (EB1X) connects to or disconnects from the server. Use it to update device status, trigger alerts, or drive automation when connectivity changes.
type is always 10 for Bridge Connection events. data.isOnline is true when the bridge is online (connected), false when offline (disconnected). product.id is the Bridge device ID.
Bridge Targeted Events
Bridge Targeted Events are sent when a Bridge device processes a job that targets the Bridge itself (see Jobs for Bridge (Bridge Targeted)).
| Event Type | Number Mapping |
|---|---|
| Job Processed | 3 |
Get Device Status
Job Status
| Job Status | Number Mapping |
|---|---|
| Success | 0 |
| Generic failure | 1 |
| Another operation is in progress | 2 |
WiFi Network Status
| WiFi Network Status | Number Mapping |
|---|---|
| Connected | 0 |
| Disconnected/SSID not found/Invalid Password | 2 |
| No Internet Connectivity | 5 |
Job-Specific Webhook Data
Each Bridge Proxied Job's Job Complete Event webhook (type: 3) carries job-specific fields in data, alongside the common fields (jobId, jobStatus, date, proxyTransportMethod, accessoryId) and a product object identifying the device. All timestamps are ISO 8601 (e.g. 2023-04-05T12:34:56Z); proxyTransportMethod is always 2.
Common Job Status Codes (shared across all job types unless a job overrides them below)
| Job Status | Number Mapping |
|---|---|
| Success | 0 |
| Generic failure | 1 |
| Another operation is in progress | 2 |
Lock / Unlock Device
No job-specific fields — data carries only jobId and jobStatus.
Create Custom PIN
No job-specific data fields beyond jobId/jobStatus, but adds these jobStatus codes:
| Job Status | Number Mapping |
|---|---|
| Invalid Custom PIN length | 5 |
| Duplicate PIN | 9 |
| Insufficient PIN Storage | 12 |
Delete PIN
Adds this jobStatus code:
| Job Status | Number Mapping |
|---|---|
| PIN not found | 3 |
Get Battery Level
data adds batteryLevel:
| Device Battery Level Range | Description |
|---|---|
| 0 - 100 | Represents battery level as a percentage |
Get Device Status
data adds lockOpen and doorOpen:
| Lock Open | Boolean Mapping |
|---|---|
| Locking Mechanism Not Open | false |
| Locking Mechanism Open | true |
| Door Open | Boolean Mapping |
|---|---|
| Door Closed | false |
| Door Open | true |