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.

{
"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"
},
"id": "657b89f675a15cf27984630e",
"name": "Test Customer",
"parent": "652ffcbf02ea38b478122fd6",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9e1cd",
"topic": "organization.created",
"useBluetoothCredentials": true,
"useTouchMobileApp": true,
"user": {
"firstName": "Integration",
"id": "64dbed79b2fbfbcc45754244",
"lastName": "Client"
}
}

organization.deleted​

This event is emitted when an organization is deleted.

{
"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"
},
"id": "657b89f675a15cf27984630e",
"name": "Test Customer",
"parent": "652ffcbf02ea38b478122fd6",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9e1cd",
"topic": "organization.deleted",
"useBluetoothCredentials": true,
"useTouchMobileApp": true,
"user": {
"firstName": "Integration",
"id": "64dbed79b2fbfbcc45754244",
"lastName": "Client"
}
}

organization.updated​

This event is emitted when an organization is updated.

{
"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"
},
"id": "657b89f675a15cf27984630e",
"name": "Test Customer",
"parent": "652ffcbf02ea38b478122fd6",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9e1cd",
"topic": "organization.updated",
"user": {
"firstName": "Integration",
"id": "64dbed79b2fbfbcc45754244",
"lastName": "Client"
}
}

permission.accepted​

This event is emitted when a permission invitation is accepted by the recipient.

{
"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"
},
"email": "james@example.com",
"name": "James Maxwell",
"ou": "656587e46f64ddabb53eced3",
"role": "admin",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9123sdfwef",
"topic": "permission.accepted",
"user": {
"firstName": "Integration",
"id": "64dbed79b2fbfbcc45754244",
"lastName": "Client"
},
"userId": "657b8f5a75a15cf27985688a"
}

permission.created​

This event is emitted when a permission is created.

{
"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"
},
"email": "james@example.com",
"ou": "656587e46f64ddabb53eced3",
"role": "admin",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9123sdfwef",
"topic": "permission.created",
"user": {
"firstName": "Integration",
"id": "64dbed79b2fbfbcc45754244",
"lastName": "Client"
},
"userId": null
}

permission.deleted​

This event is emitted when a permission is deleted.

{
"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"
},
"email": "james@example.com",
"ou": "656587e46f64ddabb53eced3",
"role": "manager",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9123sdfwef",
"topic": "permission.deleted",
"user": {
"firstName": "Integration",
"id": "64dbed79b2fbfbcc45754244",
"lastName": "Client"
},
"userId": "64ee3c69e368d86b65d8a53f"
}

permission.updated​

This event is emitted when a permission is updated.

{
"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"
},
"email": "james@example.com",
"ou": "656587e46f64ddabb53eced3",
"role": "manager",
"systemId": "661e34a1-8924-4a49-b1b1-ad350cb9123sdfwef",
"topic": "permission.updated",
"user": {
"firstName": "Integration",
"id": "64dbed79b2fbfbcc45754244",
"lastName": "Client"
},
"userId": "64ee3c69e368d86b65d8a53f"
}

subscription.created​

This event is emitted when a subscription is created.

{
"active": true,
"clientInfo": {
"ipAddress": "123.45.67.8",
"userAgent": "PostmanRuntime/7.43.4"
},
"events": ["subscription.created", "subscription.updated", "subscription.deleted"],
"expiresAt": null,
"id": "681915502626a0fa4f403d45",
"name": "Test Subscription",
"odometer": 0,
"originalScope": "recursive",
"ou": "652ffcbf02ea38b478122fd6",
"scope": [],
"secrecyLevel": 1,
"sslVerification": true,
"status": {
"code": "CREATED",
"timestamp": "2025-05-05T19:45:20.116Z"
},
"topic": "subscription.created",
"type": "multi-site",
"url": "https://example.com",
"user": {
"firstName": "Integration",
"id": "64dbed79b2fbfbcc45754244",
"lastName": "Client"
}
}

subscription.deleted​

This event is emitted when a subscription is deleted.

{
"active": true,
"clientInfo": {
"ipAddress": "123.45.67.8",
"userAgent": "PostmanRuntime/7.43.4"
},
"deleted": "2025-05-05T22:17:26.691Z",
"events": ["subscription.created", "subscription.updated", "subscription.deleted"],
"id": "681915502626a0fa4f403d45",
"name": "Test Subscription",
"odometer": 1,
"ou": "652ffcbf02ea38b478122fd6",
"scope": "recursive",
"secrecyLevel": 1,
"sslVerification": true,
"status": {
"code": "CREATED",
"timestamp": "2025-05-05T19:45:20.116Z"
},
"topic": "subscription.deleted",
"type": "multi-site",
"url": "https://example.com",
"user": {
"firstName": "Integration",
"id": "64dbed79b2fbfbcc45754244",
"lastName": "Client"
}
}

subscription.updated​

This event is emitted when a subscription is updated.

{
"clientInfo": {
"ipAddress": "123.45.67.8",
"userAgent": "PostmanRuntime/7.43.4"
},
"id": "681915502626a0fa4f403d45",
"name": "Test Subscription",
"ou": "652ffcbf02ea38b478122fd6",
"scope": "recursive",
"topic": "subscription.updated",
"url": "https://example.com",
"user": {
"firstName": "Integration",
"id": "64dbed79b2fbfbcc45754244",
"lastName": "Client"
}
}

