Add a new webhook for event notification.
A Webhook (also called a web callback or HTTP push API) is a mechanism that enables an app to provide other applications with real-time information. A webhook URL is generated, which can be used for the integration.
NoteFor detailed information about our APIs and for hands-on testing, refer documentation in API overview and step-by-step guide on making your first API call in Make your first API call .
Prerequisites
- Authentication - Basic or OAuth authentication details
- Access group resource - Write permission on webhook resource group.
Resource information
| URL | /v3/webHooks |
| HTTP method | POST |
| Pagination | NA |
| Rate limit | NA |
| Batch support | NA |
API endpoint example
http://eu.api.capillarytech.com/v3/webHooks
Request body parameters
(Parameters marked with * are mandatory) | Type | Description |
|---|---|---|
active* | Boolean | Indicates if the webhook is active. |
customerIdentifiersToBeEnriched* | Array | List of customer identifiers to be enriched. |
eventNames* | Array | List of event names that trigger the webhook. |
maxAllowedConnections* | Integer | Maximum connections allowed at the same time for this webhook. |
methodType* | String | HTTP method used by the webhook. Example: |
name* | String | Name of the webhook Note: Name of the webhook should be unique. |
slaInSeconds | Integer | Expected delivery time of the event notification in seconds. |
webHookHeaders* | Array | Headers sent with the webhook request. |
| String | Authorization header for authentication. |
| String | Specifies the content, Example: |
webHookType* | String | Type of webhook, Example: |
webHookUrl* | String | URL where the webhook sends its requests. |
curl --location 'http://eu.api.capillarytech.com/v3/webHooks' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic *********' \
--header 'Cookie: _cfuvid=yYsH7ns18uvZ6yJ8YEDgIPw.ZjqHMYsSsHCnY00XLAM-1764052824812-0.0.1.1-604800000' \
--data ' {
"active": true,
"customerIdentifiersToBeEnriched": [],
"eventNames": [
"loyaltyCustomerMerge",
"partnerProgramLinked",
"pointsExpired",
"customerAdded",
"transactionUpdated",
"groupUpdated",
"promisedToCurrentPointsConversion",
"pointsTransferredReceived",
"groupMemberRemoved",
"groupCreated",
"partnerProgramUpdated",
"pointsIssued",
"tierDowngradeReminder",
"pointsContributionToGroup",
"CouponRedeem",
"pointsExpiryReminder",
"partnerProgramDelinked",
"CouponIssue",
"tierRenewed",
"tierDowngraded",
"pointsTransferredInitiated",
"customerUpdated",
"tierUpgraded",
"rewardIssued",
"pointsExpiryChange",
"rewardUpdated",
"supplementaryMembershipExpiryReminder",
"singlePointsExpiryUpdated",
"issuedPointsReversed",
"redeemedPointsReversed"
],
"maxAllowedConnections": 10,
"methodType": "POST",
"name": "All_Events_v3",
"slaInSeconds": 150,
"webHookHeaders": {
"Authorization": "Basic Q2FwaWxsYXJ5OklVTmhjR2xzYkdGeWVVQTROekl5",
"Content-Type": "application/json"
},
"webHookType": "HTTP",
"webHookUrl" : "https://eo4qiclzg50n2q8.m.pipedream.net"
}'Response body parameters
Parameter | Type | Description |
|---|---|---|
data | Object | Object containing the webhook configuration details. |
.attribution | Object | Metadata about creation and last update. |
..createdOn | String | Timestamp when the webhook was created. |
..createdOnISO | String | Creation time in ISO format. |
..lastUpdatedOn | String | Timestamp when the webhook was last updated. |
..lastUpdatedOnISO | String | Last updated time in ISO format. |
..lastUpdatedBy | Object | Details of the user who last updated the webhook. |
...id | Integer | Till ID. |
...code | String | Till code. |
...description | String | Description of the user. |
...name | String | Till name |
...type | String | Type of user |
..createdBy | Object | Details of the user who created the webhook. |
...id | Integer | Till ID. |
...code | String | User code. |
...description | String | Details of the user who created the webhook. |
...name | String | User name. |
...type | String | Type of user |
.webHookId | String | Unique identifier of the webhook. |
.name | String | Name of the webhook configuration. |
.eventNames | Array of Strings | List of events the webhook listens to. |
.webHookUrl | String | URL to which webhook events are delivered. |
.webHookType | String | Type of webhook delivery mechanism Example: HTTP |
.methodType | String | HTTP method used to send webhook payload. Example: POST |
.webHookHeaders | Object | Headers included in webhook requests. |
..Authorization | String | Authorization header value. |
..Content-Type | String | Content-Type header value. |
.noOfRetryAttempts | Integer | Number of retry attempts allowed. |
.maxAllowedConnections | Integer | Maximum number of concurrent webhook connections allowed. |
.active | Boolean | Indicates whether the webhook is active. |
.slaInSeconds | Integer | Maximum time expected for webhook processing. |
.consumerGroupId | String | Consumer group identifier for event processing. |
.listenToChildEvents | Boolean | Indicates whether child events are also listened to. |
.tillDetailsEnrichmentEnabled | Boolean | Enables enrichment of till details in the event payload. |
.storeDetailsEnrichmentEnabled | Boolean | Enables store detail enrichment in event payload. |
.customerIdentifiersToBeEnriched | Array | List of customer identifiers to enrich in payload. |
.awardedReferenceEnrichmentEnabled | Boolean | Enables enrichment of awarded reference information. |
.availablePointsBalanceEnrichmentEnabled | Boolean | Enables enrichment of available points balance. |
errors | Object | Contains error details, if any. |
warnings | Object | Contains warning details, if any. |
Sample response
{
"data": {
"attribution": {
"createdOn": "2025-11-25T06:40:06.036+0000",
"createdOnISO": "2025-11-25T06:40:06Z",
"lastUpdatedOn": "2025-11-25T06:40:06.036+0000",
"lastUpdatedOnISO": "2025-11-25T06:40:06Z",
"lastUpdatedBy": {
"id": 75152722,
"code": "divya_doc",
"description": "",
"name": "divya_doc",
"type": "TILL"
},
"createdBy": {
"id": 75152722,
"code": "divya_doc",
"description": "",
"name": "divya_doc",
"type": "TILL"
}
},
"webHookId": "69254f46749e644bc01328c1",
"name": "All_Events_v3",
"eventNames": [
"loyaltyCustomerMerge",
"partnerProgramLinked",
"pointsExpired",
"customerAdded",
"transactionUpdated",
"groupUpdated",
"promisedToCurrentPointsConversion",
"pointsTransferredReceived",
"groupMemberRemoved",
"groupCreated",
"partnerProgramUpdated",
"pointsIssued",
"tierDowngradeReminder",
"pointsContributionToGroup",
"CouponRedeem",
"pointsExpiryReminder",
"partnerProgramDelinked",
"CouponIssue",
"tierRenewed",
"tierDowngraded",
"pointsTransferredInitiated",
"customerUpdated",
"tierUpgraded",
"rewardIssued",
"pointsExpiryChange",
"rewardUpdated",
"supplementaryMembershipExpiryReminder",
"singlePointsExpiryUpdated",
"issuedPointsReversed",
"redeemedPointsReversed"
],
"webHookUrl": "https://eo4qiclzg50n2q8.m.pipedream.net",
"webHookType": "HTTP",
"methodType": "POST",
"webHookHeaders": {
"Authorization": "Basic Q2FwaWxsYXJ5OklVTmhjR2xzYkdGeWVVQTROekl5",
"Content-Type": "application/json"
},
"noOfRetryAttempts": 0,
"maxAllowedConnections": 10,
"active": true,
"slaInSeconds": 150,
"consumerGroupId": "b3bd2ff7-1525-46d0-b855-08bee77209fc",
"listenToChildEvents": false,
"tillDetailsEnrichmentEnabled": false,
"storeDetailsEnrichmentEnabled": false,
"customerIdentifiersToBeEnriched": [],
"awardedReferenceEnrichmentEnabled": false,
"availablePointsBalanceEnrichmentEnabled": false
},
"errors": null,
"warnings": null
}API error codes
| Error Code | Description |
|---|---|
| 51003 | eventNames can not be null |
| 51007 | maxAllowedConnections must be greater than zero |
| 300004 | maxAllowedConnections is missing from the body parameter |
