Configure webhook endpoints
This integration pattern guides you through the complete process of setting up and managing webhook endpoint configurations in your Kompliant integration.
Prerequisites
Before configuring endpoints, you need an active webhook encryption key. See Webhook Integration Guide to complete that setup first.
Overview
Webhook configurations define the destination URLs for webhook delivery. Each configuration is an HTTPS endpoint registered to your account and identified by a whc_-prefixed ID. Webhook payloads are delivered to all active configurations simultaneously.
The endpoint configuration workflow involves:
- Create one or more webhook endpoint configurations
- Verify your configurations are active
- (Optional) Update an endpoint URL as your infrastructure changes
- (Optional) Delete configurations you no longer need
Each account supports up to 20 active configurations.
Step 1: Create a Webhook Endpoint Configuration
Register an HTTPS endpoint using the webhook.config.create endpoint. See the full request/response reference for parameter details.
Provide your account_id and the destination url. Store the returned config_id — you'll need it to get, update, or delete this configuration later.
URL Requirements
- The URL must start with
https://— plain HTTP is rejected- Each URL must be unique per account — registering the same URL twice returns a
URL_ALREADY_EXISTSerror- URLs are case-sensitive
Understanding Config IDs
Config IDs use the format whc_ followed by a random alphanumeric string (e.g., whc_2K9mPxR7N4jL8hS6TdWfY3). Each ID uniquely identifies a single endpoint configuration for an account.
Step 2: Verify Your Configurations
After creating one or more endpoints, use webhook.config.list to confirm what is registered for your account. See the full request/response reference for details.
The list only includes active configurations — deleted ones are excluded. If no configurations exist, configs returns as an empty array.
You can also retrieve a specific configuration at any time using webhook.config.get with its config_id.
updated_aton New ConfigurationsFor newly created configurations that have never been updated,
updated_atreflects the creation time.
Updating an Endpoint URL
If your endpoint URL changes, use webhook.config.update to update it in place — no need to delete and recreate. See the full request/response reference for details.
The new URL must be unique for your account — you cannot update to a URL already registered under another configuration.
Deleted Configs Cannot Be Updated
Calling update on a deleted configuration returns
ENTITY_NOT_FOUND. Create a new configuration instead.
Deleting a Configuration
Remove a configuration you no longer need using webhook.config.delete See the full request/response reference for details.
Deletion is Permanent
Deleted configurations cannot be restored. The endpoint immediately stops receiving deliveries. If you need to temporarily pause deliveries, consider rotating your webhook key instead of deleting the endpoint configuration.
Configuration Limits
Each account can have a maximum of 20 active configurations. This limit applies to non-deleted configurations only — deleted configs do not count toward the limit.
If you reach the limit, you'll receive a SYSTEM_RULE_VIOLATION / MAX_WEBHOOK_URL_LIMIT error — see webhook.config.create for the full error reference. Delete unused configurations with webhook.config.delete to free up capacity before creating new ones.
Configuration Status Reference
| State | Description | Receives Webhooks? |
|---|---|---|
| Active | Registered and receiving webhook deliveries | ✅ Yes |
| Deleted | Permanently removed, no longer receiving webhooks | ❌ No |
Common Issues and Solutions
Issue: URL Already Registered
Problem: Attempting to create or update to a URL that is already registered for your account. Returns a SYSTEM_RULE_VIOLATION / URL_ALREADY_EXISTS error — see webhook.config.create for the full error reference.
Solution: Use webhook.config.list to find the existing configuration for that URL. Update or delete it as needed, or use a different URL.
Issue: Configuration Not Found
Problem: A config_id returns ENTITY_NOT_FOUND.
Possible causes:
- The
config_idbelongs to a differentaccount_id - The configuration was previously deleted
- The
config_idformat is invalid (must start withwhc_)
Solution: Use webhook.config.list to retrieve valid config_id values for your account.
Issue: Reached the 20-Config Limit
Problem: You cannot create new configurations.
Solution: Call webhook.config.list to review all active configurations, identify ones that are no longer in use, and delete them with webhook.config.delete.
Next Steps
With your endpoint configured, you're ready to:
- Activate your webhook key — See Webhook Integration Guide if you haven't activated a key yet
- Implement decryption in your endpoint handler — See Receiving and Decrypting Webhooks for implementation examples
- Handle webhook events — See Webhook Notifications for the full payload structure and event types
- Monitor delivery — Use webhook.config.list to audit your active endpoints at any time
Updated about 2 months ago