LogoLogo
Become a PartnerStatus Page
  • get started
    • Welcome to 360Dialog
    • Quickstarts
      • Register as a Meta Tech Provider
      • Add a WhatsApp Number
      • Set up Integrated Onboarding
      • Create a Message Template
      • Send a Message
      • (temp title) Getting started as a partner
    • Pricing & Billing
      • Payment Methods for BR: Pix & Boleto
      • Month Closing Invoice (MCI)
    • Get API Access
    • Tech Provider Program
      • Understanding the Meta Tech Provider Program
      • Becoming a Meta Tech Provider: A Step-by-Step Guide
  • MM Lite Beta Program
    • Onboarding
    • Sending Messages
    • Expected Errors & Programming Languages
    • MM Lite Sandbox Testing
      • Sending Messages using MM Lite Sandbox
      • Expected Erros & Programming Languages
  • Partner & Account Management
    • Solutions for Partners
      • Benefits for Partners
      • Partner Hub
      • WABA Management
    • Account Setup & Management
      • Prerequisites and best practices for account creation
      • Account Structure
      • Account Creation
  • Integrations & API Development
    • Webhook Events & Setup
      • Webhook Events (Partner & Messaging API)
      • Webhook Configuration & Management
    • Integration Best Practices
      • Architecture and Security
      • Best Practices for Designing Integrations
        • Design a Stable Webhook Receiving Endpoint
      • Sizing Your Environment Based on Expected Throughput
      • Design a Resilient Message Sending Service
      • Integrated Onboarding
        • Basic Integrated Onboarding
        • Custom Integrated Onboarding
        • Host Your Own Embedded Signup
      • API Key Authentication for the Partner API
  • API Reference
    • Messaging API
    • Messaging Health Status
    • Sandbox (Test API Key)
    • Differences Between Cloud API and On-Premise API for Partners
      • [will be deprecated] Messaging with On-Premise API
    • Partner API
  • WABA Management
    • Managing WABA Accounts
      • Using the Partner Hub to manage Clients and Channels
      • Using the Partner API to manage Clients and Channels
      • Partner Permission to Generate API Key
      • Checking Usage & Statistics
    • Phone Number & Hosting
      • Migrating a Phone Number
        • Migrate number from Meta or alternate BSP to 360Dialog
        • Migrate a phone number to a new WABA
        • Migrate a phone number to a new WABA to change messaging Currency
      • WhatsApp Coexistence
        • Coexistence Onboarding
        • Coexistence Webhooks
      • Hosting type Change (On-premise API to Cloud API)
    • WABA Profile & Compliance
      • Display Name Guidelines
      • WABA Profile Info
      • WABA Policy Enforcement
      • Business Account Verification
    • Partner change (between 360Dialog Partners)
    • WhatsApp Flows
    • Accelerated Onboarding
    • Business Account Verification
  • Messaging
    • Sending & Receiving Messages
      • Conversations
      • Receiving messages
      • Before sending a message
    • Message Types
      • Conversational Components
      • Checklist for Message Broadcasts and Campaigns
      • Text messages
      • Interactive messages
        • Single and Multi Product Messages
        • Location Request Messages
        • Address Messages (India and Singapore only)
      • Contacts & Location Messages
    • Template Messages
      • Template Library
      • Template Elements
      • Sending Template Messages
      • Authentication Templates
        • Zero-Tap Authentication Templates
        • One-Tap Autofill Authentication Templates
        • Copy Code Authentication Templates
      • Catalog Templates
      • Product Card Carousel Templates
      • Single-Product Message Templates
      • Coupon Code Templates
      • Limited-Time Offer Templates
      • Multi-Product Templates
    • Media Messages
      • Upload, retrieve or delete media
    • Messaging Health & Troubleshooting
      • Messaging Limits & Quality Rating
      • Errors While Messaging
      • Messages statuses
  • Commerce & Payments
    • Payments (India Only)
      • Receive WhatsApp Payments via Payments Gateway
      • Receive WhatsApp Payments via Payment Links
      • Order Details Template Message
    • Payments (Singapore Only)
      • Receive WhatsApp Payments via Stripe
    • Products and Catalogs
      • India Businesses: Compliance for Commerce
  • Support & Updates
    • Help & Troubleshooting
      • FAQ
      • Error Code Reference
      • User Support Documentation
        • Tutorials
          • Page How to Troubleshoot Login Issues in the 360dialog Hub
          • How to Report an Issue
          • How to Contact Support
        • How-To Guides
          • Raise a support request
          • Requesting a Status Update for Business Verification
        • Reference
          • Troubleshooting Embedded Signup Issues
          • Commerce Policy Checks for WhatsApp API Access
          • Support Availability & SLAs
          • Incident Issue Prioritization
          • Case Types Table
        • Explanation
          • Why Business Verification Takes Time
          • Why Some Issues Are Not Emergencies
          • Understanding the Support Process
      • Support with Meta
    • Imprint & Data Privacy
    • Product Updates & News
      • How to ensure your Template Messages will be received
      • Integrated Onboarding new look and Campaigns Best Practices
