Verkada's Access Credential webhook events allow you to integrate real-time credential lifecycle changes into your third-party applications.
Each webhook payload includes a Credential Notification Object in the body. Within this object, the data field contains a Credential Event Data Object, which provides detailed information about the credential change. Use the eventType field to identify whether a credential was created, modified, or deleted.
To receive credential webhooks, configure your webhook subscription with the ACCESS_CREDENTIALS scope.
Credential Notification Object
| Attribute | Type | Description |
|---|---|---|
webhook_type | String | "credential-notification" |
webhook_id | String | Verkada defined ID for the credential notification webhook. |
org_id | String | ID of the organization from which the webhook is created. |
created_at | Integer | Time at which the webhook was created. Measured in seconds since the Unix epoch. |
data | Credential Event Data Object | See below. Credential-specific information related to the event. |
Credential Event Data Object
| Attribute | Type | Description |
|---|---|---|
eventType | String | The type of credential event. One of: CREDENTIAL_CREATED, CREDENTIAL_MODIFIED, CREDENTIAL_DELETED. |
timestamp | String | ISO 8601 timestamp of when the credential change occurred (e.g., 2026-02-04T05:43:20+00:00). |
grantorId | String | The ID of the user who initiated the credential change. For SCIM-provisioned changes, this may be the credential holder. |
grantorEmployeeId | String | Employee ID of the user who initiated the change. Empty string if not set. |
grantorExternalId | String | External directory ID of the user who initiated the change. Empty string if not set. |
eventId | String | Unique identifier for this event batch. Use as a deduplication key. |
events | Array of Credential Change Objects | See below. One or more credential changes, all sharing the same eventType. |
Credential Change Object
Each object in the events array describes a single credential change.
| Attribute | Type | Description |
|---|---|---|
userId | String | The ID of the user affected by the credential change. |
employeeId | String | Employee ID of the affected user. Empty string if not set. |
externalId | String | External directory ID of the affected user. Empty string if not set. |
newRecord | Credential Record Object | The credential's current or final state. Always present for all event types. For CREDENTIAL_DELETED, reflects the state at the time of deletion. |
oldRecord | Credential Record Object | The credential's previous state. Usually present for CREDENTIAL_MODIFIED events; may be absent if the prior state was unavailable. Always absent for CREDENTIAL_CREATED and CREDENTIAL_DELETED. |
Credential Record Object
Both newRecord and oldRecord share this structure.
| Attribute | Type | Description |
|---|---|---|
credentialType | String | One of: card, code, license_plate, mfa_code, qr_code, access_method, face. |
credentialId | String | Identifier for the credential. Format varies by type — see Credential Types below. |
credentialDetails | Object | Type-specific detail fields. See Credential Types below. |
Credential Types
Card
Physical access cards with facility and card numbers.
credentialId is the card identifier (alphanumeric string).
| Attribute | Type | Description |
|---|---|---|
active | Boolean | Whether the card is currently active. |
cardStatus | String | One of: active, deactivated, expired, lost. |
cardType | String | Card format (e.g., HID, HID37wFacilityCode, DESFire, PIV). Treat as an opaque string. |
parameters | Object | Card encoding parameters. See Card Parameters below. |
Card Parameters
Fields present in parameters depend on the cardType. Only relevant fields are included — others are omitted.
| Attribute | Type | Description |
|---|---|---|
card_number | Integer | Card number. Present for standard Wiegand-based card types. |
facility_code | Integer | Facility code. Present for card types that support facility codes. |
card_number_hex | String | Hex-encoded card number. Present for DESFire, MiFare, and other hex-based card types. |
fascn | String | Federal Agency Smart Credential Number. Present for FASCN card types. |
guid | String | Globally Unique Identifier. Present for PIV card types. |
Entry Code
Numeric entry codes for keypad access.
credentialId is the PIN value (numeric string).
| Attribute | Type | Description |
|---|---|---|
active | Boolean | Always true if the code exists. |
codeLength | Integer | Length of the entry code. |
License Plate
License plate numbers for vehicle access. Plate numbers are normalized to uppercase with leading/trailing whitespace stripped.
credentialId is the normalized plate number.
| Attribute | Type | Description |
|---|---|---|
active | Boolean | Whether the license plate credential is active. |
MFA Code
Multi-factor authentication codes.
credentialId is the MFA code value (numeric string).
| Attribute | Type | Description |
|---|---|---|
active | Boolean | Always true if the MFA code exists. |
codeLength | Integer | Length of the MFA code. |
QR Code
QR code credentials for access.
credentialId is the QR code value (alphanumeric string).
| Attribute | Type | Description |
|---|---|---|
active | Boolean | Whether the QR code is active. |
encodingType | String | Encoding type. Common values include NONE, VISIT_KEY_BASE_10, VISIT_KEY_BASE_10_110_BIT, GUEST_STRIPPED_BIT_BASE_10. May also contain card format values (e.g., HID) for QR codes that encode card data. |
Access Method
Mobile and wireless access credentials. These are capability toggles, not device-bound instances. Access methods only generate CREDENTIAL_MODIFIED events (they are toggled, not created or deleted).
credentialId is one of: MOBILE, BLUETOOTH, MOBILE-NFC, FACE.
| Attribute | Type | Description |
|---|---|---|
active | Boolean | Whether this access method is enabled. |
Face
Facial recognition credentials.
credentialId is a system-generated UUID.
| Attribute | Type | Description |
|---|---|---|
active | Boolean | Always true if the face credential exists. |
source | String | Source of face data (e.g., mobile_enrollment, new_photo, profile_photo). Treat as an opaque string. |
Event Types
| eventType | newRecord | oldRecord | Description |
|---|---|---|---|
CREDENTIAL_CREATED | Present | Absent | A new credential was assigned to a user. |
CREDENTIAL_MODIFIED | Present | Usually present | An existing credential was updated (e.g., activated, deactivated, or reconfigured). |
CREDENTIAL_DELETED | Present | Absent | A credential was removed. newRecord reflects the credential's state at the time of deletion. |
Example Payloads
Card Created
{
"org_id": "b83ed7b7-5ad6-4f6d-99f6-68412794438b",
"webhook_type": "credential-notification",
"created_at": 1770141800,
"webhook_id": "d91a4e2c-7f3b-4801-abcd-ef9876543210",
"data": {
"eventType": "CREDENTIAL_CREATED",
"timestamp": "2026-02-04T05:43:18+00:00",
"grantorId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"grantorEmployeeId": "EMP001",
"grantorExternalId": "[email protected]",
"eventId": "71a2b3c4-d5e6-4f7a-8b9c-0d1e2f3a4b5c",
"events": [
{
"employeeId": "EMP042",
"externalId": "[email protected]",
"userId": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"newRecord": {
"credentialType": "card",
"credentialId": "00110111100000000011011111",
"credentialDetails": {
"active": true,
"cardStatus": "active",
"cardType": "HID",
"parameters": {
"card_number": 111,
"facility_code": 111
}
}
}
}
]
}
}Card Modified (Deactivated)
{
"org_id": "b83ed7b7-5ad6-4f6d-99f6-68412794438b",
"webhook_type": "credential-notification",
"created_at": 1770141915,
"webhook_id": "e02b5f12-339f-4858-bcc9-6b0ddc6a0ba1",
"data": {
"eventType": "CREDENTIAL_MODIFIED",
"timestamp": "2026-02-04T05:45:13+00:00",
"grantorId": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"grantorEmployeeId": "",
"grantorExternalId": "",
"eventId": "82b3c4d5-e6f7-4a8b-9c0d-1e2f3a4b5c6d",
"events": [
{
"employeeId": "",
"externalId": "",
"userId": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"newRecord": {
"credentialType": "card",
"credentialId": "00110111100000000011011111",
"credentialDetails": {
"active": false,
"cardStatus": "deactivated",
"cardType": "HID",
"parameters": {
"card_number": 111,
"facility_code": 111
}
}
},
"oldRecord": {
"credentialType": "card",
"credentialId": "00110111100000000011011111",
"credentialDetails": {
"active": true,
"cardStatus": "active",
"cardType": "HID",
"parameters": {
"card_number": 111,
"facility_code": 111
}
}
}
}
]
}
}Card Deleted
{
"org_id": "b83ed7b7-5ad6-4f6d-99f6-68412794438b",
"webhook_type": "credential-notification",
"created_at": 1770142000,
"webhook_id": "f13c6a23-8b0c-4963-cdf0-7c1eeda1cb22",
"data": {
"eventType": "CREDENTIAL_DELETED",
"timestamp": "2026-02-04T05:46:38+00:00",
"grantorId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"grantorEmployeeId": "EMP001",
"grantorExternalId": "[email protected]",
"eventId": "93c4d5e6-f7a8-4b9c-0d1e-2f3a4b5c6d7e",
"events": [
{
"employeeId": "EMP042",
"externalId": "[email protected]",
"userId": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"newRecord": {
"credentialType": "card",
"credentialId": "00110111100000000011011111",
"credentialDetails": {
"active": true,
"cardStatus": "active",
"cardType": "HID",
"parameters": {
"card_number": 111,
"facility_code": 111
}
}
}
}
]
}
}Entry Code Created
{
"org_id": "b83ed7b7-5ad6-4f6d-99f6-68412794438b",
"webhook_type": "credential-notification",
"created_at": 1770142100,
"webhook_id": "a24d7b34-9c1d-4a74-ef23-8d2ffeb2dc33",
"data": {
"eventType": "CREDENTIAL_CREATED",
"timestamp": "2026-02-04T05:48:18+00:00",
"grantorId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"grantorEmployeeId": "EMP001",
"grantorExternalId": "[email protected]",
"eventId": "a4d5e6f7-a8b9-4c0d-1e2f-3a4b5c6d7e8f",
"events": [
{
"employeeId": "EMP042",
"externalId": "[email protected]",
"userId": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"newRecord": {
"credentialType": "code",
"credentialId": "123456",
"credentialDetails": {
"active": true,
"codeLength": 6
}
}
}
]
}
}Mobile Access Enabled
{
"org_id": "b83ed7b7-5ad6-4f6d-99f6-68412794438b",
"webhook_type": "credential-notification",
"created_at": 1770142300,
"webhook_id": "b35e8c45-ad2e-4b85-f034-9e3a0fc3ed44",
"data": {
"eventType": "CREDENTIAL_MODIFIED",
"timestamp": "2026-02-04T05:51:38+00:00",
"grantorId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"grantorEmployeeId": "EMP001",
"grantorExternalId": "[email protected]",
"eventId": "b5e6f7a8-b9c0-4d1e-2f3a-4b5c6d7e8f9a",
"events": [
{
"employeeId": "EMP042",
"externalId": "[email protected]",
"userId": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"newRecord": {
"credentialType": "access_method",
"credentialId": "MOBILE",
"credentialDetails": {
"active": true
}
},
"oldRecord": {
"credentialType": "access_method",
"credentialId": "MOBILE",
"credentialDetails": {
"active": false
}
}
}
]
}
}License Plate Created
{
"org_id": "b83ed7b7-5ad6-4f6d-99f6-68412794438b",
"webhook_type": "credential-notification",
"created_at": 1770142600,
"webhook_id": "c46f9d56-be3f-4c96-a145-af4b10d4fe55",
"data": {
"eventType": "CREDENTIAL_CREATED",
"timestamp": "2026-02-04T05:56:38+00:00",
"grantorId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"grantorEmployeeId": "EMP001",
"grantorExternalId": "[email protected]",
"eventId": "c6f7a8b9-c0d1-4e2f-3a4b-5c6d7e8f9a0b",
"events": [
{
"employeeId": "EMP042",
"externalId": "[email protected]",
"userId": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"newRecord": {
"credentialType": "license_plate",
"credentialId": "ABC1234",
"credentialDetails": {
"active": true
}
}
}
]
}
}Face Credential Created
{
"org_id": "b83ed7b7-5ad6-4f6d-99f6-68412794438b",
"webhook_type": "credential-notification",
"created_at": 1770143100,
"webhook_id": "d570ae67-cf40-4da7-b256-b05c21e50f66",
"data": {
"eventType": "CREDENTIAL_CREATED",
"timestamp": "2026-02-04T06:04:58+00:00",
"grantorId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"grantorEmployeeId": "EMP001",
"grantorExternalId": "[email protected]",
"eventId": "d7a8b9c0-d1e2-4f3a-4b5c-6d7e8f9a0b1c",
"events": [
{
"employeeId": "EMP042",
"externalId": "[email protected]",
"userId": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"newRecord": {
"credentialType": "face",
"credentialId": "f9c0d1e2-f3a4-4b5c-6d7e-8f9a0b1c2d3e",
"credentialDetails": {
"active": true,
"source": "profile_photo"
}
}
}
]
}
}Batch: Multiple Cards Deleted
{
"org_id": "b83ed7b7-5ad6-4f6d-99f6-68412794438b",
"webhook_type": "credential-notification",
"created_at": 1770143500,
"webhook_id": "e681bf78-d051-4eb8-c367-c16d32f61a77",
"data": {
"eventType": "CREDENTIAL_DELETED",
"timestamp": "2026-02-04T06:11:38+00:00",
"grantorId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"grantorEmployeeId": "EMP001",
"grantorExternalId": "[email protected]",
"eventId": "e8b9c0d1-e2f3-4a4b-5c6d-7e8f9a0b1c2d",
"events": [
{
"employeeId": "EMP042",
"externalId": "[email protected]",
"userId": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"newRecord": {
"credentialType": "card",
"credentialId": "00110111100000000011011111",
"credentialDetails": {
"active": true,
"cardStatus": "active",
"cardType": "HID",
"parameters": {
"card_number": 111,
"facility_code": 111
}
}
}
},
{
"employeeId": "EMP043",
"externalId": "[email protected]",
"userId": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b",
"newRecord": {
"credentialType": "card",
"credentialId": "10110010000000000011001000",
"credentialDetails": {
"active": true,
"cardStatus": "active",
"cardType": "HID",
"parameters": {
"card_number": 100,
"facility_code": 100
}
}
}
}
]
}
}