Webhooks can be used to receive updates about changes to data and workflow statuses. Use the notifications to initiate subsequent workflows based on these events. When an event occurs, Kompliant will submit a POST request to the customer webhook URL with information about the event.
Customer webhook URLs are provided by the customer and setup by the Kompliant team at the time of initial account configuration. Separate webhook URLs for sandbox and production environments can be provided.
For customers managing multiple partner configurations, each configuration requires its own webhook URL. Since you control the complete URL structure, including query parameters, you can differentiate between configurations by including the partner configuration identifier (partner_id) in the URL - for example, https://yoursite.com/webhooks?partner_id=rockoutpay. This allows your application to route callbacks appropriately based on both the query parameters and the POST payload.
Webhook notifications are sent from one of the following IP addresses. Partners are encouraged to whitelist all of these IP addresses in their applications.
3.230.141.132
35.166.77.7
52.27.236.245
54.86.192.161
Webhook Payload Structure
Webhooks follow a consistent payload structure of including an application_id and event. Two webhook event types (mbtrust_success and mbtrust_failure) include additional event-specific details as outlined below.
Payload
| Parameter | Type | Required | Description |
|---|---|---|---|
| application_id | string | Yes | The business application ID related to this event. |
| event | string | Yes | The type of event that triggered the webhook. |
| id | string | No | Unique identifier for this webhook event (UUID format). |
| event_time | string | No | UTC timestamp when the webhook was sent. |
| details | object | No | Event-specific information (varies by event type). The details parameter is outlined below. |
Details
| Field | Type | Description |
|---|---|---|
subject_record_id | string | The Subject Record ID associated with the provisioning workflow. |
workflow_id | string | The Account-Provisioning workflow ID that contains the operation. |
application_id | integer | The business application ID (same as top-level field). |
mid | string or null | The Merchant ID (MID) if available; null if operation failed or MID not available. |
operation | string | The operation type that completed: ONBOARDING or DOCUMENT_SYNC. |
mbtrust_id | string | The MBTrust entity ID for tracking provisioning activities. |
errors | array | Array of error objects (empty for success events, populated for failure). The error parameter is defined below. |
Error
| Field | Type | Description |
|---|---|---|
code | string | Error code identifying the type of error (e.g., VALIDATION_ERROR, MBTRUST_ALREADY_ONBOARDED_ERROR) |
message | string | Plain text error description explaining what went wrong |
Example: Decision Analytics Completed
{
"event": "decision_analytics_completed",
"application_id": "w_4EiT4WbJdcLPz3buiZNcO8"
}
Example: MBTrust Success
{
"id": "6e6df346-d99e-417d-a7a6-1da22b59c3a8",
"event": "mbtrust_success",
"details": {
"mid": "123456789012345",
"errors": [],
"operation": "ONBOARDING",
"mbtrust_id": "ape_5tTLf3wCc395Q90qefEsI1",
"workflow_id": "w_2BF0odH1yzSFsq2M4GcQhF",
"application_id": "w_4EiT4WbJdcLPz3buiZNcO8",
"subject_record_id": "sr_6N48sDzY7ysrBFJIS4TtuD"
},
"application_id": "w_4EiT4WbJdcLPz3buiZNcO8",
"event_time": "2025-10-17T19:18:58Z"
}
Example: MBTrust Failure
{
"id": "6eb3e150-ae17-470e-aa37-891fda0868f5",
"event": "mbtrust_failure",
"details": {
"mid": "123456789012345",
"operation": "DOCUMENT_SYNC",
"mbtrust_id": "ape_5nee9NSq0ihOimdkIWHPMt",
"workflow_id": "w_56BtTz240JW3pEwHn7ZngD",
"application_id": "ffd9d209-a6c0-49d8-ac13-d8bfce443898",
"subject_record_id": "sr_42Q20s9VQdqwv6Ma98zk8U",
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "Required documents are missing or incomplete"
}
]
},
"application_id": "ffd9d209-a6c0-49d8-ac13-d8bfce443898",
"event_time": "2025-10-17T20:57:25Z"
}