Skip to main content

Webhooks API Reference

Webhooks deliver real-time HTTP POST notifications to your endpoint when events occur in your BIK account. Subscribe to message status updates, customer interactions, agent assignments, and store activity across all supported channels.


Getting Started​

How Webhooks Work​

When an event occurs in your account, we send an HTTP POST request to your configured webhook URL with a JSON payload containing event details.

You can configure your webhook in the Webhooks.

Supported Channels​

ChannelDescription
whatsappWhatsApp Business API
emailEmail communications
smsSMS messages
instagramInstagram Direct
messengerFacebook Messenger
rcsRich Communication Services
webpushWeb push notifications

Message Sources​

The owner field indicates where the message originated:

OwnerSourceDescription
AGENTCRMSent by an agent from inbox
MERCHANTCRMSent by merchant from inbox
BOTJourneySent by automated journey
CAMPAIGNCampaignSent via broadcast campaign
TEST_CAMPAIGNCampaignSent via test campaign
DEV_APIDev APISent via Developer API

Payload Structure​

All webhook payloads are JSON arrays:

[{
"eventName": "message-status-update",
"eventInfo": { ... },
"storeId": "your_store_id",
"customerDetails": {
"customerId": 12345678,
"firstName": "John",
"lastName": "Doe"
},
"id": "unique_event_id"
}]

Top-Level Fields​

FieldTypeDescription
eventNamestringEvent type identifier
eventInfoobjectEvent-specific data
storeIdstringYour store/account identifier
customerDetailsobjectCustomer information
idstringUnique webhook event ID

Event Categories​

Online Store Events​

Events triggered by customer activity on your online store.

Event NameDescription
productViewedCustomer viewed a product
addToCartItem added to cart
removeFromCartItem removed from cart
addedToWishlistItem added to wishlist
keywordSearchedCustomer searched for a keyword
usedAPromoCodePromo code applied
orderCancelledOrder was cancelled

Operational Events​

Events related to CRM operations and agent activities.

Event NameDescription
assignedAgentAgent assigned to conversation
reassignedAgentConversation reassigned to another agent
customerCreatedNew customer profile created

Channel Events​

Events related to messaging across channels.

Event NameDescription
message-status-updateMessage status changed (sent/delivered/read/failed)
incomingMessageCustomer sent a message
linkClickedCustomer clicked a link in message
qrbClickedCustomer clicked a quick reply button
optedOutCustomer opted out of messages

Event Reference​

message-status-update​

Triggered when a message status changes.

Status Values: sent, delivered, read, failed

FieldTypeDescription
messageIdstringUnique message identifier
createdAtstringISO 8601 timestamp
channelIdstringChannel: whatsapp, email, sms, instagram, messenger
statusstringMessage status
messagestringMessage content
failureReasonstringFailure reason (null if successful)
ownerstringMessage source (see table above)
ownerIdstringSender identifier
assetValuestringChannel asset (e.g., phone number)
ticketIdstringTicket/conversation ID
templateIdstringTemplate ID (if applicable)
templateCategorystringTemplate category: MARKETING, UTILITY

incoming-message​

Triggered when a customer sends a message.

FieldTypeDescription
messageIdstringUnique message identifier
createdAtstringISO 8601 timestamp
channelIdstringChannel identifier
messagestringMessage text
mediaTypestringMedia type (if applicable)
mediaobjectMedia details (if applicable)
locationobjectLocation data (if applicable)
orderobjectOrder data (if applicable)
referralobjectAd referral data (if applicable)
ownerstringAlways CUSTOMER
ownerIdstringCustomer ID
assetValuestringCustomer phone/email
ticketIdstringTicket ID (null if new conversation)

assignedAgent​

Triggered when an agent is assigned to a conversation.

FieldTypeDescription
assignedAgentIdstringAgent ID
agentNamestringAgent name
ticketIdstringTicket ID
chatSessionIdstringChat session ID
ticketCreatedAtstringTicket creation timestamp
triggeredDatestringAssignment timestamp
timeToAssignnumberSeconds to assignment
nonWorkingHoursSinceCreatednumberNon-working hours elapsed
isWhatsappCallTicketbooleanWhatsApp call ticket flag
merchantLabelNamesarrayApplied labels
aiIntentsarrayDetected customer intents

