Client Documentation
Get StartedStatus Page
  • 360Dialog
    • Why you should use 360dialog as Business Solution Provider (BSP)
    • Prices, plans and payment options
  • client hub
    • 360Dialog Client Hub
    • Numbers
      • Manage your WABA
        • Account Statuses
    • Activity
    • Funds
      • Month Closing Invoice (MCI)
    • Payment Management
    • API Keys
    • Template Message Management
    • Partner Change
    • Cancellation
    • Downgrade
  • WhatsApp Marketing
    • Best practices to maintain Account Health and prevent being blocked
    • Driving users to your WhatsApp account
      • WhatsApp Channels
    • Business Search
    • Linking a WABA to a Facebook Page /EN
      • Vinculando uma conta WABA à uma página do Facebook /PT
      • Cómo vincular un WABA a una página de Facebook /ES
    • Linking a WABA to Google Message Ads
    • Ads that Click to WhatsApp (CTWA) /EN
      • Anúncios de Clique para o WhatsApp (CTWA) /PT
        • Como usar o WhatsApp para marketing e vendas? /PT
      • Anuncios que Click to WhatsApp (CTWA) /ES
        • ¿Cómo usar WhatsApp para marketing y ventas? /ES
    • Conversions API (CAPI)
    • Create Ads lookalike audience based on WhatsApp events
    • MM Lite API Beta
      • Onboarding
      • Sending Messages
  • waba basics
    • WhatsApp Business Platform
    • WhatsApp Accounts structure
    • WABA for Government Agencies
    • WABA Policy Enforcement
    • Architecture and Security
    • The Basics (Overview)
    • Webhook Events and Notifications
    • Messaging API
      • Messaging Health Status
      • Step to Step to move to Cloud API
        • [will be deprecated] WABA Integration (On-Premise)
    • Migrating Phone Numbers
      • Migrate number from Meta or alternate BSP to 360dialog Cloud API
      • Migrate a phone number to a new WABA
      • Migrate to alternate BSP
  • waba management
    • Creating new WABA
      • Using a new phone number
      • WhatsApp Coexistence
        • Coexistence Onboarding
        • Coexistence Webhooks
    • Display Name Guidelines
    • Meta Business Verification
    • Official Business Account (OBA) or blue badge
    • WABA Profile Info
    • Capacity, Quality Rating, and Messaging Limits
      • Accelerated Onboarding
    • Hosting type Change
  • waba Messaging
    • Sandbox (Test API Key)
    • Receiving messages
    • Before sending a message
      • Checklist for Message Broadcasts and Campaigns
    • Conversations
    • Messaging
    • Conversational Components
    • Media Messages
      • Upload, retrieve or delete media
    • Template Messages
      • 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
    • Interactive Messages
      • Single and Multi Product Messages
      • Location Request Message
    • Flows
    • Products & Catalogs
    • Contacts and Location Messages
    • 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
  • Partners
    • Partner Documentation
  • Support
    • Help and Support
      • Opening Hours & Response Time
      • Status Pages
      • Meta Support
      • Common Issues
      • How to contact Support
    • Error Messages
    • Imprint & Data Privacy
    • FAQ
Powered by GitBook
On this page
  • Getting started
  • Base URL
  • Prerequisites & Basic Setup
  • 1. Retrieve API Key
  • 2. Set Webhook URL
  • 3. Send a message
  • 4. Receive status updates
  • Blacklisted Endpoints
  • Check Phone Number
  • Healthcheck

Was this helpful?

  1. waba basics
  2. Messaging API
  3. Step to Step to move to Cloud API

[will be deprecated] WABA Integration (On-Premise)

PreviousStep to Step to move to Cloud APINextMigrating Phone Numbers

Last updated 1 year ago

Was this helpful?

As announced in November 2023, Meta is transitioning to a fully Cloud-hosted WhatsApp Business Platform and will stop supporting On-Premise API in October 2025.

Starting from On-Premise client v2.53, all new feature updates will be exclusively delivered to Cloud API. While the On-Premise API client will receive quarterly releases, they will focus solely on bug fixes and security patches. From May 15, 2024, 360dialog will not allow for new numbers to be onboarded with On-Premise API. We will continue supporting already registered On-Premise API throughout 2024, but we strongly recommend to of numbers to Cloud as soon as possible. .

Getting started

As an official Business Solution Provider (BSP), we can host the WhatsApp Business Client and associated stack on our infrastructure on your behalf. You can then access and use the API by calling the endpoints provided. The WhatsApp Business API uses a REST API Architecture with JSON data formats. The API follows the standard HTTP request-response exchange.

For any outgoing actions (like messages sending), you need to use requests to an appropriate endpoints.

  • All these actions are available via different request types that use a combination of 360dialog base URL and an endpoint suffix. E.g. it’s needed to use a POST request to the resource https://waba.360dialog.io/v1/messages/ to send a message.

  • The body of the request to the API will determine what exactly you want to send (text, image, etc.).

  • You need to use an API key received from the client in authorization purposes.

  • A business cannot send a freely composed message first. If business starts a conversation with a user, it should use a template message. Please do not forget about Opt-In requirements.

  • Tip: we can recommend to use Postman as first step instrument to test WABA opportunities.

