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


Did this page help you?