reassignedAgent​

Triggered when a conversation is reassigned.

FieldTypeDescription
previousAgentIdstringPrevious agent ID
previousAgentNamestringPrevious agent name
newAgentIdstringNew agent ID
newAgentNamestringNew agent name
ticketIdstringTicket ID
triggeredDatestringReassignment timestamp
reasonstringReassignment reason

customerCreated​

Triggered when a new customer is created.

FieldTypeDescription
customerIdstringCustomer ID
createdAtstringCreation timestamp
sourcestringCreation source

optedOut​

Triggered when a recipient opts out of receiving messages.

FieldTypeDescription
templateIdstringTemplate ID that triggered opt-out
userChannelIdstringUser's channel identifier
channelstringMessaging channel
messageIdstringMessage ID
broadcastIdnumberBroadcast campaign ID (if applicable)
eventSourcestringSource of the event

linkClicked​

Triggered when a customer clicks a tracked link in a message.

FieldTypeDescription
messageIdstringOriginal message ID
linkUrlstringURL that was clicked
channelstringMessaging channel
clickedAtstringClick timestamp

qrbClicked​

Triggered when a customer clicks a quick reply button.

FieldTypeDescription
messageIdstringOriginal message ID
buttonIdstringButton identifier
buttonTextstringButton text/label
channelstringMessaging channel

Online Store Events​

These events are triggered by customer activity on your online store.

pageViewed​

FieldTypeDescription
pageUrlstringURL of the viewed page
pageTitlestringTitle of the page
referrerstringReferrer URL

productViewed​

FieldTypeDescription
productIdstringProduct identifier
productNamestringProduct name
productPricenumberProduct price
currencystringPrice currency

addToCart / removeFromCart​

FieldTypeDescription
productIdstringProduct identifier
productNamestringProduct name
quantitynumberQuantity added/removed
pricenumberProduct price

addedToWishlist​

FieldTypeDescription
productIdstringProduct identifier
productNamestringProduct name

keywordSearched​

FieldTypeDescription
keywordstringSearch term
resultsCountnumberNumber of results shown

usedAPromoCode​

FieldTypeDescription
promoCodestringPromo code used
discountAmountnumberDiscount applied

orderCancelled​

FieldTypeDescription
orderIdstringOrder identifier
reasonstringCancellation reason
cancelledAtstringCancellation timestamp

Example Payloads​

Message Sent​

[{
"eventName": "message-status-update",
"eventInfo": {
"messageId": "wamid.HBgMOTE5NjI5NzA4NzgzFQIAERgSMEUxMURBMUY4N0Q1NEZDRDg0AA==",
"createdAt": "2025-12-19T13:00:51.657Z",
"channelId": "whatsapp",
"status": "sent",
"message": "Your order has been confirmed.",
"failureReason": null,
"owner": "BOT",
"ownerId": "journey_123",
"assetValue": "+91XXXXXXXXXX",
"ticketId": "33678570",
"templateId": "order_confirmation",
"templateCategory": "UTILITY"
},
"storeId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"customerDetails": {
"firstName": "John",
"lastName": "Doe",
"customerId": 12345678
},
"id": "7dab423c-46e4-406a-8f50-45221189731b"
}]

Message Delivered​

[{
"eventName": "message-status-update",
"eventInfo": {
"messageId": "wamid.HBgMOTE5NjI5NzA4NzgzFQIAERgSMkUyOUQ5RDhCQUE5NTY0NzYxAA==",
"createdAt": "2025-12-19T13:00:19.020Z",
"channelId": "whatsapp",
"status": "delivered",
"message": "Your order has been confirmed.",
"failureReason": null,
"owner": "BOT",
"ownerId": "journey_123",
"assetValue": "+91XXXXXXXXXX",
"ticketId": "33678570"
},
"storeId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"customerDetails": {
"firstName": "John",
"lastName": "Doe",
"customerId": 12345678
},
"id": "dd7e9f2e-6479-46fd-91ce-1f80f49c6ee9"
}]

