For the complete documentation index, see llms.txt. This page is also available as Markdown.

Webhooks

These API endpoints allow you to manage Webhooks.

To learn more about Webhooks' payload and when to expect them see Integration > WABA Webhook extension chapter

get

Webhook sent by WhatsApp Business API to your endpoint(s)

Only admin Users can see a list of all Users WABA Webhooks. Other Users receive a list of one element of their own WABA Webhook (if configured).

This resource describes configuration of webhook sent from WhatsApp Business API / WhatsApp to one of your apps (or systems). WhatsApp Business API itself allows you to integrate only one webhook. With our API you can set up multiple per-user webhooks.

See Integration chapter to learn more about per-user webhooks.

Authorizations
AuthorizationstringRequired

A user token, sent as Token <token>. Create a user in the admin panel (group App integration) and get its token from POST /api/v1/auth/token/. The channel API key (D360-Api-Key) is not supported.

Query parameters
limitintegerOptional

Number of results to return per page.

offsetintegerOptional

The initial index from which to return the results.

Responses
200Success
application/json
countintegerRequiredExample: 123
nextstring · uri · nullableOptionalExample: http://api.example.org/accounts/?offset=400&limit=100
previousstring · uri · nullableOptionalExample: http://api.example.org/accounts/?offset=200&limit=100
get/api/v1/webhooks/waba/
GET /api/v1/webhooks/waba/ HTTP/1.1
Host: your-stack.inbox.getchat.360dialog.io/
Authorization: Token YOUR_TOKEN
Accept: */*
200Success
{
  "count": 123,
  "next": "http://api.example.org/accounts/?offset=400&limit=100",
  "previous": "http://api.example.org/accounts/?offset=200&limit=100",
  "results": [
    {
      "id": 1,
      "user": {
        "id": 1,
        "username": "text",
        "url": "https://example.com"
      },
      "url": "https://example.com",
      "on_incoming_message": true,
      "on_outgoing_message": true,
      "on_assigned": true,
      "on_message_echo": true,
      "headers": null
    }
  ]
}
post

One user can have multiple WABA Webhook configs, for example:

[{
    "id": 1,
    "user": {"id": 23, "username": "string", "url": "string"},
    "url": "http://example.com",
    "on_incoming_message": true,
    "on_outgoing_message": false,
    "on_assigned": false
}, {
    "id": 2,
    "user": {"id": 23, "username": "string", "url": "string"},
    "url": "http://example.com",
    "on_incoming_message": false,
    "on_outgoing_message": true,
    "on_assigned": false,
    "headers": {}
}, {
    "id": 3,
    "user": {"id": 23, "username": "string", "url": "string"},
    "url": "http://example.com",
    "on_incoming_message": false,
    "on_outgoing_message": false,
    "on_assigned": true,
    "headers": {"Authorization": "Token 8aeb44f5a318542d32bb13019d68198467ee21f0"}
}]

or you can have following webhooks:

After this webhook is created, WABA webhooks are propagated to your URL starting from next webhook.

See WABA Webhook section to learn more how propagation works.

Authorizations
AuthorizationstringRequired

A user token, sent as Token <token>. Create a user in the admin panel (group App integration) and get its token from POST /api/v1/auth/token/. The channel API key (D360-Api-Key) is not supported.

Body
idintegerRead-onlyRequired
urlstring · uriRequired

Remember to use https:// URLs for your webhooks!

Note: You can validate Webhook events by specifying a shared secret as a query parameter when you set the Webhook URL. Example: https://url?auth={shared_secret}.

on_incoming_messagebooleanOptional

Call this Webhook on every new Message coming from WhatsApp to Inbox.
This is how WhatsApp webhooks are called.

on_outgoing_messagebooleanOptional

Call this Webhook on every new Message sent from Inbox to WhatsApp.
You should use this setting when integrating a system in which you want to have complete copies of all your conversations.

on_assignedbooleanOptional

Call this Webhook when existing Chat is assigned to this User or a new Message is posted to the Chat already assigned to this User.

You should set this when integrating a bot with this Webhook.
This is similar to how human Users are notified by desktop notifications.

on_message_echobooleanOptional

Call this Webhook when a message is sent from your WhatsApp Business number via the 360dialog messaging API, outside the Inbox.
The webhook receives the original Cloud API "message_echoes" payload, so your integration can keep a complete copy of the conversation. Messages sent through the Inbox API are not echoed here - use "on outgoing message" for those.

headersanyOptional

Additional headers needed when calling a Webhook. Each header needs to be provided as a key-value pair in JSON format.
Useful for things like API keys with Authorization or other headers.

Example: {"Authorization": "Token 1234567890qwertyuiop"}

Responses
201Success
application/json
idintegerRead-onlyRequired
urlstring · uriRequired

Remember to use https:// URLs for your webhooks!

Note: You can validate Webhook events by specifying a shared secret as a query parameter when you set the Webhook URL. Example: https://url?auth={shared_secret}.

on_incoming_messagebooleanOptional

Call this Webhook on every new Message coming from WhatsApp to Inbox.
This is how WhatsApp webhooks are called.

on_outgoing_messagebooleanOptional

Call this Webhook on every new Message sent from Inbox to WhatsApp.
You should use this setting when integrating a system in which you want to have complete copies of all your conversations.

on_assignedbooleanOptional

Call this Webhook when existing Chat is assigned to this User or a new Message is posted to the Chat already assigned to this User.

You should set this when integrating a bot with this Webhook.
This is similar to how human Users are notified by desktop notifications.

on_message_echobooleanOptional

Call this Webhook when a message is sent from your WhatsApp Business number via the 360dialog messaging API, outside the Inbox.
The webhook receives the original Cloud API "message_echoes" payload, so your integration can keep a complete copy of the conversation. Messages sent through the Inbox API are not echoed here - use "on outgoing message" for those.

headersanyOptional

Additional headers needed when calling a Webhook. Each header needs to be provided as a key-value pair in JSON format.
Useful for things like API keys with Authorization or other headers.

Example: {"Authorization": "Token 1234567890qwertyuiop"}

post/api/v1/webhooks/waba/
POST /api/v1/webhooks/waba/ HTTP/1.1
Host: your-stack.inbox.getchat.360dialog.io/
Authorization: Token YOUR_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 140

{
  "url": "https://example.com",
  "on_incoming_message": true,
  "on_outgoing_message": true,
  "on_assigned": true,
  "on_message_echo": true,
  "headers": null
}
201Success
{
  "id": 1,
  "user": {
    "id": 1,
    "username": "text",
    "url": "https://example.com"
  },
  "url": "https://example.com",
  "on_incoming_message": true,
  "on_outgoing_message": true,
  "on_assigned": true,
  "on_message_echo": true,
  "headers": null
}
get

Create WABA Webhook for this user (currently logged in user)

Authorizations
AuthorizationstringRequired

A user token, sent as Token <token>. Create a user in the admin panel (group App integration) and get its token from POST /api/v1/auth/token/. The channel API key (D360-Api-Key) is not supported.

Path parameters
idintegerRequired

A unique integer value identifying this WABA webhook.

Responses
200Success
application/json
idintegerRead-onlyRequired
urlstring · uriRequired

Remember to use https:// URLs for your webhooks!

Note: You can validate Webhook events by specifying a shared secret as a query parameter when you set the Webhook URL. Example: https://url?auth={shared_secret}.

on_incoming_messagebooleanOptional

Call this Webhook on every new Message coming from WhatsApp to Inbox.
This is how WhatsApp webhooks are called.

on_outgoing_messagebooleanOptional

Call this Webhook on every new Message sent from Inbox to WhatsApp.
You should use this setting when integrating a system in which you want to have complete copies of all your conversations.

on_assignedbooleanOptional

Call this Webhook when existing Chat is assigned to this User or a new Message is posted to the Chat already assigned to this User.

You should set this when integrating a bot with this Webhook.
This is similar to how human Users are notified by desktop notifications.

on_message_echobooleanOptional

Call this Webhook when a message is sent from your WhatsApp Business number via the 360dialog messaging API, outside the Inbox.
The webhook receives the original Cloud API "message_echoes" payload, so your integration can keep a complete copy of the conversation. Messages sent through the Inbox API are not echoed here - use "on outgoing message" for those.

headersanyOptional

Additional headers needed when calling a Webhook. Each header needs to be provided as a key-value pair in JSON format.
Useful for things like API keys with Authorization or other headers.

Example: {"Authorization": "Token 1234567890qwertyuiop"}

get/api/v1/webhooks/waba/{id}/
GET /api/v1/webhooks/waba/{id}/ HTTP/1.1
Host: your-stack.inbox.getchat.360dialog.io/
Authorization: Token YOUR_TOKEN
Accept: */*
200Success
{
  "id": 1,
  "user": {
    "id": 1,
    "username": "text",
    "url": "https://example.com"
  },
  "url": "https://example.com",
  "on_incoming_message": true,
  "on_outgoing_message": true,
  "on_assigned": true,
  "on_message_echo": true,
  "headers": null
}
put