System Events​

cardformat.created​

This event is emitted when a card format is created.

{
"body": {
"id": "c4926d2f-b2a4-4529-bc18-a4a907d7cc98",
"name": "Test Card Format",
"schema": {
"default_max_bits": 512,
"default_min_bits": 9,
"type": "js"
},
"standard": false
},
"id": "7ef98a20-33c5-4f5c-b1c1-0504d3125594",
"metadata": {
"occurred": 1702681620163,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "cardformat.created"
}

cardformat.deleted​

This event is emitted when a card format is deleted.

{
"body": {
"id": "c4926d2f-b2a4-4529-bc18-a4a907d7cc98",
"name": "Test Card Format",
"schema": {
"default_max_bits": 512,
"default_min_bits": 9,
"type": "js"
},
"standard": false
},
"id": "2baca4ef-865b-4c22-b168-863f718cc5d9",
"metadata": {
"occurred": 1702681645188,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "cardformat.deleted"
}

cloudnode.created​

This event is emitted when a cloud node is created.

{
"body": {
"cardFormat": {
"facility_code": "NOT_ENFORCED",
"id": "12cc2a68-97a5-47f0-9dbe-7eef4b0d53c6",
"max_input_bits": 64,
"min_input_bits": 9
},
"created": "2023-12-15T23:00:03.122Z",
"id": "f41697ab-b50d-487a-9f2b-6616ec3ac959",
"name": "Test Cloud Node",
"serialNumber": "1234ABC",
"timezone": "UTC"
},
"id": "a2e97374-3fe2-41e0-85fa-f348385b1ca7",
"metadata": {
"occurred": 1702681203357,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "cloudnode.created"
}

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": {
"cardFormat": {
"description": "Standard 26-bit Format",
"facility_code": "NOT_ENFORCED",
"id": "12cc2a68-97a5-47f0-9dbe-7eef4b0d53c6",
"max_input_bits": 64,
"min_input_bits": 9
},
"created": "2023-12-15T23:00:03.122Z",
"id": "f41697ab-b50d-487a-9f2b-6616ec3ac959",
"killTimer": 259200,
"locale": "en",
"name": "Test Cloud Node",
"offlinePolicy": 1,
"serialNumber": "1234ABC",
"timezone": "UTC"
},
"metadata": {
"occurred": 1702681297269,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
}
}

cloudnode.updated​

This event is emitted when a cloud node is updated.

{
"body": {
"cloudNodeId": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"newState": {
"timezone": "US/Eastern"
},
"prevState": {
"timezone": "UTC"
}
},
"id": "648f8b61-bcb5-4a16-9379-5bc0a45e18f8",
"metadata": {
"cloudNodeName": "Test Cloud Node",
"occurred": 1702685942103,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "cloudnode.updated"
}

connection.created​

This event is emitted when a controller connection is created.

{
"body": {
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"name": "Test Cloud Node",
"serialNumber": "1234ABC"
},
"created": "2023-12-15T23:20:19.660Z",
"dhcp": true,
"id": "82362705-6fa1-40ac-9e0c-a12af2e86ca4",
"ipv6Address": "fe80::5e85:7eff:fe60:dfa",
"macAddress": "5c:85:7e:60:0d:fa",
"manufacturer": "PDK",
"name": "pdk-board[5c:85:7e:60:0d:fa].local",
"port": 10001,
"protocol": "IPv6",
"type": "ethernet"
},
"id": "28019af3-b706-416f-9cd2-ad11d2a4d619",
"metadata": {
"occurred": 1702682419671,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "connection.created"
}

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": {
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"name": "Test Cloud Node",
"serialNumber": "1234ABC"
},
"created": "2023-12-15T23:20:19.660Z",
"dhcp": true,
"id": "82362705-6fa1-40ac-9e0c-a12af2e86ca4",
"ipv4Address": "",
"ipv6Address": "fe80::5e85:7eff:fe60:dfa",
"macAddress": "5c:85:7e:60:0d:fa",
"manufacturer": "PDK",
"name": "Test Connection",
"port": 10001,
"protocol": "IPv6",
"type": "ethernet"
},
"metadata": {
"occurred": 1702682944463,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
}
}

connection.updated​

This event is emitted when a controller connection is updated.