Message Read​

[{
"eventName": "message-status-update",
"eventInfo": {
"messageId": "wamid.HBgMOTE5NjI5NzA4NzgzFQIAERgSMkUyOUQ5RDhCQUE5NTY0NzYxAA==",
"createdAt": "2025-12-19T13:00:25.000Z",
"channelId": "whatsapp",
"status": "read",
"message": "Your order has been confirmed.",
"failureReason": null,
"owner": "BOT",
"ownerId": "journey_123",
"assetValue": "+91XXXXXXXXXX",
"ticketId": "33678570"
},
"storeId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"customerDetails": {
"firstName": "John",
"lastName": "Doe",
"customerId": 12345678
},
"id": "7103d05a-c230-499d-a9c6-6aea7b579dbb"
}]

Message Failed​

[{
"eventName": "message-status-update",
"eventInfo": {
"messageId": "wamid.HBgMOTE5NjI5NzA4NzgzFQIAERgSMkUyOUQ5RDhCQUE5NTY0NzYxAA==",
"createdAt": "2025-12-19T13:00:30.000Z",
"channelId": "whatsapp",
"status": "failed",
"message": "Your order has been confirmed.",
"failureReason": "Message failed to send. Recipient phone number not on WhatsApp.",
"owner": "BOT",
"ownerId": "journey_123",
"assetValue": "+91XXXXXXXXXX",
"ticketId": "33678570",
"templateId": "order_confirmation",
"templateCategory": "UTILITY"
},
"storeId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"customerDetails": {
"firstName": "John",
"lastName": "Doe",
"customerId": 12345678
},
"id": "a8f3e2c1-5b4d-4a9e-8c76-2d1f0e9b8c7a"
}]

Incoming Message​

[{
"eventName": "incoming-message",
"eventInfo": {
"messageId": "wamid.HBgMOTE5NjI5NzA4NzgzFQIAEhgWM0VCMDQwQjkwMjRCM0NERkZFMkU5OQA=",
"createdAt": "2025-12-19T13:01:00.000Z",
"channelId": "whatsapp",
"message": "track my order",
"mediaType": null,
"media": null,
"location": null,
"order": null,
"referral": null,
"owner": "CUSTOMER",
"ownerId": "12345678",
"assetValue": "+91XXXXXXXXXX",
"ticketId": null,
"customerId": "12345678"
},
"storeId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"customerDetails": {
"firstName": "John",
"lastName": "Doe",
"customerId": 12345678
},
"id": "98b3fdb0-2a9b-45ab-b006-9cfc9b516344"
}]

Agent Assigned​

[{
"eventName": "assignedAgent",
"eventInfo": {
"assignedAgentId": "235658",
"agentName": "Agent Name",
"ticketId": "33678570",
"chatSessionId": "33678570",
"ticketCreatedAt": "2025-12-19T06:31:42.812Z",
"triggeredDate": "2025-12-19T13:00:17.201552",
"timeToAssign": 23315.108,
"nonWorkingHoursSinceCreated": 0,
"isWhatsappCallTicket": false,
"merchantLabelNames": ["product search", "checkout"],
"aiIntents": ["Product Discovery", "Order Tracking"]
},
"storeId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"customerDetails": {
"customerId": "12345678"
}
}]

Opted Out​

[{
"eventName": "optedOut",
"storeId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"customerId": "6840089",
"eventInfo": {
"templateId": "7rlzTu4LKZpRPHoiROSQ",
"userChannelId": "221036",
"channel": "whatsapp"
},
"channel": "whatsapp",
"messageId": "wamid.HBgMOTE5NDYwMzM2Nzc3FQIAERgSNDRCQTU5NEI1NEE3Mzc3NjBCAA==",
"broadcastId": 174183,
"eventSource": "Campaigns",
"createdAt": "2025-12-19T11:10:32.609Z",
"id": "optedOut-221036"
}]

Security​

Authorization Header​

All webhook requests include an authorization header:

Authorization: Basic <your_authorization_key>
tip

Verify this matches your configured key to authenticate incoming webhooks and reject unauthorized requests.