To receive any information that is not a response to your request to the API (e.g. incoming messages from users) you need to set a webhook address.

  • It should be unique for every WABA number

  • It should return an HTTPS 200 OK response immediately (before any other processing begins)

Base URL

The default base URL for the 360dialog WhatsApp API is https://waba.360dialog.io followed by the path-specific endpoint.

Prerequisites & Basic Setup

1. Retrieve API Key

In order to send requests with the 360dialog On-Premise API, you need an API KEY.

Every API Key is connected with one phone number. We authenticate and choose the right WhatsApp Business Account and Number based on your D360-API-KEY.

Each registered WhatsApp phone number has its own API KEY

Adding D360-API-KEY in the header with your unique API Key as a value is enough to gain permission to send messages in the WhatsApp Business API.

  • Please store and manage your D360-API-KEY securely and use it only for server-2-server authentication.

  • Please ensure that you always use the corresponding D360-API-KEY when you deal with multiple configurations. A mismatch could lead to inconsistent data.

2. Set Webhook URL

To receive notifications for inbound messages and status updates, you must set a webhook URL, that we use as a destination for all notifications belonging to you WhatsApp phone number.

3. Send a message

Send a message using the WhatsApp API.

If this end-user did not message you first, you must start a Business-initiated conversation using a Template message.

4. Receive status updates

You must configure a callback (webhook URL) to receive messages.

Webhooks can be used for:

  • Inbound Message Notifications: Use it to get a notification you when you have received a message.

  • Message Status Notifications: Monitor the status of sent messages.

If a webhook event isn't delivered for any reason (e.g., the client is offline) or if the webhook request returns a HTTP status code other than 200, we retry the webhook delivery. We continue retrying delivery with increasing delays up to a certain timeout (typically 24 hours, though this may vary), or until the delivery succeeds.

Webhook Requirements

To deploy a live webhook that can receive webhook events from the WhatsApp Business API, your code must have the following:

  • HTTPS support

  • A valid SSL certificate

Set your callback URL

Send a POST request to the /v1/configs/webhook endpoint to set the resource.

POST /v1/configs/webhook

{
  "url": "{{your-callback-url}}"
}

Callback URL Header Authentication (Optional)

If the callback URL needs to be authorized by user, USER and PASS should be provided in the header Authorization that contains Basic base64(USER:PASS).

Request body example for USER=testuser and PASS=testpass

{
  "url": "{{your-callback-url}}",
  "headers": {
    "Authorization": "Basic {{token}}"
  }
}

Blacklisted Endpoints

For security reasons you will not be able to access any of the below endpoints. If you need to access any of the below resources, please create a support ticket and, depending on the nature of the request, we will provide some options for you.

Make a GET call to this endpoint to verify the number that is associated with an API Key.

Check Phone Number

GET https://waba.360dialog.io/v1/configs/phone_number

This endpoint returns the registered phone number for a given D360-API-KEY.

Headers

Name
Type
Description

D360-API-KEY

string

Your API KEY

{
    "phone_number": phone_number_string
}
{
    "meta": {
        "success": false,
        "http_code": 401,
        "developer_message": "Invalid api key"
    }
}

Use the health node to check the status of your WhatsApp Business API client.

/health is not available for Cloud API.

Healthcheck

GET https://waba.360dialog.io/v1/health

This endpoint returns the status of your WhatsApp Business API client.

Headers

Name
Type
Description

D360-API-KEY

string

your API KEY

# Single Instance

{
    "health": {
       "gateway_status": "connected | connecting | disconnected | uninitialized | unregistered"
    }
}


# High Availability/Multiconnect

{
    "health": {
      "your-hostname1:your-container-id1": {
          "gateway_status": "connected | connecting | disconnected | uninitialized | unregistered",
          "role": "primary_master | secondary_master | coreapp"
      },
      "your-hostname2:your-container-id2": {
          "gateway_status": "connected | connecting | disconnected | uninitialized | unregistered",
          "role": "primary_master | secondary_master | coreapp"
      },
    }
}
{
    "meta": {
        "success": false,
        "http_code": 401,
        "developer_message": "Invalid api key"
    }
}

The health status is cached and refreshed only every 5 minutes, so do not call the endpoint more than that). If your phone number is disconnected | uninitialized or unregistered - create a ticket with our Support Team and we will assist you to get the number reconnected.

In High Availability mode, only one Coreapp maintains a connection to the WhatsApp server. All other nodes (including the Primary Master) have a gateway_status of disconnected

In Multiconnect mode with X shards, X Coreapps maintain a connection to the WhatsApp server. The Primary Master also connects to the WhatsApp server.

Best practices

When creating a ticket for our support team relating to a number, always include the health check response.

In case you have set a webhook URL as described in step , you will have received a for your test message by now.

(v1/settings/*)except profile info which is allowed

(/v1/certificates/*)

(/v1/account)

(/v1/stats/*|/metrics)

(/v1/support)

(/v1/users/*)

▶ Retrieve API Key
Settings
Certificates
Registration
Stats and metrics
Support
Users
Outbound Message Status Notification
2. Set Webhook URL
start changing the hosting type
Learn here how to integrate with Cloud API
▶ Set Webhook URL
WhatsApp Business Platform On-Premises API - Documentation - Meta for DevelopersMeta for Developers
WhatsApp Business Platform On-Premise API Documentation
Logo
▶ Send A Message