Skip to main content
Version: 2.0

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"
}
PropertyTypeDescription
idStringThe subscription ID.
nameStringThe subscription name.
urlStringThe URL that will receive POST requests when events occur.
scopeString 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.
authenticationObjectAn object describing the authentication mechanism.
authentication.typeStringThe authentication type. Possible values include None and Basic.
authentication.userStringThe authentication user. This only applies if authentication.type is set to Basic.
authentication.passwordStringThe authentication password. This only applies if authentication.type is set to Basic.
eventsString[]A list of events that will trigger notifications.
activeBooleanWhether the subscription is active.
sslVerificationBooleanWhether the SSL certificate of the target host will be checked.
secrecyLevelIntegerThe 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).
expiresAtStringAn ISO 8601 timestamp representing the time at which this subscription's active status will be set to false.
userIdStringThe ID of the user that created the subscription.
odometerIntegerThe total number of notifications that have been sent by this subscription.
secretStringThe 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"
]
}
ParameterLocationTypeRequiredDescription
organization_idPathStringYesThe organization ID.
id_tokenHeaderStringYesA valid ID token.
nameBodyStringYesThe subscription name. The maximum length is 70 characters.
urlBodyStringYesThe URL that will receive POST requests when events occur. HTTPS protocol is required.
scopeBodyString or String[]YesThe 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.
authenticationBodyObjectYesAn object describing the authentication mechanism.
authentication.typeBodyStringYesThe authentication type. Possible values include None and Basic.
authentication.userBodyStringSometimesThe authentication user. This is required if authentication.type is set to Basic.
authentication.passwordBodyStringSometimesThe authentication password. This is required if authentication.type is set to Basic.
eventsBodyString[]YesA list of events that should trigger notifications.
activeBodyBooleanNoWhether the subscription should be active. The default value is true.
sslVerificationBodyBooleanNoWhether 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.
secrecyLevelBodyIntegerNoThe 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.
expiresAtBodyStringNoAn 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.
secretBodyStringNoThe 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}}
ParameterLocationTypeRequiredDescription
organization_idPathStringYesThe organization ID.
subscription_idPathStringYesThe subscription ID.
id_tokenHeaderStringYesA 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
}
ParameterLocationTypeRequiredDescription
organization_idPathStringYesThe organization ID.
subscription_idPathStringYesThe subscription ID.
id_tokenHeaderStringYesA valid ID token.
nameBodyStringYesThe subscription name. The maximum length is 70 characters.
urlBodyStringYesThe URL that will receive POST requests when events occur. HTTPS protocol is required.
scopeBodyString or String[]YesThe 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.
authenticationBodyObjectYesAn object describing the authentication mechanism.
authentication.typeBodyStringYesThe authentication type. Possible values include None and Basic.
authentication.userBodyStringSometimesThe authentication user. This is required if authentication.type is set to Basic.
authentication.passwordBodyStringSometimesThe authentication password. This is required if authentication.type is set to Basic.
eventsBodyString[]YesA list of events that should trigger notifications.
activeBodyBooleanYesWhether the subscription should be active.
sslVerificationBodyBooleanYesWhether 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.
secrecyLevelBodyIntegerYesThe 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).
expiresAtBodyStringNoAn 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.
secretBodyStringNoThe 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}}
ParameterLocationTypeRequiredDescription
organization_idPathStringYesThe organization ID.
subscription_idPathStringYesThe subscription ID.
id_tokenHeaderStringYesA 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}}
ParameterLocationTypeRequiredDescription
organization_idPathStringYesThe organization ID.
id_tokenHeaderStringYesA 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
}
}