+7 495 255 06 20
Log In Free trial
December 9, 11:00 AM

Digital Reception: How to Increase Your Hotel’s Revenue by 30%?

Join the webinar to learn how a digital staff member answers guests 24/7, boosts loyalty and NPS through personalized communication and attentive service!
Participate for free

Sending messages

You can send text and file messages to the API. Template messages are available for WABA (WhatsApp Business API): template text, template file. For a better understanding, consider several options for sending messages:

Note: All request execution examples are in PHP using the Guzzle http-client.

Sending a message of type text:

$client = new GuzzleHttpClient();
$licenseId = 12345;
$messengerType = 'grWhatsApp';
$chatId = '70000000000'; // phone or chatId
$accessToken = '$2y$10$loFiiY4XsYIDv5lfuJ9qROnpfxe000fsvjR/F1qWYiTgJEXaDiMfa';
try {
    $response = $client->post(
        "https://api.chatapp.online/v1/licenses/$licenseId/messengers/$messengerType/chats/$chatId/messages/text",
        [
            'headers' => [
                'Authorization' => $accessToken,
            ],
            'json' => [
                'text' => 'Hello world!',
            ],
        ]
    );
    $body = $response->getBody();
    echo '<pre>';
    print_r(json_decode((string)$body));
} catch (Exception $e) {
    echo '<pre>';
    print_r([$e->getCode(), $e->getMessage()]);
}

Sending a message of type text with buttons:

$client = new GuzzleHttpClient();
$licenseId = 12345;
$messengerType = 'grWhatsApp';
$chatId = '70000000000'; // phone or chatId
$accessToken = '$2y$10$loFiiY4XsYIDv5lfuJ9qROnpfxe000fsvjR/F1qWYiTgJEXaDiMfa';
try {
    $response = $client->post(
        "https://api.chatapp.online/v1/licenses/$licenseId/messengers/$messengerType/chats/$chatId/messages/text",
        [
            'headers' => [
                'Authorization' => $accessToken,
            ],
            'json' => [
                'text' => 'Hello world!',
                'buttons' => [
                    'items' => [
                        [
                            'text' => 'Button 1'
                        ],
                        [
                            'text' => 'Button 2'
                        ]
                    ]
                ],
            ],
        ]
    );
    $body = $response->getBody();
    echo '<pre>';
    print_r(json_decode((string)$body));
} catch (Exception $e) {
    echo '<pre>';
    print_r([$e->getCode(), $e->getMessage()]);
}

Sending a message of type file via a public link to a file:

$client = new GuzzleHttpClient();
$licenseId = 12345;
$messengerType = 'grWhatsApp';
$chatId = '70000000000'; // phone or chatId
$accessToken = '$2y$10$loFiiY4XsYIDv5lfuJ9qROnpfxe000fsvjR/F1qWYiTgJEXaDiMfa';
$fileLink = 'https://download.samplelib.com/png/sample-green-400x300.png'; // публичная ссылка на файл
$fileName = 'sample-green-400x300.png'; // file name must be with extension
$caption = 'Test'; // file signature optional
try {
    $response = $client->post(
        "https://api.chatapp.online/v1/licenses/$licenseId/messengers/$messengerType/chats/$chatId/messages/file",
        [
            'headers' => [
                'Authorization' => $accessToken,
            ],
            'json' => [
                'file' => $fileLink,
                'fileName' => $fileName,
                'caption' => $caption
            ],
        ]
    );
    $body = $response->getBody();
    echo '<pre>';
    print_r(json_decode((string)$body));
} catch (Exception $e) {
    echo '<pre>';
    print_r([$e->getCode(), $e->getMessage()]);
}

Sending a file type message via multipart/form-data:

$client = new GuzzleHttpClient();
$licenseId = 12345;
$messengerType = 'grWhatsApp';
$chatId = '70000000000'; // phone or chatId
$accessToken = '$2y$10$loFiiY4XsYIDv5lfuJ9qROnpfxe000fsvjR/F1qWYiTgJEXaDiMfa';
$fileName = 'logo-64.png'; // file name must be with extension
$caption = 'Test'; // file signature optional
$filePath = '/source/public/images/logo-64.png'; // path to file on disk
try {
    $response = $client->post(
        "https://api.chatapp.online/v1/licenses/$licenseId/messengers/$messengerType/chats/$chatId/messages/file",
        [
            'headers' => [
                'Authorization' => $accessToken,
            ],
            'multipart' => [
                [
                    'name' => 'fileName',
                    'contents' => $fileName
                ],
                [
                    'name' => 'file',
                    'contents' => fopen($filePath, 'r'),
                    'filename' => $fileName
                ],
                [
                    'name' => 'caption',
                    'contents' => $caption
                ]
            ]
        ]
    );
    $body = $response->getBody();
    echo '<pre>';
    print_r(json_decode((string)$body));
} catch (Exception $e) {
    echo '<pre>';
    print_r([$e->getCode(), $e->getMessage()]);
}