Powered by GitBook
On this page
  • Enable/Disable Multiple Webhooks
  • Get list of configured Webhooks
  • Append additional Webhooks
  • Update properties of an existing webhook
  • Delete a specific webhook configuration by name

Was this helpful?

  1. Integrations & API Development
  2. Webhook Events & Setup

Webhook Configuration & Management

PreviousWebhook Events (Partner & Messaging API)NextIntegration Best Practices

Last updated 7 months ago

Was this helpful?

Multiple Webhooks per Phone Number are only available for Cloud API numbers.

You can attach multiple Webhook URLs to a single phone number. This can be used to manage additional webhooks, enhancing automation and integration capabilities within your systems.

This feature allows integration options but compromises on performance. The more webhooks are attached to a number, the longer messages will take to arrive and be acknowledged, so the overall number performance will be impacted. Make sure to have this in mind when considering utilizing multiple webhooks for a single phone number. Using only one webhook is recommended for high volume accounts.

All destinations will get cloned incoming notifications from the. But, extra webhooks will only get these notifications if the main destination () successfully receives them with 200 success code. See our documentation for .

Each phone number is limited to a maximum of 3 unique webhooks. This limit cannot be increased. You cannot attach multiple webhooks to a full WABA, only to specific phone numbers.

Webhook URLs or headers for Cloud API does not support "_"(underscore) or ":xxxx"(port)in (sub)domain names.

Invalid webhook URL: https://your_webhook.example.com Valid webhook URL: https://yourwebhook.example.com

Invalid webhook URL:https://subdomain.your_webhook.example.com:3000 Valid webhook URL: https://subdomain.yourwebhook.example.com

Enable/Disable Multiple Webhooks

POST https://waba-v2.360dialog.io/multi_webhook

Use this endpoint to enable or disable the Multiple Webhook configuration to a specific phone number.

Headers

Name
Value

Content-Type

application/json

D360-API-KEY*

API Key

Body

Name
Type
Description

enabled*

boolean

Use true to enable or false to disable this configuration.

destinations

object

Optional.

Required to append new webhooks.

name

string

Name of the new webhook.

*Webhook names are case-sensitive, like unique IDs.

url

string

URL of the new webhook. (www.example.com/webhook)

headers

string

"Content-Type": "application/json"

Sample Request

To enable multi-webhook feature and add new destinations.

{
  "enabled": true,
  "destinations": [
    {
      "name": "NewWebhook",
      "url": "https://newwebhook.com",
      "headers": {"Content-Type": "application/json"}
    }
  ]
}

Webhook names are case-sensitive and function like unique IDs. Therefore, a webhook named "webhook" is considered distinct from "WEBhook." The API will only add a new webhook if the <name> provided in the request does not match with any existing configuration.

To enable or disable multi-webhook feature, the destination object is not required:

{
  "enabled": true/false
}

Response

{
    "message": "Operation has been started, please wait several seconds until change is applied"
}
{
    "error": "Invalid json: <details>"
}
or

{
    "error": "Destination with name destination2 already exists"
}

or 

{
    "error": "Destination names must be unique"
}

or

