Webhooks
Introduction
Webhooks allow your application to be notified when events occur in the access control system. For example, if your application subscribes to the device.request.allowed
event, a POST
request will be sent to the specified URL every time a credential holder is granted access. Events are divided into three categories: organization events, system events, and cloud node events.
The subscription object
{
"id": "653944ebf362be88d514d5d6",
"name": "Test Subscription",
"url": "https://example.com",
"scope": "recursive",
"authentication": {
"type": "None"
},
"events": ["device.request.allowed", "device.request.denied", "device.request.unknown"],
"active": true,
"sslVerification": true,
"secrecyLevel": 1,
"expiresAt": null,
"userId": "652ea4142bf4033e4c100393",
"odometer": 123,
"secret": "vvHkDbPeIespEKDprlvzlstDPPhLJnxG"
}
Property | Type | Description |
---|---|---|
id | String | The subscription ID. |
name | String | The subscription name. |
url | String | The URL that will receive POST requests when events occur. |
scope | String or String[] | The scope of the subscription. Possible values include this (this organization) and recursive (this organization and its children). Alternatively, an array of cloud node IDs may be specified. |
authentication | Object | An object describing the authentication mechanism. |
authentication.type | String | The authentication type. Possible values include None and Basic . |
authentication.user | String | The authentication user. This only applies if authentication.type is set to Basic . |
authentication.password | String | The authentication password. This only applies if authentication.type is set to Basic . |
events | String[] | A list of events that will trigger notifications. |
active | Boolean | Whether the subscription is active. |
sslVerification | Boolean | Whether the SSL certificate of the target host will be checked. |
secrecyLevel | Integer | The level of security filtering applied to notification event data. Possible values include 0 (no filtering), 1 (exclude PINs and credentials), and 2 (exclude PINs, credentials, and holder names). |
expiresAt | String | An ISO 8601 timestamp representing the time at which this subscription's active status will be set to false . |
userId | String | The ID of the user that created the subscription. |
odometer | Integer | The total number of notifications that have been sent by this subscription. |
secret | String | The secret used for verifying webhook notifications. |
Verifying webhook notifications
If a webhook subscription is supplied with a secret
, an X_PDK_SIGNATURE
header will be included with each corresponding notification. This header contains a SHA-1 HMAC, which is generated by applying the secret to the response body. Most languages include functions for generating HMACs. The example below shows how webhook notifications can be verified in JavaScript.
import { createHmac } from "crypto"
// Verify an incoming webhook notification
const hmac = createHmac("sha1", secret).update(body).digest("hex")
if (hmac == request.headers.get("X-PDK-SIGNATURE")) {
// Verification passed
} else {
// Verification failed
}
Subscription Endpoints
Create a subscription
Request
POST https://accounts.pdk.io/api/organizations/{{organization_id}}/subscriptions HTTP/1.1
Authorization: Bearer {{id_token}}
Content-Type: application/json
{
"name": "Test Subscription",
"url": "https://example.com",
"scope": "recursive",
"authentication": {
"type": "None"
},
"events": [
"device.request.allowed",
"device.request.denied",
"device.request.unknown"
]
}
Parameter | Location | Type | Required | Description |
---|---|---|---|---|
organization_id | Path | String | Yes | The organization ID. |
id_token | Header | String | Yes | A valid ID token. |
name | Body | String | Yes | The subscription name. The maximum length is 70 characters. |
url | Body | String | Yes | The URL that will receive POST requests when events occur. HTTPS protocol is required. |
scope | Body | String or String[] | Yes | The scope of the subscription. Possible values include this (this organization) and recursive (this organization and its children). Alternatively, an array of cloud node IDs may be provided. In this case, the corresponding cloud nodes must belong to the specified organization and the events parameter must only include cloud node events. |
authentication | Body | Object | Yes | An object describing the authentication mechanism. |
authentication.type | Body | String | Yes | The authentication type. Possible values include None and Basic . |
authentication.user | Body | String | Sometimes | The authentication user. This is required if authentication.type is set to Basic . |
authentication.password | Body | String | Sometimes | The authentication password. This is required if authentication.type is set to Basic . |
events | Body | String[] | Yes | A list of events that should trigger notifications. |
active | Body | Boolean | No | Whether the subscription should be active. The default value is true . |
sslVerification | Body | Boolean | No | Whether the SSL certificate of the target host should be checked. The default value is true . Setting this to false will allow self-signed certificates to be used. |
secrecyLevel | Body | Integer | No | The level of security filtering applied to notification event data. Possible values include 0 (no filtering), 1 (exclude PINs and credentials), and 2 (exclude PINs, credentials, and holder names). The default value is 1 . |
expiresAt | Body | String | No | An ISO 8601 timestamp representing the time at which this subscription's active status should be set to false . This value must represent a time in the future. |
secret | Body | String | No | The secret used for verifying webhook notifications. The maximum length is 255 characters. |
Response
The response contains the ID of the newly created subscription object.
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "653944ebf362be88d514d5d6"
}
Retrieve a subscription
Request
GET https://accounts.pdk.io/api/organizations/{{organization_id}}/subscriptions/{{subscription_id}} HTTP/1.1
Authorization: Bearer {{id_token}}
Parameter | Location | Type | Required | Description |
---|---|---|---|---|
organization_id | Path | String | Yes | The organization ID. |
subscription_id | Path | String | Yes | The subscription ID. |
id_token | Header | String | Yes | A valid ID token. |
Response
The response contains a subscription object.
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "653944ebf362be88d514d5d6",
"name": "Test Subscription",
"url": "https://example.com",
"scope": "recursive",
"authentication": {
"type": "None"
},
"events": [
"device.request.allowed",
"device.request.denied",
"device.request.unknown"
],
"active": true,
"sslVerification": true,
"secrecyLevel": 1,
"expiresAt": null,
"userId": "652ea4142bf4033e4c100393",
"odometer": 123,
"secret": "vvHkDbPeIespEKDprlvzlstDPPhLJnxG"
}
Update a subscription
Request
PUT https://accounts.pdk.io/api/organizations/{{organization_id}}/subscriptions/{{subscription_id}} HTTP/1.1
Authorization: Bearer {{id_token}}
Content-Type: application/json
{
"name": "Test Subscription",
"url": "https://example.com",
"scope": "recursive",
"authentication": {
"type": "None"
},
"events": [
"device.request.allowed",
"device.request.denied",
"device.request.unknown"
],
"active": true,
"secrecyLevel": 1,
"sslVerification": true
}
Parameter | Location | Type | Required | Description |
---|---|---|---|---|
organization_id | Path | String | Yes | The organization ID. |
subscription_id | Path | String | Yes | The subscription ID. |
id_token | Header | String | Yes | A valid ID token. |
name | Body | String | Yes | The subscription name. The maximum length is 70 characters. |
url | Body | String | Yes | The URL that will receive POST requests when events occur. HTTPS protocol is required. |
scope | Body | String or String[] | Yes | The scope of the subscription. Possible values include this (this organization) and recursive (this organization and its children). Alternatively, an array of cloud node IDs may be provided. In this case, the corresponding cloud nodes must belong to the specified organization and the events parameter must only include cloud node events. |
authentication | Body | Object | Yes | An object describing the authentication mechanism. |
authentication.type | Body | String | Yes | The authentication type. Possible values include None and Basic . |
authentication.user | Body | String | Sometimes | The authentication user. This is required if authentication.type is set to Basic . |
authentication.password | Body | String | Sometimes | The authentication password. This is required if authentication.type is set to Basic . |
events | Body | String[] | Yes | A list of events that should trigger notifications. |
active | Body | Boolean | Yes | Whether the subscription should be active. |
sslVerification | Body | Boolean | Yes | Whether the SSL certificate of the target host should be checked. The default value is true . Setting this to false will allow self-signed certificates to be used. |
secrecyLevel | Body | Integer | Yes | The level of security filtering applied to notification event data. Possible values include 0 (no filtering), 1 (exclude PINs and credentials), and 2 (exclude PINs, credentials, and holder names). |
expiresAt | Body | String | No | An ISO 8601 timestamp representing the time at which this subscription's active status should be set to false . This value must represent a time in the future. |
secret | Body | String | No | The secret used for verifying webhook notifications. The maximum length is 255 characters. |
Response
HTTP/1.1 204 No Content
Delete a subscription
Request
DELETE https://accounts.pdk.io/api/organizations/{{organization_id}}/subscriptions/{{subscription_id}} HTTP/1.1
Authorization: Bearer {{id_token}}
Parameter | Location | Type | Required | Description |
---|---|---|---|---|
organization_id | Path | String | Yes | The organization ID. |
subscription_id | Path | String | Yes | The subscription ID. |
id_token | Header | String | Yes | A valid ID token. |
Response
HTTP/1.1 204 No Content
List all subscriptions
Request
GET https://accounts.pdk.io/api/organizations/{{organization_id}}/subscriptions HTTP/1.1
Authorization: Bearer {{id_token}}
Parameter | Location | Type | Required | Description |
---|---|---|---|---|
organization_id | Path | String | Yes | The organization ID. |
id_token | Header | String | Yes | A valid ID token. |
Response
The response contains an array of subscription objects.
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "653944ebf362be88d514d5d6",
"name": "Test Subscription",
"url": "https://example.com",
"scope": "recursive",
"authentication": {
"type": "None"
},
"events": [
"device.request.allowed",
"device.request.denied",
"device.request.unknown"
],
"active": true,
"sslVerification": true,
"secrecyLevel": 1,
"expiresAt": null,
"userId": "652ea4142bf4033e4c100393",
"odometer": 123,
"secret": "vvHkDbPeIespEKDprlvzlstDPPhLJnxG"
}
]
Organization Events
organization.created
This event is emitted when an organization is created.
{
"id": "657b89f675a15cf27984630e",
"topic": "organization.created",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9e1cd",
"name": "Test Customer",
"useBluetoothCredentials": true,
"useTouchMobileApp": true,
"parent": "652ffcbf02ea38b478122fd6",
"user": {
"id": "64dbed79b2fbfbcc45754244",
"firstName": "Integration",
"lastName": "Client"
},
"clientInfo": {
"ipAddress": "123.45.67.8",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
}
organization.deleted
This event is emitted when an organization is deleted.
{
"id": "657b89f675a15cf27984630e",
"topic": "organization.deleted",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9e1cd",
"name": "Test Customer",
"useBluetoothCredentials": true,
"useTouchMobileApp": true,
"parent": "652ffcbf02ea38b478122fd6",
"user": {
"id": "64dbed79b2fbfbcc45754244",
"firstName": "Integration",
"lastName": "Client"
},
"clientInfo": {
"ipAddress": "123.45.67.8",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
}
organization.updated
This event is emitted when an organization is updated.
{
"id": "657b89f675a15cf27984630e",
"topic": "organization.updated",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9e1cd",
"name": "Test Customer",
"parent": "652ffcbf02ea38b478122fd6",
"user": {
"id": "64dbed79b2fbfbcc45754244",
"firstName": "Integration",
"lastName": "Client"
},
"clientInfo": {
"ipAddress": "123.45.67.8",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
}
permission.accepted
This event is emitted when a permission invitation is accepted by the recipient.
{
"topic": "permission.accepted",
"ou": "656587e46f64ddabb53eced3",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9123sdfwef",
"email": "james@example.com",
"name": "James Maxwell",
"role": "admin",
"userId": "657b8f5a75a15cf27985688a",
"user": {
"id": "64dbed79b2fbfbcc45754244",
"firstName": "Integration",
"lastName": "Client"
},
"clientInfo": {
"ipAddress": "123.45.67.8",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
}
permission.created
This event is emitted when a permission is created.
{
"topic": "permission.created",
"ou": "656587e46f64ddabb53eced3",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9123sdfwef",
"email": "james@example.com",
"role": "admin",
"userId": null,
"user": {
"id": "64dbed79b2fbfbcc45754244",
"firstName": "Integration",
"lastName": "Client"
},
"clientInfo": {
"ipAddress": "123.45.67.8",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
}
permission.deleted
This event is emitted when a permission is deleted.
{
"topic": "permission.deleted",
"ou": "656587e46f64ddabb53eced3",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9123sdfwef",
"email": "james@example.com",
"role": "manager",
"userId": "64ee3c69e368d86b65d8a53f",
"user": {
"id": "64dbed79b2fbfbcc45754244",
"firstName": "Integration",
"lastName": "Client"
},
"clientInfo": {
"ipAddress": "123.45.67.8",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
}
permission.updated
This event is emitted when a permission is updated.
{
"topic": "permission.updated",
"ou": "656587e46f64ddabb53eced3",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9123sdfwef",
"email": "james@example.com",
"role": "manager",
"userId": "64ee3c69e368d86b65d8a53f",
"user": {
"id": "64dbed79b2fbfbcc45754244",
"firstName": "Integration",
"lastName": "Client"
},
"clientInfo": {
"ipAddress": "123.45.67.8",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
}
System Events
cardformat.created
This event is emitted when a card format is created.
{
"id": "7ef98a20-33c5-4f5c-b1c1-0504d3125594",
"topic": "cardformat.created",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "c4926d2f-b2a4-4529-bc18-a4a907d7cc98",
"standard": false,
"name": "Test Card Format",
"schema": {
"type": "js",
"default_min_bits": 9,
"default_max_bits": 512
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702681620163
}
}
cardformat.deleted
This event is emitted when a card format is deleted.
{
"id": "2baca4ef-865b-4c22-b168-863f718cc5d9",
"topic": "cardformat.deleted",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "c4926d2f-b2a4-4529-bc18-a4a907d7cc98",
"standard": false,
"name": "Test Card Format",
"schema": {
"type": "js",
"default_min_bits": 9,
"default_max_bits": 512
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702681645188
}
}
cloudnode.created
This event is emitted when a cloud node is created.
{
"id": "a2e97374-3fe2-41e0-85fa-f348385b1ca7",
"topic": "cloudnode.created",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "f41697ab-b50d-487a-9f2b-6616ec3ac959",
"name": "Test Cloud Node",
"created": "2023-12-15T23:00:03.122Z",
"serialNumber": "1234ABC",
"timezone": "UTC",
"cardFormat": {
"id": "12cc2a68-97a5-47f0-9dbe-7eef4b0d53c6",
"min_input_bits": 9,
"max_input_bits": 64,
"facility_code": "NOT_ENFORCED"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702681203357
}
}
cloudnode.deleted
This event is emitted when a cloud node is deleted.
{
"id": "2f377622-3e5a-4d36-9da3-1edf69307b22",
"topic": "cloudnode.deleted",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "f41697ab-b50d-487a-9f2b-6616ec3ac959",
"name": "Test Cloud Node",
"created": "2023-12-15T23:00:03.122Z",
"serialNumber": "1234ABC",
"locale": "en",
"timezone": "UTC",
"cardFormat": {
"id": "12cc2a68-97a5-47f0-9dbe-7eef4b0d53c6",
"min_input_bits": 9,
"max_input_bits": 64,
"facility_code": "NOT_ENFORCED",
"description": "Standard 26-bit Format"
},
"offlinePolicy": 1,
"killTimer": 259200
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702681297269
}
}
cloudnode.updated
This event is emitted when a cloud node is updated.
{
"id": "648f8b61-bcb5-4a16-9379-5bc0a45e18f8",
"topic": "cloudnode.updated",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"cloudNodeId": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"prevState": {
"timezone": "UTC"
},
"newState": {
"timezone": "US/Eastern"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"cloudNodeName": "Test Cloud Node",
"occurred": 1702685942103
}
}
connection.created
This event is emitted when a controller connection is created.
{
"id": "28019af3-b706-416f-9cd2-ad11d2a4d619",
"topic": "connection.created",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "82362705-6fa1-40ac-9e0c-a12af2e86ca4",
"port": 10001,
"name": "pdk-board[5c:85:7e:60:0d:fa].local",
"type": "ethernet",
"created": "2023-12-15T23:20:19.660Z",
"manufacturer": "PDK",
"dhcp": true,
"ipv6Address": "fe80::5e85:7eff:fe60:dfa",
"macAddress": "5c:85:7e:60:0d:fa",
"protocol": "IPv6",
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"name": "Test Cloud Node",
"serialNumber": "1234ABC"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702682419671
}
}
connection.deleted
This event is emitted when a controller connection is deleted.
{
"id": "0ca81bc6-6b5b-4ce1-90ef-989fb09ed5db",
"topic": "connection.deleted",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "82362705-6fa1-40ac-9e0c-a12af2e86ca4",
"port": 10001,
"name": "Test Connection",
"type": "ethernet",
"created": "2023-12-15T23:20:19.660Z",
"ipv4Address": "",
"manufacturer": "PDK",
"dhcp": true,
"ipv6Address": "fe80::5e85:7eff:fe60:dfa",
"macAddress": "5c:85:7e:60:0d:fa",
"protocol": "IPv6",
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"name": "Test Cloud Node",
"serialNumber": "1234ABC"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702682944463
}
}
connection.updated
This event is emitted when a controller connection is updated.
{
"id": "480a0e4f-459d-4b1b-9d9d-7905609ab063",
"topic": "connection.updated",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"connectionId": "82362705-6fa1-40ac-9e0c-a12af2e86ca4",
"prevState": {
"name": "pdk-board[5c:85:7e:60:0d:fa].local"
},
"newState": {
"name": "Test Connection",
"ipv4Address": ""
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"connectionName": "pdk-board[5c:85:7e:60:0d:fa].local",
"occurred": 1702682467692
}
}
credential.created
This event is emitted when a credential is created.
{
"id": "cebb67b9-c2a4-49f1-b076-ac158cbdf006",
"topic": "credential.created",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "9041f62b-891f-44ae-8ce8-e0641fc7decd",
"credentialNumber": null,
"facilityCode": null,
"description": null,
"types": ["touch", "token"],
"holder": {
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"firstName": "John",
"lastName": "Wiegand"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
credential.deleted
This event is emitted when a credential is deleted.
{
"id": "7c251f85-d369-4698-a9e9-8cfb7cee04cc",
"topic": "credential.deleted",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "9041f62b-891f-44ae-8ce8-e0641fc7decd",
"credentialNumber": null,
"facilityCode": null,
"description": null,
"types": ["touch", "token"],
"holder": {
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"firstName": "John",
"lastName": "Wiegand"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
credential.updated
This event is emitted when a credential is updated.
{
"id": "51beba62-e7e3-4fcb-9706-70fbb18b4874",
"topic": "credential.updated",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "9041f62b-891f-44ae-8ce8-e0641fc7decd",
"credentialNumber": null,
"facilityCode": null,
"description": null,
"types": ["touch", "token"],
"holder": {
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"firstName": "John",
"lastName": "Wiegand"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
device.created
This event is emitted when a device is created.
{
"id": "fcc9ae6e-ab94-4789-9f74-881354bcf471",
"topic": "device.created",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "38bddc54-c129-4d02-ab5e-f0b617a4304d",
"port": 1,
"delay": 0,
"dwell": 30,
"dps": false,
"rex": false,
"name": "Test Device",
"created": "2023-12-15 23:20:19",
"connection": {
"id": "82362705-6fa1-40ac-9e0c-a12af2e86ca4",
"port": 10001,
"name": "Test Connection",
"type": "ethernet",
"created": "2023-12-15T23:20:19.660Z",
"manufacturer": "PDK",
"dhcp": true,
"ipv6Address": "fe80::5e85:7eff:fe60:dfa",
"macAddress": "5c:85:7e:60:0d:fa",
"protocol": "IPv6"
},
"forcedAlarm": false,
"autoOpenAfterFirstAllow": false,
"propAlarm": false,
"propDelay": 0,
"inputTypes": ["wiegand", "unencryptedOsdp", "encryptedOsdp"],
"osdpAddress": 0,
"partition": [
{
"id": "19e1b959-63ae-4170-a002-19f8223164b2",
"name": "Default",
"default": true
}
],
"reader": null,
"type": "primaryReader",
"publicIcon": "swingingDoor",
"readerType": "standard",
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"serialNumber": "1234ABC",
"name": "Test Cloud Node"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
device.deleted
This event is emitted when a device is deleted.
{
"id": "442b8f98-e998-455b-86cf-8d936fd64c8c",
"topic": "device.deleted",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "38bddc54-c129-4d02-ab5e-f0b617a4304d",
"port": 1,
"delay": 0,
"dwell": 30,
"dps": false,
"rex": false,
"name": "Test Device",
"created": "2023-12-15 23:20:19",
"connection": {
"id": "82362705-6fa1-40ac-9e0c-a12af2e86ca4",
"name": "Test Connection",
"type": "ethernet"
},
"forcedAlarm": false,
"autoOpenAfterFirstAllow": false,
"propAlarm": false,
"propDelay": 0,
"inputTypes": ["wiegand", "unencryptedOsdp", "encryptedOsdp"],
"osdpAddress": 0,
"reader": null,
"type": "primaryReader",
"publicIcon": "swingingDoor",
"readerType": "standard",
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"serialNumber": "1234ABC",
"name": "Test Cloud Node"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
device.updated
This event is emitted when a device is updated.
{
"id": "7e7cad76-a938-4259-ab08-cdd90456680f",
"topic": "device.updated",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"deviceId": "38bddc54-c129-4d02-ab5e-f0b617a4304d",
"prevState": {
"name": "Old Device Name"
},
"newState": {
"name": "New Device Name"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"deviceName": "Old Device Name",
"occurred": 1702682531901
}
}
floorgroup.activated
This event is emitted when an elevator floor group is activated.
{
"id": "19898067-6cb5-4d7b-b76e-e9c8d433d954",
"topic": "floorgroup.activated",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"floorGroupId": "c3a6501d-b162-4c9e-92b4-b472f466cc76",
"readerId": "df4f9aa2-e316-482c-9e96-8b4b353d27d1"
},
"metadata": {
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f",
"offset": 0,
"occurred": 1717445830157
}
}
floorgroup.created
This event is emitted when an elevator floor group is created.
{
"id": "92f9aeb1-7aca-4c30-b421-d9ddc111a32a",
"topic": "floorgroup.created",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "81acdcb7-ac0c-4f05-bba9-732a43d95e1b",
"name": "Test Floor Group",
"readerPort": {
"id": "f2cdf521-59aa-4b5f-8c24-3cd16839aa5e",
"name": "Test Elevator",
"type": "elevatorReader",
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"serialNumber": "1234ABC",
"name": "Test Cloud Node"
}
},
"floors": [
{
"id": "78be2ef1-9389-4ca7-8f1b-87e95547a5ab",
"name": "Test Floor Relay",
"type": "floorRelay"
}
],
"partition": "19e1b959-63ae-4170-a002-19f8223164b2"
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
floorgroup.deleted
This event is emitted when an elevator floor group is deleted.
{
"id": "9ada15bd-5552-480d-843c-3b060a31d399",
"topic": "floorgroup.deleted",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "ec0b2558-24cc-40d4-892f-3e3f6d8f6f52",
"name": "Floor Group",
"readerPort": {
"id": "ed7696a9-8418-424f-bc33-8f38e56815e0",
"name": "Elevator",
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"serialNumber": "1234ABC",
"name": "Test Cloud Node"
}
},
"floors": [
{
"id": "bca9ac2c-c277-4d6e-b169-7aecc2fb41a4",
"name": "Floor Relay"
}
],
"partition": "19e1b959-63ae-4170-a002-19f8223164b2"
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
floorgroup.updated
This event is emitted when an elevator floor group is updated.
{
"id": "610ddb38-467b-4477-9384-174e38e01a5e",
"topic": "floorgroup.updated",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"floorGroupId": "7331da5a-6f9f-4ee3-9ead-2d79e90d09f8",
"prevState": {
"name": "Old Floor Group Name"
},
"newState": {
"name": "New Floor Group Name"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"floorGroupName": "Old Floor Group Name",
"occurred": 1702683884780
}
}
group.created
This event is emitted when a group is created.
{
"id": "22ffb9e7-b5d6-47da-8009-69d252bf00dc",
"topic": "group.created",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "4284ea83-6fe5-4391-98bb-08fd74fd5e26",
"name": "Test Group",
"partition": "19e1b959-63ae-4170-a002-19f8223164b2"
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
group.deleted
This event is emitted when a group is deleted.
{
"id": "aeffe83c-1ad8-4a28-bc7f-2fccf55d5b04",
"topic": "group.deleted",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "4284ea83-6fe5-4391-98bb-08fd74fd5e26",
"name": "Test Group",
"partition": "19e1b959-63ae-4170-a002-19f8223164b2"
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
group.updated
This event is emitted when a group is updated.
{
"id": "b0b67e5f-44c5-4f48-bf7b-6294698d026b",
"topic": "group.updated",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"groupId": "4284ea83-6fe5-4391-98bb-08fd74fd5e26",
"prevState": {
"name": "Old Test Group Name"
},
"newState": {
"name": "New Test Group Name"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"groupName": "Old Test Group Name",
"occurred": 1702683884780
}
}
holder.created
This event is emitted when a holder is created.
{
"id": "64b0abff-3b9b-470b-ba76-8200bac7c0f4",
"topic": "holder.created",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "15839957-3c87-4c65-b5bd-6b766e99c70d",
"email": null,
"firstName": "John",
"lastName": "Wiegand",
"enabled": true,
"partition": "19e1b959-63ae-4170-a002-19f8223164b2"
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
holder.deleted
This event is emitted when a holder is deleted.
{
"id": "ed0fb1a0-3e09-405f-9f32-9e93158e697d",
"topic": "holder.deleted",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "15839957-3c87-4c65-b5bd-6b766e99c70d",
"email": null,
"firstName": "John",
"lastName": "Wiegand",
"groups": [],
"enabled": false,
"partition": "19e1b959-63ae-4170-a002-19f8223164b2"
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
holder.updated
This event is emitted when a holder is updated.
{
"id": "46d64420-ce20-4015-b69a-2e84d55e9716",
"topic": "holder.updated",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"holderId": "15839957-3c87-4c65-b5bd-6b766e99c70d",
"prevState": {
"enabled": true
},
"newState": {
"enabled": false
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"holderName": "John Wiegand",
"occurred": 1702683884780
}
}
partition.created
This event is emitted when a partition is created.
{
"id": "5ef3035c-e06e-4bac-94e6-e4bdeb108a85",
"topic": "partition.created",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "540e939e-43b3-4eeb-94bf-a932d46bdf7a",
"name": "Test Partition"
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
partition.deleted
This event is emitted when a partition is deleted.
{
"id": "f145090f-5f31-464f-a274-5113ecb425a5",
"topic": "partition.deleted",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"id": "540e939e-43b3-4eeb-94bf-a932d46bdf7a",
"name": "Test Partition",
"devices": [],
"users": []
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
partition.updated
This event is emitted when a partition is updated.
{
"id": "79ac34c0-c5e9-4567-8e02-7b10b6b02a4d",
"topic": "partition.updated",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"partitionId": "540e939e-43b3-4eeb-94bf-a932d46bdf7a",
"prevState": {
"name": "Old Test Partition Name"
},
"newState": {
"name": "New Test Partition Name"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"partitionName": "Old Test Partition Name",
"occurred": 1702683884780
}
}
rule.antipassback.violation
This event is emitted when an anti-passback violation occurs.
{
"id": "166e7498-e2ed-4a5b-8a17-50d75f465c49",
"topic": "rule.antipassback.violation",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"cardNumber": "1234567",
"deviceId": "f202914a-72g7-456e-9a91-753602184a5e",
"groupIds": [],
"holderId": "967bbb06-8029-416d-9a7b-de84d0779a05",
"ruleIds": ["721df9a0-08aa-4195-8628-50aa82051fd3"]
},
"metadata": {
"systemId": "0738b9df-329a-4d50-88e7-7a48928c4d6f",
"deviceName": "Test Device",
"holderName": "John Weigand",
"offset": 0,
"occurred": 1717426870388
}
}
rule.created
This event is emitted when a rule is created.
{
"id": "adda7908-434e-45e2-beaa-aecb9949ec1f",
"topic": "rule.created",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"type": "access",
"id": "1988a58c-f8fe-4851-af0e-4ed1836761c9",
"startTime": "00:00",
"stopTime": "24:00",
"recurring": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
"allow": true,
"devices": [
{
"id": "10366cc1-313e-48e7-989b-ac9fcc0a973e",
"name": "Test Device",
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"serialNumber": "1234ABC",
"name": "Test Cloud Node"
}
}
],
"authenticationPolicy": "cardOrPin",
"holder": {
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"firstName": "John",
"lastName": "Wiegand"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
rule.deleted
This event is emitted when a rule is deleted.
{
"id": "88a66bf9-d947-414d-b386-0793ddcbdc62",
"topic": "rule.deleted",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"type": "access",
"id": "1988a58c-f8fe-4851-af0e-4ed1836761c9",
"startTime": "00:00",
"stopTime": "24:00",
"recurring": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
"allow": false,
"devices": [
{
"id": "10366cc1-313e-48e7-989b-ac9fcc0a973e",
"name": "Test Device",
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"serialNumber": "1234ABC",
"name": "Test Cloud Node"
}
}
],
"holder": {
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"firstName": "John",
"lastName": "Wiegand"
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780
}
}
rule.updated
This event is emitted when a rule is updated.
{
"id": "09df04a0-2fcd-49b0-b3a1-eff99034e878",
"topic": "rule.updated",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"body": {
"ruleId": "1988a58c-f8fe-4851-af0e-4ed1836761c9",
"prevState": {
"allow": true,
"authenticationPolicy": "cardOrPin"
},
"newState": {
"allow": false
}
},
"metadata": {
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client",
"occurred": 1702683884780,
"holder": {
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"firstName": "John",
"lastName": "Wiegand"
}
}
}
Cloud Node Events
cloudnode.connected
This event is emitted when the network connection to a cloud node is restored.
{
"topic": "cloudnode.connected",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"ip": "100.64.127.247",
"online": true,
"timestamp": "2023-12-15T23:23:20Z"
}
cloudnode.disconnected
This event is emitted when the network connection to a cloud node is lost.
{
"topic": "cloudnode.disconnected",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"ip": "100.64.95.250",
"online": false,
"timestamp": "2023-11-14T07:08:46Z"
}
controller.alarm.comloss.off
This event is emitted when communication with a controller is restored.
{
"id": "584fb9c2-8f68-47d5-aeaa-5591feeffd8d",
"topic": "controller.alarm.comloss.off",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "b19a10b7-edd2-4fac-a29c-123c2dee3987",
"address": ""
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"connectionName": "Test Connection",
"offset": 0,
"occurred": 1702683110942
}
}
controller.alarm.comloss.on
This event is emitted when communication with a controller is lost.
{
"id": "7762f021-9efa-45bd-8df0-3785e63e958b",
"topic": "controller.alarm.comloss.on",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "60d65adb-15e3-407c-8ca3-40ccc353fea2",
"address": ""
},
"metadata": {
"systemId": "2b6c14b2-ce6d-4109-ab4e-b95a65b048d3",
"connectionName": "Test Connection",
"offset": -14400000,
"occurred": 1710203495112
}
}
controller.input.lp.off
This event is emitted when a controller exits low power mode.
{
"id": "eb0e9fc1-de14-4079-83d1-7c3c38fa0728",
"topic": "controller.input.lp.off",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "14aa0b4b-108b-4443-a41a-d71210200efc",
"address": ""
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"connectionName": "Test Connection",
"source": "board",
"offset": -28800000,
"occurred": 1702937660205
}
}
controller.input.lp.on
This event is emitted when a controller enters low power mode.
{
"id": "39f133a6-9e0e-499f-88e3-5c5ad7978f6f",
"topic": "controller.input.lp.on",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "14aa0b4b-108b-4443-a41a-d71210200efc",
"address": ""
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"source": "board",
"connectionName": "Test Connection",
"offset": -28800000,
"occurred": 1702937636006
}
}
controller.input.pb.connected
This event is emitted when a battery is connected to a controller.
{
"id": "aa3baab4-610g-480f-85bf-2453466fd99a",
"topic": "controller.input.pb.connected",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "558bef58-e9bc-43d3-80f5-d4e609cebd55",
"address": ""
},
"metadata": {
"systemId": "0738b8dg-329a-4d50-87e7-7a48928c4d6f",
"source": "board",
"connectionName": "Test Connection",
"offset": 0,
"occurred": 1717446672700
}
}
controller.input.pb.disconnected
This event is emitted when a battery is disconnected from a controller.
{
"id": "aa3baab4-610g-480f-85bf-2453466fd99a",
"topic": "controller.input.pb.disconnected",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "558bef58-e9bc-43d3-80f5-d4e609cebd55",
"address": ""
},
"metadata": {
"systemId": "0738b8dg-329a-4d50-87e7-7a48928c4d6f",
"connectionName": "Test Connection",
"source": "board",
"offset": 0,
"occurred": 1717446672700
}
}
controller.input.pb.status
This event is emitted when updated information about a controller's battery status is available.
{
"id": "37130eb7-56d8-46fd-a31a-5ca9dad504a8",
"topic": "controller.input.pb.status",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "e13aeeaf-c2c3-4a27-a662-a34deacd7b17",
"address": "",
"batteryLevel": 100,
"chargeCategory": "G",
"current": 0,
"time": 0
},
"metadata": {
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f",
"connectionName": "Test Connection",
"source": "board",
"offset": 0,
"occurred": 1717442456325
}
}
controller.input.pi.off
This event is emitted when input power is disconnected from a controller.
{
"id": "dd15dfa3-014f-47ec-9349-4d5bd6951f93",
"topic": "controller.input.pi.off",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "e13aeeaf-c2c2-4a27-a662-a34deacd7b17",
"address": ""
},
"metadata": {
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f",
"connectionName": "Test Connection",
"source": "board",
"offset": 0,
"occurred": 1717442456325
}
}
controller.input.pi.on
This event is emitted when input power is connected to a controller.
{
"id": "dd15dfa3-014f-47ec-9349-4d5bd6951f93",
"topic": "controller.input.pi.on",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "e13aeeaf-c2c2-4a27-a662-a34deacd7b17",
"address": ""
},
"metadata": {
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f",
"connectionName": "Test Connection",
"source": "board",
"offset": 0,
"occurred": 1717442456325
}
}
controller.input.pi.status
This event is emitted when updated information about a controller's input power is available.
{
"id": "30beca44-12fg-40c2-9109-71eeb533f83d",
"topic": "controller.input.pi.status",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "e13aeeag-c2c2-4a27-a662-a34deacd7b17",
"address": "",
"current": 0,
"inputPowerOn": false,
"voltage": 0
},
"metadata": {
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f",
"connectionName": "Test Connection",
"source": "board",
"offset": 0,
"occurred": 1717442456325
}
}
controller.input.po.absent
This event is emitted when an overcurrent is no longer detected on a controller.
{
"id": "75103871-2c48-4b69-b4ec-53c76f52b519",
"topic": "controller.input.po.absent",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "14aa0b4b-108b-4443-a41a-d71210200efc",
"address": ""
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"connectionName": "Test Connection",
"source": "board",
"offset": -28800000,
"occurred": 1702937600437
}
}
controller.input.po.present
This event is emitted when an overcurrent is detected on a controller.
{
"id": "2f8bab14-0bf3-4856-ae6c-b1f868899e77",
"topic": "controller.input.po.present",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "14aa0b4b-108b-4443-a41a-d71210200efc",
"address": ""
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"connectionName": "Test Connection",
"source": "board",
"offset": -28800000,
"occurred": 1702937569898
}
}
controller.input.time.unknown.enter
This event is emitted if the real-time clock (RTC) is not set when a controller boots.
{
"id": "3b308657-6a98-4682-b06b-5b76e0f547b3",
"topic": "controller.input.time.unknown.enter",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "e13aeeag-c2c2-4a27-a662-a34deacd7b17",
"address": ""
},
"metadata": {
"systemId": "0738b8df-329a-4d50-88e7-7a48928c4d6f",
"connectionName": "Test Connection",
"offline": true,
"source": "board",
"offset": 0,
"occurred": 1717430776423
}
}
controller.input.time.unknown.exit
This event is emitted when a controller's real-time clock (RTC) is updated.
{
"id": "3b308657-6a98-4682-b06b-5b76e0f547b3",
"topic": "controller.input.time.unknown.exit",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"connectionId": "e13aeeag-c2c2-4a27-a662-a34deacd7b17",
"address": ""
},
"metadata": {
"systemId": "0738b8df-329a-4d50-88e7-7a48928c4d6f",
"connectionName": "Test Connection",
"offline": true,
"source": "board",
"offset": 0,
"occurred": 1717430776423
}
}
device.alarm.circuitbreaker.off
This event is emitted when a controller's relay circuits stabilize.
{
"id": "00af2d2g-37ba-42de-8916-84fc5d2295c5",
"topic": "device.alarm.circuitbreaker.off",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "fec7ddb3-ff84-4ca3-bb96-c4507e740986",
"source": "B"
},
"metadata": {
"systemId": "0738b8dg-329a-4d50-88e8-7a48928c4d6f",
"deviceName": "Test Device",
"offset": 0,
"occurred": 1717194426571
}
}
device.alarm.circuitbreaker.on
This event is emitted when a controller's relay circuits become unstable (e.g. due to loose wires).
{
"id": "e55e1e9d-2a08-416d-bfd4-092813373da2",
"topic": "device.alarm.circuitbreaker.on",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "fec7ddb2-ff84-4ca3-bb96-c4507e740986",
"source": "A"
},
"metadata": {
"systemId": "0738b8dg-329a-4d51-88e7-7a48928c4d6f",
"deviceName": "Test Device",
"occurred": 1717194012723,
"offset": 0
}
}
device.alarm.forced
This event is emitted when a device equipped with a door position sensor (DPS) is forced open.
{
"id": "0bd675be-4991-4e80-847d-104daa8e4cbd",
"topic": "device.alarm.forced",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"offset": -28800000,
"occurred": 1702935299636
}
}
device.alarm.forced.cleared
This event is emitted when a forced alarm has cleared.
{
"id": "13341594-8957-4821-b928-a07dbc27149f",
"topic": "device.alarm.forced.cleared",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"offset": -28800000,
"occurred": 1702935492298
}
}
device.alarm.propped.alloff
This event is emitted when prop alarms are cleared for all devices.
{
"id": "9f2e2b24-0e9e-41e5-a6a3-a50da46e8a24",
"topic": "device.alarm.propped.alloff",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"offset": -28800000,
"occurred": 1702935447354
}
}
device.alarm.propped.off
This event is emitted when a prop alarm has cleared for a device.
{
"id": "99b04ce8-ca2d-433e-9883-f9ff5cf75d62",
"topic": "device.alarm.propped.off",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"offset": -28800000,
"occurred": 1702935447334
}
}
device.alarm.propped.on
This event is emitted when a device equipped with a door position sensor (DPS) is propped open.
{
"id": "0cdd388a-20b4-43bb-8505-f762f40a5c2a",
"topic": "device.alarm.propped.on",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"offset": -28800000,
"occurred": 1702935300598
}
}
device.autoopen.off
This event is emitted when auto open is deactivated.
{
"id": "9d99c5ee-1db6-425e-a9d9-7f64b3457689",
"topic": "device.autoopen.off",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac",
"ruleId": null
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"offset": -28800000,
"occurred": 1702949461044
}
}
device.autoopen.on
This event is emitted when auto open is activated.
{
"id": "a267ce58-b3d0-4818-950d-39d33aaa34dd",
"topic": "device.autoopen.on",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac",
"ruleId": "f71e5941-3a16-4023-9baf-9e4df0e2af8b",
"aoscan": false
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"ruleName": "Test Auto Open Rule",
"offset": -28800000,
"occurred": 1702945680386
}
}
device.autoopen.override.off
This event is emitted when an auto open override is deactivated.
{
"id": "efe67400-a2a8-498c-bd69-f592b43ac592",
"topic": "device.autoopen.override.off",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"offset": -28800000,
"occurred": 1702949821030
}
}
device.autoopen.override.on
This event is emitted when an auto open override is activated.
{
"id": "1ffc2002-4e33-4bc9-a518-2f6aa79a25b2",
"topic": "device.autoopen.override.on",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"offset": -28800000,
"occurred": 1702949811854
}
}
device.forceclose.off
This event is emitted when do not disturb (DND) is deactivated.
{
"id": "be3bd335-a1a9-483b-8d2c-709338833ad9",
"topic": "device.forceclose.off",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"offset": -28800000,
"occurred": 1702686364700
}
}
device.forceclose.on
This event is emitted when do not disturb (DND) is activated.
{
"id": "cc44dc32-e94e-49b4-bca1-e95bcad80034",
"topic": "device.forceclose.on",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "1bf7a641-4b1b-4d6c-9c57-818e7515575d"
},
"metadata": {
"systemId": "2b6c14b2-ce6d-4109-ab4e-b95a65b048d3",
"deviceName": "Test Device",
"offset": -14400000,
"occurred": 1710202312032
}
}
device.forceopen.off
This event is emitted when force unlock is deactivated.
{
"id": "42972f24-7b15-47f6-96d2-25cf8af5ebb7",
"topic": "device.forceopen.off",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"offset": -28800000,
"occurred": 1702686370053
}
}
device.forceopen.on
This event is emitted when force unlock is activated.
{
"id": "6fc85847-c5e5-4906-9313-f91c2671373b",
"topic": "device.forceopen.on",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"offset": -28800000,
"occurred": 1702686364702
}
}
device.input.dps.closed
This event is emitted when a door position sensor (DPS) changes to a closed state.
{
"id": "87954a55-4dc2-43a3-96b3-5eea7539d1e1",
"topic": "device.input.dps.closed",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"source": "board",
"offset": -28800000,
"occurred": 1702935092894
}
}
device.input.dps.opened
This event is emitted when a door position sensor (DPS) changes to an open state.
{
"id": "1635b200-2506-40fa-8788-b0fce5753282",
"topic": "device.input.dps.opened",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"source": "board",
"offset": -28800000,
"occurred": 1702935299556
}
}
device.input.relay.off
This event is emitted when a device is locked.
{
"id": "e405e549-9f9c-457c-b931-cd412eb725ec",
"topic": "device.input.relay.off",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "2cb383e2-9ba1-4ce0-aa1f-0b9579c441df"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"source": "board",
"offset": 0,
"occurred": 1702683119490
}
}
device.input.relay.on
This event is emitted when a device is unlocked.
{
"id": "ba7ebded-39b9-47f8-af4c-faba67e871d1",
"topic": "device.input.relay.on",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "2cb383e2-9ba1-4ce0-aa1f-0b9579c441df"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"source": "board",
"offset": 0,
"occurred": 1702683118670
}
}
device.input.rex.off
This event is emitted when the request to exit (REX) is deactivated.
{
"id": "858b5b30-5976-492c-9b5c-4d6bf39592c7",
"topic": "device.input.rex.off",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "fec7ddb3-ff86-4ca3-bb96-c4507e740986"
},
"metadata": {
"systemId": "0738b8dg-329a-4d51-88e7-7a48928c4d6f",
"deviceName": "Test Device",
"source": "board",
"offset": 0,
"occurred": 1717435589608
}
}
device.input.rex.on
This event is emitted when the request to exit (REX) is activated.
{
"id": "858b5b30-5976-492c-9b5c-4d6bf39592c7",
"topic": "device.input.rex.on",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "fec7ddb3-ff86-4ca3-bb96-c4507e740986"
},
"metadata": {
"systemId": "0738b8dg-329a-4d51-88e7-7a48928c4d6f",
"deviceName": "Test Device",
"source": "board",
"offset": 0,
"occurred": 1717435589608
}
}
device.input.virtualread
This event is emitted when a credential scan is emulated on a device (e.g. when opening a device using a software button).
{
"id": "4490db37-d8d6-4f1a-8f6b-e33ee71b3b73",
"topic": "device.input.virtualread",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"holderId": "9233910e-7b89-4983-8804-14449a3e1919",
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac"
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
}
}
device.request.allowed
This event is emitted when a holder is recognized and granted access.
{
"id": "90163e3c-a31f-4bc5-9f6f-88eea9fc5b6c",
"topic": "device.request.allowed",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "1bf7a641-4b1b-4d6c-9c57-818e7515575d",
"holderId": "8129a254-dc3d-419f-b7e9-4ad772afd23f",
"requestFactor": "CARD_ONLY",
"facilityCode": "123"
},
"metadata": {
"systemId": "2b6c14b2-ce6d-4109-ab4e-b95a65b048d3",
"deviceName": "Test Device",
"holderName": "John Wiegand",
"source": "board",
"rules": [],
"offset": -14400000,
"occurred": 1710201553630
}
}
device.request.denied
This event is emitted when a holder is recognized but denied access.
{
"id": "5eb5923e-b1f6-4fa9-b0a7-b5237d27555d",
"topic": "device.request.denied",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac",
"holderId": "9233910e-7b89-4983-8804-14449a3e1919",
"explicit": false,
"requestFactor": null
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"holderName": "John Wiegand",
"offset": -28800000,
"occurred": 1702686969933
}
}
device.request.duress
This event is emitted when a holder enters a duress PIN.
{
"id": "29bf313f-bb22-4c30-adb2-9bfdc7070869",
"topic": "device.request.duress",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "0c4d79ef-a385-4502-ga20-760185872fe0",
"holderId": "967bbb09-8028-416d-9a7b-de84d0879a05"
},
"metadata": {
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f",
"deviceName": "Test Device",
"holderName": "John Weigand",
"source": "board",
"rules": [],
"offset": 0,
"occurred": 1717446380506
}
}
device.request.ecard.allowed
This event is emitted when access is granted using an emergency card. Since emergency cards can be used while a system is offline, these events may be delayed.
{
"id": "a742cbfb-82g8-43c4-b17f-63a700742652",
"topic": "device.request.ecard.allowed",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "f202914g-72f7-456e-9a91-753602184a5e",
"cardNumber": "1234567",
"facilityCode": "123"
},
"metadata": {
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f",
"deviceName": "Test Device",
"offset": 0,
"occurred": 1717453316120
}
}
device.request.ecard.denied
This event is emitted when access is denied using an emergency card. Since emergency cards can be used while a system is offline, these events may be delayed.
{
"id": "a742cbfb-82g8-43c4-b17f-63a700742652",
"topic": "device.request.ecard.denied",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "f202914g-72f7-456e-9a91-753602184a5e",
"cardNumber": "1234567",
"facilityCode": "123"
},
"metadata": {
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f",
"deviceName": "Test Device",
"occurred": 1717453316120,
"offset": 0
}
}
device.request.found
This event is emitted when a holder is recognized.
{
"id": "c97256db-3d18-46b9-a4d9-18eea111ed8a",
"topic": "device.request.found",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac",
"holderId": "9233910e-7b89-4983-8804-14449a3e1919",
"requestFactor": null
},
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"deviceName": "Test Device",
"holderName": "John Wiegand",
"offset": -28800000,
"occurred": 1702686969896
}
}
device.request.filtered
This event is emitted when a credential is denied due to facility code filtering.
{
"id": "dddd79f5-07fc-5feb-8b8a-4168e8a79cb7",
"topic": "device.request.filtered",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "f202924b-72f8-446e-9a01-753702184a5e",
"cardNumber": "1234567",
"facilityCode": "123"
},
"metadata": {
"systemId": "0738b8df-329a-4d50-89f7-7a48928c4d6f",
"deviceName": "Test Device",
"source": "board",
"occurred": 1721682203190,
"offset": 0,
"rules": []
}
}
device.request.multiallowed
This event is emitted when a holder is granted access after multiple sequential scans. This behavior may be used to configure other actions, such as activating or deactivating an alarm system.
{
"id": "473aa822-7193-4029-b60f-bd74bc15ded9",
"topic": "device.request.multiallowed",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "1bf7a641-4b1b-4d6c-9c57-818e7515575d",
"holderId": "8129a254-dc3d-419f-b7e9-4ad772afd23f",
"facilityCode": "123",
"count": 2
},
"metadata": {
"systemId": "2b6c14b2-ce6d-4109-ab4e-b95a65b048d3",
"deviceName": "Test Device",
"holderName": "John Wiegand",
"source": "board",
"rules": [],
"offset": -14400000,
"occurred": 1710201718780
}
}
device.request.unknown
This event is emitted when a credential is presented but the holder is not recognized.
{
"id": "d081bcb7-413a-470b-accc-33c29af28a64",
"topic": "device.request.unknown",
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"body": {
"deviceId": "1bf7a641-4b1b-4d6c-9c57-818e7515575d",
"facilityCode": "123"
},
"metadata": {
"systemId": "2b6c14b2-ce6d-4109-ab4e-b95a65b048d3",
"deviceName": "Test Device",
"offset": -14400000,
"occurred": 1710201648035
}
}