Отправка WHATSAPP
Для получения возможности отправки WHATSAPP-сообщений необходимо заполнить анкету, после чего будет зарегистрировано имя отправителя и шаблон для отправки сообщений.
Получение WHATSAPP-шаблонов и преобразование в сообщения описано здесь.
Отправка сообщений происходит в режиме чата:
  • если чат инициируется клиентом, первое сообщение должно соответствовать зарегистрированному шаблону. После каждого ответа абонента открывается 24-часовое окно для отправки сообщений с произвольным содержанием. Если абонент не ответил, клиент может отправлять сообщения пользователю вне рамок 24-часового окна с использованием заранее зарегистрированных шаблонов сообщений;
  • если чат инициируется абонентом, в течение 24-часового окна клиент может отправлять сообщения с произвольным содержанием.
post
https://direct.i-dgtl.ru/api
/v1/message
Отправка WHATSAPP-сообщений
Рекомендуемое минимальное время таймаута: 70 секунд
Для использования личного домена в сокращенных ссылках необходимо обратиться в поддержку
Возможные варианты перечислений:
Параметр
Варианты

Текстовое сообщение

Текстовое WHATSAPP-сообщение, помимо текста, может содержать заголовок, подпись и кнопки.
Для отправки текстового WHATSAPP-сообщения используется следующий объект content:
1
{
2
"contentType": "text",
3
"text": "текст whatsapp-сообщения",
4
"header": {
5
"text": "Заголовок сообщения"
6
},
7
"footer": {
8
"text": "Подпись сообщения"
9
},
10
"buttons": [
11
{
12
"text": "текст кнопки",
13
"url": "https://i-dgtl.ru"
14
},
15
{
16
"text": "текст второй кнопки",
17
"phone": "78124269988"
18
}
19
]
20
}
Copied!
Параметр
Тип
Описание
contentType
string
required
Тип контента (text)
text
string
required
Текст сообщения; строка в кодировке UTF-8 без Byte Order Mark
От 1 до 1000 символов
header
object optional
Заголовок сообщения
header.text
string optonal
Текст для заголовка От 1 до 60 символов
header.documentUrl
string optional
Ссылка на документ для заголовка
header.documentName
string optional
Название документа для заголовка; может присутствовать только при наличии documentUrl
header.imageUrl
string optional
Ссылка на изображение для заголовка
footer
object optional
Подпись сообщения
footer.text
string optional
Текст для подписи; от 1 до 60 символов
buttons
array (objects) optional
Массив с объектами кнопок
buttons.text
string optonal
Текст кнопки; от 1 до 20 символов
buttons.url
string optional
Ссылка, на которую происходит переход при нажатии на кнопку; от 1 до 1000 символов; должна начинаться с http
buttons.phone
string optional
Телефонный номер, на который предлагается сделать вызов при нажатии на кнопку; от 1 до 1000 символов
buttons.payload
string optional
Скрытый текст, который будет передан во входящем сообщении, если пользователь нажмет на кнопку; от 1 до 1000 символов
в объекте header допускается использовать только одно из:
  • text
  • documentUrl и documentName
  • imageUrl

Кнопки в сообщениях

  • в массиве buttons допускается от 1 до 3 объектов
  • в каждом объекте обязателен text
  • существует два типа кнопок:
    • кнопка с ссылкой: содержит text и url или text и phone
    • кнопка с текстом: содержит text и payload
    • передача payload вместе с url или phone не допускается
  • в одном сообщении допускается передача кнопок только одного типа
  • в сообщении допускается только одна кнопка с параметром url
  • в сообщении допускается только одна кнопка с параметром phone
  • при передаче кнопок с текстом допускается не более трех объектов в массиве
  • при передаче кнопок с ссылкой допускается не более двух объектов в массиве
  • наличие кнопок в сообщении не влияет на возможность наличия заголовка и подписи

Примеры объектов

Текст
С заголовком
С заголовком и подписью
С текстовыми кнопками
С кнопками и ссылками
1
{
2
"contentType": "text",
3
"text": "текст сообщения"
4
}
Copied!
1
{
2
"contentType": "text",
3
"text": "Текст сообщения",
4
"header": {
5
"documentUrl": "https://example.com/document.pdf",
6
"documentName": "document.pdf"
7
}
8
}
Copied!
1
{
2
"contentType": "text",
3
"text": "Текст сообщения",
4
"header": {
5
"imageUrl": "https://example.com/image.png"
6
},
7
"footer": {
8
"text": "Подпись сообщения"
9
}
10
}
Copied!
1
{
2
"contentType": "text",
3
"text": "Текст сообщения",
4
"buttons": [
5
{
6
"text": "текст кнопки 1",
7
"payload": "id=1"
8
},
9
{
10
"text": "текст кнопки 2",
11
"payload": "id=2"
12
}
13
]
14
}
Copied!
1
{
2
"contentType": "text",
3
"text": "Текст сообщения",
4
"buttons": [
5
{
6
"text": "текст кнопки 1",
7
"url": "https://i-dgtl.ru/"
8
},
9
{
10
"text": "текст кнопки 2",
11
"phone": "78124269988"
12
}
13
]
14
}
Copied!