{
"body": {
"connectionId": "82362705-6fa1-40ac-9e0c-a12af2e86ca4",
"newState": {
"ipv4Address": "",
"name": "Test Connection"
},
"prevState": {
"name": "pdk-board[5c:85:7e:60:0d:fa].local"
}
},
"id": "480a0e4f-459d-4b1b-9d9d-7905609ab063",
"metadata": {
"connectionName": "pdk-board[5c:85:7e:60:0d:fa].local",
"occurred": 1702682467692,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "connection.updated"
}

credential.created​

This event is emitted when a credential is created.

{
"body": {
"description": null,
"facilityCode": null,
"holder": {
"firstName": "John",
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"lastName": "Wiegand"
},
"id": "9041f62b-891f-44ae-8ce8-e0641fc7decd",
"credentialNumber": null,
"types": ["touch", "token"]
},
"id": "cebb67b9-c2a4-49f1-b076-ac158cbdf006",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "credential.created"
}

credential.deleted​

This event is emitted when a credential is deleted.

{
"body": {
"credentialNumber": null,
"description": null,
"facilityCode": null,
"holder": {
"firstName": "John",
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"lastName": "Wiegand"
},
"id": "9041f62b-891f-44ae-8ce8-e0641fc7decd",
"types": ["touch", "token"]
},
"id": "7c251f85-d369-4698-a9e9-8cfb7cee04cc",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "credential.deleted"
}

credential.updated​

This event is emitted when a credential is updated.

{
"body": {
"description": null,
"facilityCode": null,
"holder": {
"firstName": "John",
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"lastName": "Wiegand"
},
"id": "9041f62b-891f-44ae-8ce8-e0641fc7decd",
"credentialNumber": null,
"types": ["touch", "token"]
},
"id": "51beba62-e7e3-4fcb-9706-70fbb18b4874",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "credential.updated"
}

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": {
"autoOpenAfterFirstAllow": false,
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"name": "Test Cloud Node",
"serialNumber": "1234ABC"
},
"connection": {
"created": "2023-12-15T23:20:19.660Z",
"dhcp": true,
"id": "82362705-6fa1-40ac-9e0c-a12af2e86ca4",
"ipv6Address": "fe80::5e85:7eff:fe60:dfa",
"macAddress": "5c:85:7e:60:0d:fa",
"manufacturer": "PDK",
"name": "Test Connection",
"port": 10001,
"protocol": "IPv6",
"type": "ethernet"
},
"created": "2023-12-15 23:20:19",
"delay": 0,
"dps": false,
"dwell": 30,
"forcedAlarm": false,
"id": "38bddc54-c129-4d02-ab5e-f0b617a4304d",
"inputTypes": ["wiegand", "unencryptedOsdp", "encryptedOsdp"],
"name": "Test Device",
"osdpAddress": 0,
"partition": [
{
"default": true,
"id": "19e1b959-63ae-4170-a002-19f8223164b2",
"name": "Default"
}
],
"port": 1,
"propAlarm": false,
"propDelay": 0,
"publicIcon": "swingingDoor",
"reader": null,
"readerType": "standard",
"rex": false,
"type": "primaryReader"
},
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
}
}

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": {
"autoOpenAfterFirstAllow": false,
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"name": "Test Cloud Node",
"serialNumber": "1234ABC"
},
"connection": {
"id": "82362705-6fa1-40ac-9e0c-a12af2e86ca4",
"name": "Test Connection",
"type": "ethernet"
},
"created": "2023-12-15 23:20:19",
"delay": 0,
"dps": false,
"dwell": 30,
"forcedAlarm": false,
"id": "38bddc54-c129-4d02-ab5e-f0b617a4304d",
"inputTypes": ["wiegand", "unencryptedOsdp", "encryptedOsdp"],
"name": "Test Device",
"osdpAddress": 0,
"port": 1,
"propAlarm": false,
"propDelay": 0,
"publicIcon": "swingingDoor",
"reader": null,
"readerType": "standard",
"rex": false,
"type": "primaryReader"
},
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
}
}

device.updated​

This event is emitted when a device is updated.

{
"body": {
"deviceId": "38bddc54-c129-4d02-ab5e-f0b617a4304d",
"newState": {
"name": "New Device Name"
},
"prevState": {
"name": "Old Device Name"
}
},
"id": "7e7cad76-a938-4259-ab08-cdd90456680f",
"metadata": {
"deviceName": "Old Device Name",
"occurred": 1702682531901,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "device.updated"
}

floorgroup.activated​

This event is emitted when an elevator floor group is activated.

{
"body": {
"floorGroupId": "c3a6501d-b162-4c9e-92b4-b472f466cc76",
"readerId": "df4f9aa2-e316-482c-9e96-8b4b353d27d1"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "19898067-6cb5-4d7b-b76e-e9c8d433d954",
"metadata": {
"occurred": 1717445830157,
"offset": 0,
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f"
},
"topic": "floorgroup.activated"
}

floorgroup.created​

This event is emitted when an elevator floor group is created.

{
"body": {
"floors": [
{
"id": "78be2ef1-9389-4ca7-8f1b-87e95547a5ab",
"name": "Test Floor Relay",
"type": "floorRelay"
}
],
"id": "81acdcb7-ac0c-4f05-bba9-732a43d95e1b",
"name": "Test Floor Group",
"partition": "19e1b959-63ae-4170-a002-19f8223164b2",
"readerPort": {
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"name": "Test Cloud Node",
"serialNumber": "1234ABC"
},
"id": "f2cdf521-59aa-4b5f-8c24-3cd16839aa5e",
"name": "Test Elevator",
"type": "elevatorReader"
}
},
"id": "92f9aeb1-7aca-4c30-b421-d9ddc111a32a",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "floorgroup.created"
}

floorgroup.deleted​

This event is emitted when an elevator floor group is deleted.

{
"body": {
"floors": [
{
"id": "bca9ac2c-c277-4d6e-b169-7aecc2fb41a4",
"name": "Floor Relay"
}
],
"id": "ec0b2558-24cc-40d4-892f-3e3f6d8f6f52",
"name": "Floor Group",
"partition": "19e1b959-63ae-4170-a002-19f8223164b2",
"readerPort": {
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"name": "Test Cloud Node",
"serialNumber": "1234ABC"
},
"id": "ed7696a9-8418-424f-bc33-8f38e56815e0",
"name": "Elevator"
}
},
"id": "9ada15bd-5552-480d-843c-3b060a31d399",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "floorgroup.deleted"
}