{
    "error": "You cannot add more than 3 destinations"
}
{
    "error": "Operation failed, please retry later or contact support"
}

Get list of configured Webhooks

GET https://waba-v2.360dialog.io/multi_webhook

This endpoint retrieves all configured and additional webhooks.

Headers

Name
Value

Content-Type

application/json

D360-API-KEY*

API Key

Response

{
  "enabled": true,
  "destinations": [
    {
      "name": "Webhook1",
      "url": "https://example.com/webhook1",
      "headers": {"Authorization": "Bearer abc123"}
    }
      {
      "name": "Webhook2",
      "url": "https://example.com/webhook2",
      "headers": {"Authorization": "Bearer abc123"}
    }
  ]
}
{
    "message": "Multi webhook is disabled, use POST to enable it first"
}

Append additional Webhooks

PUT https://waba-v2.360dialog.io/multi_webhook

You can add up to 3 webhooks per phone number. This limit cannot be increased.

Headers

Name
Value

Content-Type

application/json

D360-API-KEY*

API Key

Body

Name
Type
Description

destinations*

object

Required to append new webhooks.

name*

string

Name of the new webhook. *Webhook names are case-sensitive, like unique IDs.

url*

string

URL of the new webhook. (www.example.com/webhook)

headers*

string

D360-API-KEY

Sample Request

Webhook names are case-sensitive, and function like unique IDs. Therefore, a webhook named "webhook" is considered distinct from "WEBhook." The API will only add a new webhook if the <name> provided in the request does not match with any existing configuration.

{
  "destinations": [
    {
      "name": "Webhook2",
      "url": "https://replacedwebhook2.com",
      "headers": {"Authorization": "D360-API-KEY"}
    }
  ]
}

Response

{
    "message": "Operation has been started, please wait several seconds until change is applied"
}
{
    "error": "Invalid json: <details>"
}
or

{
    "error": "Destination with name destination2 already exists"
}

or 

{
    "error": "Destination names must be unique"
}

or

{
    "error": "You cannot add more than 3 destinations"
}
{
    "error": "Operation failed, please retry later or contact support"
}

Update properties of an existing webhook

PATCH https://waba-v2.360dialog.io/multi_webhook

To update properties of an existing webhook, use the endpoint and specify the new webhook configuration in the request payload.

Headers

Name
Value

Content-Type

application/json

D360-API-KEY*

API Key

Body

Name
Type
Description

name*

string

Name of the existing webhook. *Webhook names are case-sensitive, like unique IDs.

url*

string

Updated URL for the existing webhook. (www.example.com/webhook)

headers*

string

D360-API-KEY

Sample Request

Webhook names are case-sensitive, and function like unique IDs. Therefore, "webhook" is considered distinct from "WEBhook". The API will only modify the webhook if the <name> passed in the request is an exact match.

{
  "name": "ExistingWebhook",
  "url": "https://updatedwebhook.com",
  "headers": {"Authorization": "D360-API-KEY"}
}

Sample Response

{
    "message": "Operation has been started, please wait several seconds until change is applied"
}
{
    "error": "Invalid json: <details>"
}
or

{
    "error": "Destination with name destination2 already exists"
}

or 

{
    "error": "Destination names must be unique"
}
{
    "error": "Operation failed, please retry later or contact support"
}

Delete a specific webhook configuration by name

DELETE https://waba-v2.360dialog.io/multi_webhook/{{name}}

To delete a additional webhook, use this endpoint. Remember that if you delete all webhooks, it the system will return an empty response when attempting callbacks.

Headers

Name
Value

Content-Type

application/json

D360-API-KEY*

API Key

Path Sample Request

https://waba-v2.360dialog.io/multi_webhook/Webhook2 >> Name of the webhook

Webhook names are case-sensitive, and function like unique IDs. Therefore, a webhook named "webhook" is considered distinct from "WEBhook". The API will only delete the webhook if the <name> passed in the request is an exact match.

Response

{
    "message": "Operation has been started, please wait several seconds until change is applied"
}
{
    "error": "Operation failed, please retry later or contact support"
}

Use the to retrieve webhook names.

GET request
Best Practices for designing Integrations
connected to the phone number
Messaging API