Sending a template text message:

$client = new GuzzleHttpClient();
$licenseId = 12345;
$messengerType = 'grWhatsApp';
$chatId = '70000000000'; // phone or chatId
$accessToken = '$2y$10$loFiiY4XsYIDv5lfuJ9qROnpfxe000fsvjR/F1qWYiTgJEXaDiMfa';
$templateId = '0c20b30c-2b92-436d-a6b1-4a1b8f9c0614';
$templateParams = ['test 1', 'test 2', 'test 3'];
try {
    $response = $client->post(
        "https://api.chatapp.online/v1/licenses/$licenseId/messengers/$messengerType/chats/$chatId/messages/template",
        [
            'headers' => [
                'Authorization' => $accessToken,
            ],
            'json' => [
                'template' => [
                    'id' => $templateId,
                    'params' => $templateParams,
                ]
            ],
        ]
    );
    $body = $response->getBody();
    echo '<pre>';
    print_r(json_decode((string)$body));
} catch (Exception $e) {
    echo '<pre>';
    print_r([$e->getCode(), $e->getMessage()]);
}

Sending a template file message via a public link to the file:

$client = new GuzzleHttpClient();
$licenseId = 12345;
$messengerType = 'grWhatsApp';
$chatId = '70000000000'; // phone or chatId
$accessToken = '$2y$10$loFiiY4XsYIDv5lfuJ9qROnpfxe000fsvjR/F1qWYiTgJEXaDiMfa';
$templateId = '33cd9d37-4375-4f7f-838c-228c1be32299';
$templateParams = [];
$fileLink = 'https://download.samplelib.com/png/sample-green-400x300.png';
try {
    $response = $client->post(
        "https://api.chatapp.online/v1/licenses/$licenseId/messengers/$messengerType/chats/$chatId/messages/template",
        [
            'headers' => [
                'Authorization' => $accessToken,
            ],
            'json' => [
                'template' => [
                    'id' => $templateId,
                    'params' => $templateParams,
                ],
                'file' => $fileLink
            ],
        ]
    );
    $body = $response->getBody();
    echo '<pre>';
    print_r(json_decode((string)$body));
} catch (Exception $e) {
    echo '<pre>';
    print_r([$e->getCode(), $e->getMessage()]);
}

Sending a template file message via multipart/form-data:

$client = new GuzzleHttpClient();
$licenseId = 12345;
$messengerType = 'grWhatsApp';
$chatId = '70000000000'; // phone or chatId
$accessToken = '$2y$10$loFiiY4XsYIDv5lfuJ9qROnpfxe000fsvjR/F1qWYiTgJEXaDiMfa';
$templateId = '33cd9d37-4375-4f7f-838c-228c1be32299';
$templateParams = [];
$fileName = 'logo-64.png'; // file name must be with extension
$filePath = '/source/public/images/logo-64.png'; // path to file on disk
try {
    $response = $client->post(
        "https://api.chatapp.online/v1/licenses/$licenseId/messengers/$messengerType/chats/$chatId/messages/template",
        [
            'headers' => [
                'Authorization' => $accessToken,
            ],
            'multipart' => [
                [
                    'name' => 'template[id]',
                    'contents' => $templateId
                ],
                [
                    'name' => 'file',
                    'contents' => fopen($filePath, 'r'),
                    'filename' => $fileName
                ],
                /*[
                    'name' => 'template[params][0]',
                    'contents' => 'Test'
                ],
                [
                    'name' => 'template[params][1]',
                    'contents' => 'Test2'
                ],*/
            ]
        ]
    );
    $body = $response->getBody();
    echo '<pre>';
    print_r(json_decode((string)$body));
} catch (Exception $e) {
    echo '<pre>';
    print_r([$e->getCode(), $e->getMessage()]);
}