Update a WhatsApp webhook: its URL, the events it is called for, and its headers.

Authorizations
AuthorizationstringRequired

A user token, sent as Token <token>. Create a user in the admin panel (group App integration) and get its token from POST /api/v1/auth/token/. The channel API key (D360-Api-Key) is not supported.

Path parameters
idintegerRequired

A unique integer value identifying this WABA webhook.

Body
idintegerRead-onlyRequired
urlstring · uriRequired

Remember to use https:// URLs for your webhooks!

Note: You can validate Webhook events by specifying a shared secret as a query parameter when you set the Webhook URL. Example: https://url?auth={shared_secret}.

on_incoming_messagebooleanOptional

Call this Webhook on every new Message coming from WhatsApp to Inbox.
This is how WhatsApp webhooks are called.

on_outgoing_messagebooleanOptional

Call this Webhook on every new Message sent from Inbox to WhatsApp.
You should use this setting when integrating a system in which you want to have complete copies of all your conversations.

on_assignedbooleanOptional

Call this Webhook when existing Chat is assigned to this User or a new Message is posted to the Chat already assigned to this User.

You should set this when integrating a bot with this Webhook.
This is similar to how human Users are notified by desktop notifications.

on_message_echobooleanOptional

Call this Webhook when a message is sent from your WhatsApp Business number via the 360dialog messaging API, outside the Inbox.
The webhook receives the original Cloud API "message_echoes" payload, so your integration can keep a complete copy of the conversation. Messages sent through the Inbox API are not echoed here - use "on outgoing message" for those.

