The Basics (Overview)

This document will help you to get started with the basics such as authorization, sending messages and receiving messages to your webhook.

Base URL

The default base URL for the 360dialog WhatsApp API is https://waba.360dialog.io

If you want to send a message using the /v1/messages/ endpoint, you must append the endpoint to your base URL then make the POST request. Below is an example of a full POST request to the resource: https://waba.360dialog.io/v1/messages/

Authorization

Currently, there is only 1 method of authorization available

  • API KEY

Retrieve your API Key

Log into the 360 Client Hub. You will need a valid user account for this.

Once all of the steps from the setup process are successfully completed, you can generate an API Key. When the phone number has the setup status DONE the Generate API Key button will be enabled. Click on the button to display the API Key in your browser.

Each endpoint described later in the docs has to be accessed with HTTP Request +SSL and either with API Key based authorization.

When making POST requests, JSON data specified in the docs has to be sent as POST data payload.

Every request to the needs to be authorized using an API Key authentication. Adding D360-API-KEY in the header with your unique API Key as a value will grant access.

Example for POST request with curl:

curl \
-H "D360-API-KEY: {{your-api-key}}" \
-X POST \
https://{{base-url}}/v1/messages \
-H "Accept: application/json"
...

Example using POSTMAN:

Sending Messages

Use the messages node/messagesto send text messages, media, documents, and message templates to your customers.

You can send messages by making a POST call to the /messages node regardless of message type. The content of the JSON message body differs for each type of message (text, image, etc.). Below is a simple example to send a text message:

POST /v1/messages
{
"recipient_type": "individual",
"to": "whatsapp-id",
"type": "text",
"text": {
"body": "your-message-content"
}
}

Receiving Messages

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}}"
}
}

Now, when a message is sent or received, you will receive a message notification to your webhook URL 😀