Сообщение с изображением

Для отправки WHATSAPP-сообщения с изображением используется следующий объект content:
1
{
2
"contentType": "image",
3
"imageUrl": "https://image.png",
4
"imageName": "Изображение",
5
"header": {
6
"text": "Заголовок сообщения"
7
},
8
"footer": {
9
"text": "Подпись сообщения"
10
},
11
"buttons": [
12
{
13
"text": "текст кнопки",
14
"url": "https://i-dgtl.ru/"
15
},
16
{
17
"text": "текст второй кнопки",
18
"phone": "78124269988"
19
}
20
]
21
}
Copied!
Параметр
Тип
Описание
contentType
string
required
Тип контента (image)
imageUrl
string
required
Ссылка на изображение
imageName
string required
Название изображения
Заголовок, подпись и кнопки валидируются по тем же правилам, как и для текстового сообщения

Сообщение с документом

Для отправки WHATSAPP-сообщения с документом используется следующий объект content:
1
{
2
"contentType": "document",
3
"documentUrl": "https://document.pdf",
4
"documentName": "Документ",
5
"header": {
6
"text": "Заголовок сообщения"
7
},
8
"footer": {
9
"text": "Подпись сообщения"
10
},
11
"buttons": [
12
{
13
"text": "текст кнопки",
14
"url": "https://i-dgtl.ru/"
15
},
16
{
17
"text": "текст второй кнопки",
18
"phone": "78124269988"
19
}
20
]
21
}
Copied!
Параметр
Тип
Описание
contentType
string
required
Тип контента (document)
documentUrl
string
required
Ссылка на документ
documentName
string required
Название документа
Заголовок, подпись и кнопки валидируются по тем же правилам, как и для текстового сообщения

Пример запроса

JSON
cURL
1
POST https://direct.i-dgtl.ru/api/v1/message
2
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
3
Content-Type: application/json
4
[
5
{
6
"senderName": "SENDER",
7
"channelType": "WHATSAPP",
8
"content": {
9
"contentType": "text",
10
"text": "Текст сообщения",
11
"header": {
12
"imageUrl": "https://example.com/image.png"
13
},
14
"footer": {
15
"text": "Подпись сообщения"
16
},
17
"buttons": [
18
{
19
"text": "текст кнопки",
20
"url": "https://i-dgtl.ru/"
21
},
22
{
23
"text": "текст второй кнопки",
24
"phone": "78124269988"
25
}
26
]
27
},
28
"destination": "7818242882",
29
"localSendTime": "2020-06-15 18:00:00",
30
"localCompletionTime": "2020-06-16 21:00:00",
31
"shortUrl": true,
32
"callbackUrl": "https://company.com/callback",
33
"callbackEvents": [
34
"delivered",
35
"read",
36
"click"
37
],
38
"useLocalTime": true,
39
"ttl": 43200,
40
"hours": [
41
12,
42
13,
43
14
44
],
45
"days": [
46
1,
47
2
48
],
49
"tags": [
50
"tag1",
51
"tag2"
52
]
53
}
54
]
Copied!
1
curl -X POST 'https://direct.i-dgtl.ru/api/v1/message' \
2
-H 'Content-Type: application/json' \
3
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
4
-d '[{"senderName":"SENDER","channelType":"WHATSAPP","content":{"contentType":"text","text":"Текст сообщения","header":{"imageUrl":"https://example.com/image.png"},"footer":{"text":"Подпись сообщения"},"buttons":[{"text":"текст кнопки","url":"https://i-dgtl.ru/"},{"text":"текст второй кнопки","phone":"78124269988"}]},"destination":"7818242882","localSendTime":"2020-06-15 18:00:00","localCompletionTime":"2020-06-16 21:00:00","shortUrl":true,"callbackUrl":"https://company.com/callback","callbackEvents":["delivered","read","click"],"useLocalTime":true,"ttl":43200,"hours":[12,13,14],"days":[1,2],"tags":["tag1","tag2"]}]'
Copied!