Webhook Structure: Version 1.0

This document describes the common payload structure for all webhook events in version 1.0. Each event type includes these standard attributes plus event-specific data.

Default Parameters

All webhook event payloads (version 1.0) include these standard fields after decryption:

ParameterTypeRequiredDescription
versionstringYesThe payload data version. Always 1.0 for this version.
subject_record_idstringYesThe Subject Record identifier associated with this event (format: sr_XXXXX...).
user_contextobjectYesThe user_context parameter defined in the table below.
workflow_idstringNoThe Workflow identifier if this event is associated with a workflow (format: w_XXXXX...). Present for workflow-based events.
workflow_typestringNoOne of WORKFLOW_TYPES .

User Context

The user_context object identifies who or what triggered the event that generated this webhook notification.

ParameterTypeRequiredDescription
user_idstringYesThe identifier of the user or system that triggered the event. Can be an email address (for USER type), API key name (for API_KEY type), or SYSTEM (for automated system actions).
user_typestringYesThe type of user or actor. Must be one of: USER (human user identified by email), API_KEY (automated action via API key), or SYSTEM (automated Kompliant system action without specific user context like scheduled jobs or triggers).

User Context Combinations:

  1. Human User: When a person performs an action through the UI

  2. API Key: When an automated system uses an API key

    • user_id: API key name (e.g., USER API Key 2025-06-05)
    • user_type: API_KEY
  3. System: When Kompliant's internal systems trigger an action

    • user_id: SYSTEM
    • user_type: SYSTEM
    • Examples: Scheduled jobs, automatic provisioning operations, document generation

Event-Specific Attributes

Each event type includes additional attributes beyond these common fields. Refer to the individual event documentation for complete details:

Workflow Events

Subject Record Events

Verification Events

Account Provisioning Events

Decision Document Events

External System Events

Encryption Reminder

Important: The payloads shown in this documentation are decrypted for readability. When you receive webhook notifications at your endpoint, the data field will be encrypted using AES-256-GCM with your active webhook key.

To decrypt incoming webhooks:

  1. Use the key_id from the webhook envelope to identify the correct SharedSecret
  2. Retrieve your stored SharedSecret (from webhook.key.create)
  3. Decrypt the data field using AES-256-GCM
  4. Parse the decrypted JSON to access the payload structure described in this documentation

Refer to the webhook integration guide for implementation examples and code samples.

Next Steps