headersanyOptional

Additional headers needed when calling a Webhook. Each header needs to be provided as a key-value pair in JSON format.
Useful for things like API keys with Authorization or other headers.

Example: {"Authorization": "Token 1234567890qwertyuiop"}

Responses
200Success
application/json
idintegerRead-onlyRequired
urlstring · uriRequired

Remember to use https:// URLs for your webhooks!

Note: You can validate Webhook events by specifying a shared secret as a query parameter when you set the Webhook URL. Example: https://url?auth={shared_secret}.

on_incoming_messagebooleanOptional

Call this Webhook on every new Message coming from WhatsApp to Inbox.
This is how WhatsApp webhooks are called.

on_outgoing_messagebooleanOptional

Call this Webhook on every new Message sent from Inbox to WhatsApp.
You should use this setting when integrating a system in which you want to have complete copies of all your conversations.

on_assignedbooleanOptional

Call this Webhook when existing Chat is assigned to this User or a new Message is posted to the Chat already assigned to this User.

You should set this when integrating a bot with this Webhook.
This is similar to how human Users are notified by desktop notifications.

on_message_echobooleanOptional

Call this Webhook when a message is sent from your WhatsApp Business number via the 360dialog messaging API, outside the Inbox.
The webhook receives the original Cloud API "message_echoes" payload, so your integration can keep a complete copy of the conversation. Messages sent through the Inbox API are not echoed here - use "on outgoing message" for those.

headersanyOptional

Additional headers needed when calling a Webhook. Each header needs to be provided as a key-value pair in JSON format.
Useful for things like API keys with Authorization or other headers.

Example: {"Authorization": "Token 1234567890qwertyuiop"}

put/api/v1/webhooks/waba/{id}/
PUT /api/v1/webhooks/waba/{id}/ HTTP/1.1
Host: your-stack.inbox.getchat.360dialog.io/
Authorization: Token YOUR_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 140

{
  "url": "https://example.com",
  "on_incoming_message": true,
  "on_outgoing_message": true,
  "on_assigned": true,
  "on_message_echo": true,
  "headers": null
}
200Success
{
  "id": 1,
  "user": {
    "id": 1,
    "username": "text",
    "url": "https://example.com"
  },
  "url": "https://example.com",
  "on_incoming_message": true,
  "on_outgoing_message": true,
  "on_assigned": true,
  "on_message_echo": true,
  "headers": null
}
delete

Deletes WABA Webhook permanently

Authorizations
AuthorizationstringRequired

A user token, sent as Token <token>. Create a user in the admin panel (group App integration) and get its token from POST /api/v1/auth/token/. The channel API key (D360-Api-Key) is not supported.

Path parameters
idintegerRequired

A unique integer value identifying this WABA webhook.

Responses
204

No response body

No content

delete/api/v1/webhooks/waba/{id}/
DELETE /api/v1/webhooks/waba/{id}/ HTTP/1.1
Host: your-stack.inbox.getchat.360dialog.io/
Authorization: Token YOUR_TOKEN
Accept: */*
204

No response body

No content

get

Test the WABA Webhook, by sending a mock "statuses" HTTP POST request to its target url

Authorizations
AuthorizationstringRequired

A user token, sent as Token <token>. Create a user in the admin panel (group App integration) and get its token from POST /api/v1/auth/token/. The channel API key (D360-Api-Key) is not supported.

Path parameters
idintegerRequired

A unique integer value identifying this WABA webhook.

Responses
200

No response body

No content

get/api/v1/webhooks/waba/{id}/test/
GET /api/v1/webhooks/waba/{id}/test/ HTTP/1.1
Host: your-stack.inbox.getchat.360dialog.io/
Authorization: Token YOUR_TOKEN
Accept: */*
200

No response body

No content

Last updated

Was this helpful?