floorgroup.updated​

This event is emitted when an elevator floor group is updated.

{
"body": {
"floorGroupId": "7331da5a-6f9f-4ee3-9ead-2d79e90d09f8",
"newState": {
"name": "New Floor Group Name"
},
"prevState": {
"name": "Old Floor Group Name"
}
},
"id": "610ddb38-467b-4477-9384-174e38e01a5e",
"metadata": {
"floorGroupName": "Old Floor Group Name",
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "floorgroup.updated"
}

group.created​

This event is emitted when a group is created.

{
"body": {
"id": "4284ea83-6fe5-4391-98bb-08fd74fd5e26",
"name": "Test Group",
"partition": "19e1b959-63ae-4170-a002-19f8223164b2"
},
"id": "22ffb9e7-b5d6-47da-8009-69d252bf00dc",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "group.created"
}

group.deleted​

This event is emitted when a group is deleted.

{
"body": {
"id": "4284ea83-6fe5-4391-98bb-08fd74fd5e26",
"name": "Test Group",
"partition": "19e1b959-63ae-4170-a002-19f8223164b2"
},
"id": "aeffe83c-1ad8-4a28-bc7f-2fccf55d5b04",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "group.deleted"
}

group.updated​

This event is emitted when a group is updated.

{
"body": {
"groupId": "4284ea83-6fe5-4391-98bb-08fd74fd5e26",
"newState": {
"name": "New Test Group Name"
},
"prevState": {
"name": "Old Test Group Name"
}
},
"id": "b0b67e5f-44c5-4f48-bf7b-6294698d026b",
"metadata": {
"groupName": "Old Test Group Name",
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "group.updated"
}

holder.created​

This event is emitted when a holder is created.

{
"body": {
"email": null,
"enabled": true,
"firstName": "John",
"id": "15839957-3c87-4c65-b5bd-6b766e99c70d",
"lastName": "Wiegand",
"partition": "19e1b959-63ae-4170-a002-19f8223164b2"
},
"id": "64b0abff-3b9b-470b-ba76-8200bac7c0f4",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "holder.created"
}

holder.deleted​

This event is emitted when a holder is deleted.

{
"body": {
"email": null,
"enabled": false,
"firstName": "John",
"groups": [],
"id": "15839957-3c87-4c65-b5bd-6b766e99c70d",
"lastName": "Wiegand",
"partition": "19e1b959-63ae-4170-a002-19f8223164b2"
},
"id": "ed0fb1a0-3e09-405f-9f32-9e93158e697d",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "holder.deleted"
}

holder.updated​

This event is emitted when a holder is updated.

{
"body": {
"holderId": "15839957-3c87-4c65-b5bd-6b766e99c70d",
"newState": {
"enabled": false
},
"prevState": {
"enabled": true
}
},
"id": "46d64420-ce20-4015-b69a-2e84d55e9716",
"metadata": {
"holderName": "John Wiegand",
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "holder.updated"
}

partition.created​

This event is emitted when a partition is created.

{
"body": {
"id": "540e939e-43b3-4eeb-94bf-a932d46bdf7a",
"name": "Test Partition"
},
"id": "5ef3035c-e06e-4bac-94e6-e4bdeb108a85",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "partition.created"
}

partition.deleted​

This event is emitted when a partition is deleted.

{
"body": {
"devices": [],
"id": "540e939e-43b3-4eeb-94bf-a932d46bdf7a",
"name": "Test Partition",
"users": []
},
"id": "f145090f-5f31-464f-a274-5113ecb425a5",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "partition.deleted"
}

partition.updated​

This event is emitted when a partition is updated.

{
"body": {
"newState": {
"name": "New Test Partition Name"
},
"partitionId": "540e939e-43b3-4eeb-94bf-a932d46bdf7a",
"prevState": {
"name": "Old Test Partition Name"
}
},
"id": "79ac34c0-c5e9-4567-8e02-7b10b6b02a4d",
"metadata": {
"occurred": 1702683884780,
"partitionName": "Old Test Partition Name",
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "partition.updated"
}

rule.antipassback.violation​

This event is emitted when an anti-passback violation occurs.

{
"body": {
"cardNumber": "1234567",
"deviceId": "f202914a-72g7-456e-9a91-753602184a5e",
"groupIds": [],
"holderId": "967bbb06-8029-416d-9a7b-de84d0779a05",
"ruleIds": ["721df9a0-08aa-4195-8628-50aa82051fd3"]
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "166e7498-e2ed-4a5b-8a17-50d75f465c49",
"metadata": {
"deviceName": "Test Device",
"holderName": "John Weigand",
"occurred": 1717426870388,
"offset": 0,
"systemId": "0738b9df-329a-4d50-88e7-7a48928c4d6f"
},
"topic": "rule.antipassback.violation"
}

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": {
"allow": true,
"authenticationPolicy": "cardOrPin",
"devices": [
{
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"name": "Test Cloud Node",
"serialNumber": "1234ABC"
},
"id": "10366cc1-313e-48e7-989b-ac9fcc0a973e",
"name": "Test Device"
}
],
"id": "1988a58c-f8fe-4851-af0e-4ed1836761c9",
"holder": {
"firstName": "John",
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"lastName": "Wiegand"
},
"recurring": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
"startTime": "00:00",
"stopTime": "24:00",
"type": "access"
},
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
}
}

rule.deleted​

This event is emitted when a rule is deleted.

{
"body": {
"allow": false,
"devices": [
{
"cloudNode": {
"id": "f0986131-5b52-45f5-82f0-6ee501fabb36",
"name": "Test Cloud Node",
"serialNumber": "1234ABC"
},
"id": "10366cc1-313e-48e7-989b-ac9fcc0a973e",
"name": "Test Device"
}
],
"holder": {
"firstName": "John",
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"lastName": "Wiegand"
},
"id": "1988a58c-f8fe-4851-af0e-4ed1836761c9",
"recurring": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
"startTime": "00:00",
"stopTime": "24:00",
"type": "access"
},
"id": "88a66bf9-d947-414d-b386-0793ddcbdc62",
"metadata": {
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "rule.deleted"
}

rule.updated​

This event is emitted when a rule is updated.

{
"body": {
"newState": {
"allow": false
},
"prevState": {
"allow": true,
"authenticationPolicy": "cardOrPin"
},
"ruleId": "1988a58c-f8fe-4851-af0e-4ed1836761c9"
},
"id": "09df04a0-2fcd-49b0-b3a1-eff99034e878",
"metadata": {
"holder": {
"firstName": "John",
"id": "9233910e-7b89-4983-8804-14449a3e1919",
"lastName": "Wiegand"
},
"occurred": 1702683884780,
"userId": "64dbed79b2fbfbcc45754244",
"userName": "Integration Client"
},
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82",
"topic": "rule.updated"
}

Cloud Node Events​

cloudnode.connected​

This event is emitted when the network connection to a cloud node is restored.

{
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"ip": "100.64.127.247",
"online": true,
"timestamp": "2023-12-15T23:23:20Z",
"topic": "cloudnode.connected"
}

cloudnode.disconnected​

This event is emitted when the network connection to a cloud node is lost.

{
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"ip": "100.64.95.250",
"online": false,
"timestamp": "2023-11-14T07:08:46Z",
"topic": "cloudnode.disconnected"
}

controller.alarm.comloss.off​

This event is emitted when communication with a controller is restored.

{
"body": {
"address": "",
"connectionId": "b19a10b7-edd2-4fac-a29c-123c2dee3987"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "584fb9c2-8f68-47d5-aeaa-5591feeffd8d",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1702683110942,
"offset": 0,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "controller.alarm.comloss.off"
}

controller.alarm.comloss.on​

This event is emitted when communication with a controller is lost.

{
"body": {
"address": "",
"connectionId": "60d65adb-15e3-407c-8ca3-40ccc353fea2"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "7762f021-9efa-45bd-8df0-3785e63e958b",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1710203495112,
"offset": -14400000,
"systemId": "2b6c14b2-ce6d-4109-ab4e-b95a65b048d3"
},
"topic": "controller.alarm.comloss.on"
}

controller.input.lp.off​

This event is emitted when a controller exits low power mode.

{
"body": {
"address": "",
"connectionId": "14aa0b4b-108b-4443-a41a-d71210200efc"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "eb0e9fc1-de14-4079-83d1-7c3c38fa0728",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1702937660205,
"offset": -28800000,
"source": "board",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "controller.input.lp.off"
}

controller.input.lp.on​

This event is emitted when a controller enters low power mode.

{
"body": {
"address": "",
"connectionId": "14aa0b4b-108b-4443-a41a-d71210200efc"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "39f133a6-9e0e-499f-88e3-5c5ad7978f6f",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1702937636006,
"offset": -28800000,
"source": "board",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "controller.input.lp.on"
}

controller.input.pb.connected​

This event is emitted when a battery is connected to a controller.

{
"body": {
"address": "",
"connectionId": "558bef58-e9bc-43d3-80f5-d4e609cebd55"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "aa3baab4-610g-480f-85bf-2453466fd99a",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1717446672700,
"offset": 0,
"source": "board",
"systemId": "0738b8dg-329a-4d50-87e7-7a48928c4d6f"
},
"topic": "controller.input.pb.connected"
}

controller.input.pb.disconnected​

This event is emitted when a battery is disconnected from a controller.

{
"body": {
"address": "",
"connectionId": "558bef58-e9bc-43d3-80f5-d4e609cebd55"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "aa3baab4-610g-480f-85bf-2453466fd99a",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1717446672700,
"offset": 0,
"source": "board",
"systemId": "0738b8dg-329a-4d50-87e7-7a48928c4d6f"
},
"topic": "controller.input.pb.disconnected"
}

controller.input.pb.status​

This event is emitted when updated information about a controller's battery status is available.

{
"body": {
"address": "",
"batteryLevel": 100,
"chargeCategory": "G",
"connectionId": "e13aeeaf-c2c3-4a27-a662-a34deacd7b17",
"current": 0,
"time": 0
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "37130eb7-56d8-46fd-a31a-5ca9dad504a8",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1717442456325,
"offset": 0,
"source": "board",
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f"
},
"topic": "controller.input.pb.status"
}

controller.input.pi.off​

This event is emitted when input power is disconnected from a controller.

{
"body": {
"address": "",
"connectionId": "e13aeeaf-c2c2-4a27-a662-a34deacd7b17"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "dd15dfa3-014f-47ec-9349-4d5bd6951f93",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1717442456325,
"offset": 0,
"source": "board",
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f"
},
"topic": "controller.input.pi.off"
}

controller.input.pi.on​

This event is emitted when input power is connected to a controller.

{
"body": {
"address": "",
"connectionId": "e13aeeaf-c2c2-4a27-a662-a34deacd7b17"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "dd15dfa3-014f-47ec-9349-4d5bd6951f93",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1717442456325,
"offset": 0,
"source": "board",
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f"
},
"topic": "controller.input.pi.on"
}

controller.input.pi.status​

This event is emitted when updated information about a controller's input power is available.

{
"body": {
"address": "",
"connectionId": "e13aeeag-c2c2-4a27-a662-a34deacd7b17",
"current": 0,
"inputPowerOn": false,
"voltage": 0
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "30beca44-12fg-40c2-9109-71eeb533f83d",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1717442456325,
"offset": 0,
"source": "board",
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f"
},
"topic": "controller.input.pi.status"
}

controller.input.po.absent​

This event is emitted when an overcurrent is no longer detected on a controller.

{
"body": {
"address": "",
"connectionId": "14aa0b4b-108b-4443-a41a-d71210200efc"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "75103871-2c48-4b69-b4ec-53c76f52b519",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1702937600437,
"offset": -28800000,
"source": "board",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "controller.input.po.absent"
}

controller.input.po.present​

This event is emitted when an overcurrent is detected on a controller.

{
"body": {
"address": "",
"connectionId": "14aa0b4b-108b-4443-a41a-d71210200efc"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "2f8bab14-0bf3-4856-ae6c-b1f868899e77",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1702937569898,
"offset": -28800000,
"source": "board",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "controller.input.po.present"
}

controller.input.time.unknown.enter​

This event is emitted if the real-time clock (RTC) is not set when a controller boots.

{
"body": {
"address": "",
"connectionId": "e13aeeag-c2c2-4a27-a662-a34deacd7b17"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "3b308657-6a98-4682-b06b-5b76e0f547b3",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1717430776423,
"offline": true,
"offset": 0,
"source": "board",
"systemId": "0738b8df-329a-4d50-88e7-7a48928c4d6f"
},
"topic": "controller.input.time.unknown.enter"
}

controller.input.time.unknown.exit​

This event is emitted when a controller's real-time clock (RTC) is updated.

{
"body": {
"address": "",
"connectionId": "e13aeeag-c2c2-4a27-a662-a34deacd7b17"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "3b308657-6a98-4682-b06b-5b76e0f547b3",
"metadata": {
"connectionName": "Test Connection",
"occurred": 1717430776423,
"offline": true,
"offset": 0,
"source": "board",
"systemId": "0738b8df-329a-4d50-88e7-7a48928c4d6f"
},
"topic": "controller.input.time.unknown.exit"
}

device.alarm.circuitbreaker.off​

This event is emitted when a controller's relay circuits stabilize.

{
"body": {
"deviceId": "fec7ddb3-ff84-4ca3-bb96-c4507e740986",
"source": "B"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "00af2d2g-37ba-42de-8916-84fc5d2295c5",
"metadata": {
"deviceName": "Test Device",
"occurred": 1717194426571,
"offset": 0,
"systemId": "0738b8dg-329a-4d50-88e8-7a48928c4d6f"
},
"topic": "device.alarm.circuitbreaker.off"
}

device.alarm.circuitbreaker.on​

This event is emitted when a controller's relay circuits become unstable (e.g. due to loose wires).

{
"body": {
"deviceId": "fec7ddb2-ff84-4ca3-bb96-c4507e740986",
"source": "A"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "e55e1e9d-2a08-416d-bfd4-092813373da2",
"metadata": {
"deviceName": "Test Device",
"occurred": 1717194012723,
"offset": 0,
"systemId": "0738b8dg-329a-4d51-88e7-7a48928c4d6f"
},
"topic": "device.alarm.circuitbreaker.on"
}

device.alarm.forced​

This event is emitted when a device equipped with a door position sensor (DPS) is forced open.

{
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "0bd675be-4991-4e80-847d-104daa8e4cbd",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702935299636,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.alarm.forced"
}

device.alarm.forced.cleared​

This event is emitted when a forced alarm has cleared.

{
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "13341594-8957-4821-b928-a07dbc27149f",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702935492298,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.alarm.forced.cleared"
}

device.alarm.propped.alloff​

This event is emitted when prop alarms are cleared for all devices.

{
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "9f2e2b24-0e9e-41e5-a6a3-a50da46e8a24",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702935447354,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.alarm.propped.alloff"
}

device.alarm.propped.off​

This event is emitted when a prop alarm has cleared for a device.

{
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "99b04ce8-ca2d-433e-9883-f9ff5cf75d62",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702935447334,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.alarm.propped.off"
}

device.alarm.propped.on​

This event is emitted when a device equipped with a door position sensor (DPS) is propped open.

{
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "0cdd388a-20b4-43bb-8505-f762f40a5c2a",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702935300598,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.alarm.propped.on"
}

device.autoopen.off​

This event is emitted when auto open is deactivated.

{
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac",
"ruleId": null
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "9d99c5ee-1db6-425e-a9d9-7f64b3457689",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702949461044,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.autoopen.off"
}

device.autoopen.on​

This event is emitted when auto open is activated.

{
"body": {
"aoscan": false,
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac",
"ruleId": "f71e5941-3a16-4023-9baf-9e4df0e2af8b"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "a267ce58-b3d0-4818-950d-39d33aaa34dd",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702945680386,
"offset": -28800000,
"ruleName": "Test Auto Open Rule",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.autoopen.on"
}

device.autoopen.override.off​

This event is emitted when an auto open override is deactivated.

{
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "efe67400-a2a8-498c-bd69-f592b43ac592",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702949821030,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.autoopen.override.off"
}

device.autoopen.override.on​

This event is emitted when an auto open override is activated.

{
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "1ffc2002-4e33-4bc9-a518-2f6aa79a25b2",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702949811854,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.autoopen.override.on"
}

device.forceclose.off​

This event is emitted when do not disturb (DND) is deactivated.

{
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "be3bd335-a1a9-483b-8d2c-709338833ad9",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702686364700,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.forceclose.off"
}

device.forceclose.on​

This event is emitted when do not disturb (DND) is activated.

{
"body": {
"deviceId": "1bf7a641-4b1b-4d6c-9c57-818e7515575d"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "cc44dc32-e94e-49b4-bca1-e95bcad80034",
"metadata": {
"deviceName": "Test Device",
"occurred": 1710202312032,
"offset": -14400000,
"systemId": "2b6c14b2-ce6d-4109-ab4e-b95a65b048d3"
},
"topic": "device.forceclose.on"
}

device.forceopen.off​

This event is emitted when force unlock is deactivated.

{
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "42972f24-7b15-47f6-96d2-25cf8af5ebb7",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702686370053,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.forceopen.off"
}

device.forceopen.on​

This event is emitted when force unlock is activated.

{
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "6fc85847-c5e5-4906-9313-f91c2671373b",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702686364702,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.forceopen.on"
}

device.input.dps.closed​

This event is emitted when a door position sensor (DPS) changes to a closed state.

{
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "87954a55-4dc2-43a3-96b3-5eea7539d1e1",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702935092894,
"offset": -28800000,
"source": "board",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.input.dps.closed"
}

device.input.dps.opened​

This event is emitted when a door position sensor (DPS) changes to an open state.

{
"body": {
"deviceId": "8b3fb06f-9740-4b48-918b-facbbf4989b7"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "1635b200-2506-40fa-8788-b0fce5753282",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702935299556,
"offset": -28800000,
"source": "board",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.input.dps.opened"
}

device.input.relay.off​

This event is emitted when a device is locked.

{
"body": {
"deviceId": "2cb383e2-9ba1-4ce0-aa1f-0b9579c441df"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "e405e549-9f9c-457c-b931-cd412eb725ec",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702683119490,
"offset": 0,
"source": "board",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.input.relay.off"
}

device.input.relay.on​

This event is emitted when a device is unlocked.

{
"body": {
"deviceId": "2cb383e2-9ba1-4ce0-aa1f-0b9579c441df"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "ba7ebded-39b9-47f8-af4c-faba67e871d1",
"metadata": {
"deviceName": "Test Device",
"occurred": 1702683118670,
"offset": 0,
"source": "board",
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.input.relay.on"
}

device.input.rex.off​

This event is emitted when the request to exit (REX) is deactivated.

{
"body": {
"deviceId": "fec7ddb3-ff86-4ca3-bb96-c4507e740986"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "858b5b30-5976-492c-9b5c-4d6bf39592c7",
"metadata": {
"deviceName": "Test Device",
"occurred": 1717435589608,
"offset": 0,
"source": "board",
"systemId": "0738b8dg-329a-4d51-88e7-7a48928c4d6f"
},
"topic": "device.input.rex.off"
}

device.input.rex.on​

This event is emitted when the request to exit (REX) is activated.

{
"body": {
"deviceId": "fec7ddb3-ff86-4ca3-bb96-c4507e740986"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "858b5b30-5976-492c-9b5c-4d6bf39592c7",
"metadata": {
"deviceName": "Test Device",
"occurred": 1717435589608,
"offset": 0,
"source": "board",
"systemId": "0738b8dg-329a-4d51-88e7-7a48928c4d6f"
},
"topic": "device.input.rex.on"
}

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).

{
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac",
"holderId": "9233910e-7b89-4983-8804-14449a3e1919"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "4490db37-d8d6-4f1a-8f6b-e33ee71b3b73",
"metadata": {
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.input.virtualread"
}

device.request.allowed​

This event is emitted when a holder is recognized and granted access.

{
"body": {
"deviceId": "1bf7a641-4b1b-4d6c-9c57-818e7515575d",
"facilityCode": "123",
"holderId": "8129a254-dc3d-419f-b7e9-4ad772afd23f",
"requestFactor": "CARD_ONLY"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "90163e3c-a31f-4bc5-9f6f-88eea9fc5b6c",
"metadata": {
"deviceName": "Test Device",
"holderName": "John Wiegand",
"occurred": 1710201553630,
"offset": -14400000,
"rules": [],
"source": "board",
"systemId": "2b6c14b2-ce6d-4109-ab4e-b95a65b048d3"
},
"topic": "device.request.allowed"
}

device.request.denied​

This event is emitted when a holder is recognized but denied access.

{
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac",
"explicit": false,
"holderId": "9233910e-7b89-4983-8804-14449a3e1919",
"requestFactor": null
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "5eb5923e-b1f6-4fa9-b0a7-b5237d27555d",
"metadata": {
"deviceName": "Test Device",
"holderName": "John Wiegand",
"occurred": 1702686969933,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.request.denied"
}

device.request.duress​

This event is emitted when a holder enters a duress PIN.

{
"body": {
"deviceId": "0c4d79ef-a385-4502-ga20-760185872fe0",
"holderId": "967bbb09-8028-416d-9a7b-de84d0879a05"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "29bf313f-bb22-4c30-adb2-9bfdc7070869",
"metadata": {
"deviceName": "Test Device",
"holderName": "John Weigand",
"occurred": 1717446380506,
"offset": 0,
"rules": [],
"source": "board",
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f"
},
"topic": "device.request.duress"
}

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.

{
"body": {
"cardNumber": "1234567",
"deviceId": "f202914g-72f7-456e-9a91-753602184a5e",
"facilityCode": "123"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "a742cbfb-82g8-43c4-b17f-63a700742652",
"metadata": {
"deviceName": "Test Device",
"occurred": 1717453316120,
"offset": 0,
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f"
},
"topic": "device.request.ecard.allowed"
}

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.

{
"body": {
"cardNumber": "1234567",
"deviceId": "f202914g-72f7-456e-9a91-753602184a5e",
"facilityCode": "123"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "a742cbfb-82g8-43c4-b17f-63a700742652",
"metadata": {
"deviceName": "Test Device",
"occurred": 1717453316120,
"offset": 0,
"systemId": "0738b8dg-329a-4d50-88e7-7a48928c4d6f"
},
"topic": "device.request.ecard.denied"
}

device.request.found​

This event is emitted when a holder is recognized.

{
"body": {
"deviceId": "9c4717b8-0269-4c77-89d9-07450a166fac",
"holderId": "9233910e-7b89-4983-8804-14449a3e1919",
"requestFactor": null
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "c97256db-3d18-46b9-a4d9-18eea111ed8a",
"metadata": {
"deviceName": "Test Device",
"holderName": "John Wiegand",
"occurred": 1702686969896,
"offset": -28800000,
"systemId": "8d133373-e4a3-4411-864a-3bd94c789c82"
},
"topic": "device.request.found"
}

device.request.filtered​

This event is emitted when a credential is denied due to facility code filtering.

{
"body": {
"cardNumber": "1234567",
"deviceId": "f202924b-72f8-446e-9a01-753702184a5e",
"facilityCode": "123"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "dddd79f5-07fc-5feb-8b8a-4168e8a79cb7",
"metadata": {
"deviceName": "Test Device",
"occurred": 1721682203190,
"offset": 0,
"rules": [],
"source": "board",
"systemId": "0738b8df-329a-4d50-89f7-7a48928c4d6f"
},
"topic": "device.request.filtered"
}

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.

{
"body": {
"count": 2,
"deviceId": "1bf7a641-4b1b-4d6c-9c57-818e7515575d",
"facilityCode": "123",
"holderId": "8129a254-dc3d-419f-b7e9-4ad772afd23f"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "473aa822-7193-4029-b60f-bd74bc15ded9",
"metadata": {
"deviceName": "Test Device",
"holderName": "John Wiegand",
"occurred": 1710201718780,
"offset": -14400000,
"rules": [],
"source": "board",
"systemId": "2b6c14b2-ce6d-4109-ab4e-b95a65b048d3"
},
"topic": "device.request.multiallowed"
}

device.request.unknown​

This event is emitted when a credential is presented but the holder is not recognized.

{
"body": {
"deviceId": "1bf7a641-4b1b-4d6c-9c57-818e7515575d",
"facilityCode": "123"
},
"cloudNodeId": "91c2a7b7-28e9-4dec-e1f7-9966b1d3ca55",
"cloudNodeSN": "1234ABC",
"id": "d081bcb7-413a-470b-accc-33c29af28a64",
"metadata": {
"deviceName": "Test Device",
"occurred": 1710201648035,
"offset": -14400000,
"systemId": "2b6c14b2-ce6d-4109-ab4e-b95a65b048d3"
},
"topic": "device.request.unknown"
}