Skip to content

Basics

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

Base URL

CBOT On-Promise API CBOT Cloud API
Ask for URL Ask for URL

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://{OnPremiseURL}/v1/messages
  • https://{CloudUrl}/messages

Authorization

Currently, there is only 1 method of authorization available

API KEY

Retrieve your API Key

Sending Messages

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 {{base-url}}/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 are used for:

  • Inbound message notifications: Use it to get a notification you when you have received a message + message content

  • 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 will 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

Your webhook must respond with status 200 for all incoming requests.

Set your callback URL

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

POST {{base-url}}/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.