WhatsApp Business API

DecisionTelecom WhatsApp API дозволяє надсилати та отримувати ділові повідомлення WhatsApp у будь-яку країну світу та з неї через API. Кожне повідомлення ідентифікується унікальним випадковим ідентифікатором, тому користувачі можуть перевірити статус повідомлення, використовуючи задану кінцеву точку.

WhatsApp API використовує HTTPS з ключем доступу, який використовується як авторизація API. Корисні дані запитів та відповідей форматуються як JSON за допомогою кодування UTF-8.

API Авторизація - Базовий ключ доступу Base64.

Щоб отримати ключ API, будь ласка, зв'яжіться з вашим менеджером по роботі з клієнтами.

Auth

Basic Auth

$userHashKey = 'User Hash Key provided by your account manager';
	$ch = curl_init('https://web.it-decision.com/v1/api/send-whatsapp');
	curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
	curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
	curl_setopt($ch, CURLOPT_USERPWD, "$userHashKey");
	curl_setopt($ch, CURLOPT_TIMEOUT, 30);
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestParams)); // $requestParams - raquest array with correct data
	curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
	$result = curl_exec($ch);
	curl_close($ch);

API Send WhatsApp message

https://web.it-decision.com/v1/api/send-whatsapp
{
    "source_addr": "Custom Company",             
    "destination_addr": 8882222200,              
    "message_type":1,                   
    "text":"Message content",                     
    "file_url":"https://yourdomain.com/images/image.jpg", // file extension is a mandatory attribute
    "callback_url":"https://yourdomain.com/whatsapp-callback",
    "template_name":"image_tmp_en",               
    "template_params":"{
        "to": "recipient_wa_id",
        "type": "template",
        "template": {
        "namespace": "your-namespace",
        "language": {
          "policy": "deterministic",
          "code": "your-language-and-locale-code"
        },
        "name": "your-template-name",
        "components": [
        {
          "type" : "header",
          "parameters": [
          // The following parameters code example includes several different possible header types, 
          // not all are required for a media message template API call.

          {
          "type": "text",
          "text": "replacement_text"
          }

          // OR

          {
          "type": "image",
          "image": {
            "link": "http(s)://the-url",
            # provider is an optional parameter
            "provider": {
            "name" : "provider-name"
            },
          }
          }
        ]
        // end header
        },
        {
          "type" : "body",
          "parameters": [
          {
            "type": "text",
            "text": "replacement_text"
          },
          {
            // Any additional template parameters
          }
          ] 
          // end body
          },
        ]
        }
    }"
  }

source_addr:

<= 20 chars - from whom the message

destination_addr:

<= 20 chars - to whom the message

message_type:

Type of message to be sent:

1 text message

2 message with media data (jpg, jpeg or png images)

4 message based on registered template

text:

<= 4096 chars - text of WhatsApp message

file_url:

Correct URL with image for media message. Correct file extensions:

jpg or jpeg (mime type is image/jpeg)

png (mime type is image/png)

callback_url:

Correct URL for message status callback

template_name:

Registered template name (only for template message)

template_params:

JSON data of all the necessary parameters to send a template message.

 https://developers.facebook.com/docs/whatsapp/api/messages/message-templates/media-message-templates
{
   "message_id":554	
}

message_id:

Sent message ID

API Receive WhatsApp message:

https://web.it-decision.com/v1/api/receive-whatsapp
{
   "message_id":554	
}

message_id:

The ID of the message whose status you want to get

{
   "message_id":554, 			
   "status":1, 					
}

message_id:

The ID of the message whose status you want to get

status:

Current WhatsApp message status

WhatsApp messages statuses

sent
0

delivered

1

rejected

2

error

3

failed

4

deleted

5

pending

6

seen

7

Errors

name
Too Many Requests

message

Rate limit exceeded

code

0

status

429

name
Invalid Parameter: [param_name]

message

Empty parameter or parameter validation error

code

1

status

4

name
Internal server error

message

The server encountered an unexpected condition which prevented it from fulfilling the request

code

2

status

500

name
Topup balance is required

message

User balance is empty

code

3

status

402

name
Internal server error

message

The server encountered an unexpected condition which prevented it from fulfilling the request

code

4, // 5 and 6

status

500

name
Service Unavailable

message

Message failed to send because more than 24 hours have passed since the customer last replied to this number. In this case, you can only send a template message

code

7

status

503

name
Invalid credintals for file_url

message

Invalid MIME type file_url

code

8

status

401

name
Invalid credintals for file_url

message

Invalid file extension

code

9

status

401

Приклади відправки WhatsApp повідомлення:

curl --location 'https://web.it-decision.com/v1/api/send-whatsapp' \
--header 'Authorization: Basic api key' \
--header 'Content-Type: application/json' \
--data ' {"to":"38063xxxxxxx","type":"template","template":{"namespace":"xxxxx_xxxx_xxx_xxx_xxxxx","language":{"policy":"deterministic","code":"en_US"},"name":"media_2_english","components":[{"type":"header","parameters":[{"type":"image","image":{"link":"url image.jpg"}}]}]}}'

Last updated