Перейти к основному содержимому

Получение сообщений

Обновлено: 25 декабря 2025

Этот метод позволяет вашему серверу прочитать ответное сообщение пользователя в чате.

Например, после отправки пользователю HSM-сообщения с кнопками чата, при нажатии одной из кнопок возвращается параметр payload — код кнопки, указанный при создании шаблона HSM-сообщения.

к сведению

Вы можете протестировать отправку сообщений с помощью API edna Pulse для канала WhatsApp, не регистрируя канал.

File IconКак проверить отправку сообщений по API для канала WhatsApp

URL-адрес подключения

к сведению

Адрес должен начинаться с HTTPS — протокол HTTPS, порт 443.

Для чтения ответных сообщений пользователей в чатах укажите API Endpoint вашей системы в личном кабинете при регистрации, который будет обрабатывать входящие POST-запросы от API edna Pulse.

Примеры

Полученное текстовое сообщение

{
"id": 101,
"subject": "test_subject_WA",
"subjectId": 345,
"subscriber": {
"id": 202,
"identifier": "79000000000"
},
"userInfo": {
"userName": "alex",
"firstName": null,
"lastName": null,
"avatarUrl": null
},
"messageContent": {
"type": "TEXT",
"attachment": null,
"location": null,
"caption": null,
"text": "Спасибо за помощь",
"payload": null,
"story": null,
"items": null
},
"receivedAt": "2022-04-29T15:30:08Z",
"replyOutMessageId": 5043874,
"replyOutMessageExternalRequestId": "2c2dd5f1-5ad8-449d-9c38-b6bdf288f1e5",
"replyInMessageId": null
}

Полученное текстовое сообщение с информацией о последнем исходящем сообщении

{
"id": 152,
"subject": "test_subject_WA",
"subjectId": 342,
"subscriber": {
"id": 242,
"identifier": "79000000000"
},
"userInfo": {
"userName": "Alex",
"firstName": null,
"lastName": null,
"avatarUrl": null
},
"messageContent": {
"type": "TEXT",
"attachment": null,
"location": null,
"referral": null,
"caption": null,
"text": "Добрый день! Заинтересовала белая кружка",
"payload": null,
"story": null,
"items": null,
"contact": null,
"product": null,
"catalog": null,
"order": null
},
"receivedAt": "2025-12-09T05:00:00Z",
"replyOutMessageId": null,
"replyOutMessageExternalRequestId": null,
"replyInMessageId": null,
"lastMessage": {
"outMessageId": 8542,
"address": "79800000001",
"contentType": "TEXT",
"text": "Здравствуйте! Рады предложить Вам наши самые лучшие кружки! Ознакомьтесь со списком ниже.",
"startTime": "2025-12-07T10:12:56Z"
}
}

Cообщение-реакция, полученное в ответ на сообщение с интерактивным меню

{
"id": 102,
"subject": "test_subject_WA",
"subjectId": 345,
"subscriber": {
"id": 202,
"identifier": "79000000000"
},
"userInfo": {
"userName": "alex",
"firstName": null,
"lastName": null,
"avatarUrl": null
},
"messageContent": {
"type": "LIST_PICKER",
"attachment": null,
"location": null,
"caption": null,
"text": null,
"payload": null,
"story": null,
"items": [
{
"identifier": "01",
"title": "item 1",
"subtitle": null
}
]
},
"receivedAt": "2022-04-29T15:27:40Z",
"replyOutMessageId": null,
"replyOutMessageExternalRequestId": null,
"replyInMessageId": 537701
}

Входящее сообщение со значением PRODUCT в параметре messageContent.type

{
"id": 803101,
"subject": "test_subject_WA",
"subjectId": 47610,
"subscriber": {
"id": 4633047,
"identifier": "79997776655"
},
"userInfo": {
"userName": "Иван Иванов",
"firstName": null,
"lastName": null,
"avatarUrl": null
},
"messageContent": {
"type": "PRODUCT",
"attachment": null,
"location": null,
"caption": null,
"text": "Hello",
"payload": null,
"story": null,
"items": null,
"contact": null,
"product": {
"id": "321",
"catalogId": "123"
},
"catalog": null,
"order": null
},
"receivedAt": "2024-08-05T08: 24: 14Z",
"replyOutMessageId": null,
"replyOutMessageExternalRequestId": null,
"replyInMessageId": null
}

Входящее сообщение со значением ORDER в параметре messageContent.type

{
"id": 804201,
"subject": "test_subject_WA",
"subjectId": 47610,
"subscriber": {
"id": 4633047,
"identifier": "79997776655"
},
"userInfo": {
"userName": "Иван Иванов",
"firstName": null,
"lastName": null,
"avatarUrl": null
},
"messageContent": {
"type": "ORDER",
"attachment": null,
"location": null,
"caption": null,
"text": null,
"payload": null,
"story": null,
"items": null,
"contact": null,
"product": null,
"catalog": null,
"order": {
"catalogId": "1022121105031922",
"products": [
{
"id": "111222",
"quantity": 2,
"price": 5,
"currency": "RUB"
}
]
}
},
"receivedAt": "2024-08-05T12:44:22Z",
"replyOutMessageId": null,
"replyOutMessageExternalRequestId": null,
"replyInMessageId": null
}

Callback для входящих сообщений с параметром referral

к сведению

Параметр позволяет получать информацию о месте, в котором клиент начал диалог в WhatsApp

{
"id": 115611,
"subject": "test_WA",
"subjectId": 195,
"subscriber": {
"id": 1111111,
"identifier": "79000000000"
},
"userInfo": {
"userName": "Anna",
"firstName": null,
"lastName": null,
"avatarUrl": null
},
"messageContent": {
"type": "TEXT",
"attachment": null,
"location": null,
"referral": {
"body": "This is a great product",
"headline": "Our new product",
"sourceId": "123",
"sourceType": "ad",
"sourceUrl": "https://www.fb.com"
},
"caption": null,
"text": "text for test",
"payload": null,
"story": null,
"items": null,
"contact": null,
"product": null,
"catalog": null,
"order": null
},
"receivedAt": "2024-01-11T11:20:00Z",
"replyOutMessageId": null,
"replyOutMessageExternalRequestId": null,
"replyInMessageId": null
}

Callback для входящих сообщений со значением FLOW в параметре messageContent.type

[
{
"id": 101,
"subject": "test_subject_WA",
"subjectId": 50520,
"subscriber": {
"id": 4633047,
"identifier": "79997776655"
},
"userInfo": {
"userName": "Иван Иванов",
"firstName": null,
"lastName": null,
"avatarUrl": null
},
"messageContent": {
"type": "FLOW",
"attachment": null,
"location": null,
"referral": null,
"caption": null,
"text": "{\"flow_token\":\"example\"}",
"payload": null,
"story": null,
"items": null,
"contact": null,
"product": null,
"catalog": null,
"order": null
},
"receivedAt": "2025-03-25T12:12:12Z",
"replyOutMessageId": null,
"replyOutMessageExternalRequestId": null,
"replyInMessageId": null
}
]
[
{
"id": 101,
"subject": "test_subject_WA",
"subjectId": 50520,
"subscriber": {
"id": 4633047,
"identifier": "79997776655"
},
"userInfo": {
"userName": "Иван Иванов",
"firstName": null,
"lastName": null,
"avatarUrl": null
},
"messageContent": {
"type": "FLOW",
"attachment": null,
"location": null,
"referral": null,
"caption": null,
"text": "{\"screen_0_Name_0\":\"Ivan\",\"screen_0_Order_number_1\":\"6\",\"screen_0_Choose_a_topic_2\":\"0_order\",\"flow_token\":\"example\"}",
"payload": null,
"story": null,
"items": null,
"contact": null,
"product": null,
"catalog": null,
"order": null
},
"receivedAt": "2025-03-25T12:12:12Z",
"replyOutMessageId": null,
"replyOutMessageExternalRequestId": null,
"replyInMessageId": null
}
]

Параметры запроса

ПараметрТип данныхОписание
idlongИдентификатор запроса.
subjectstringНазвание подписи.
subjectIdlongИдентификатор подписи. Можно узнать через метод получения списка каналов.
subscriberobjectИнформация об отправителе сообщения.
subscriber.id longИдентификатор.
subscriber.identifierstringНомер телефона.
userInfoobjectИнформация о пользователе.
userInfo.userNamestringИмя.
userInfo.firstNamestringФамилия.
userInfo.lastNamestringОтчество.
userInfo.avatarUrlstringАватар.
messageContentobjectИнформация о сообщении.
messageContent.textstring (optional)Текст сообщения. При использовании WhatsApp Flows в этом параметре будет приходить информация о Flow.

WhatsApp Flows — Meta for Developers
Тип сообщения. Возможные значения:

- TEXT — текстовое сообщение;

- IMAGE — изображение;

- DOCUMENT — документ, вложенный в сообщение;

- VIDEO — сообщение, содержащее видео;

- AUDIO — сообщение, содержащее звук;

- PRODUCT — сообщение, содержащее товар;

- ORDER — сообщение, содержащее заказ;

- LIST_PICKER — кнопки интерактивного меню WhatsApp;

- FLOW — сообщение, содержащее WhatsApp Flows.

File IconWhatsApp Flows
textstringОбязательный, если contentType = TEXT, AUTHENTICATION или FLOW
messageContent.captionstring (optional)Название.
messageContent.payloadstring (optional)Код кнопки. Указывается при создании HSM-шаблона.
messageContent.itemsobjectНабор параметров, которые возвращаются в ответном сообщении от клиента, когда он реагирует на сообщение с интерактивным меню. Если сообщение клиента обычное (например, текст) и не является реакцией на сообщение с интерактивным меню, параметр возвращается следующим образом: messageContent.items = null.
messageContent.items.titlestring (required)Название элемента исходного интерактивного меню.
messageContent.items.subtitlestring (optional)Подзаголовок элемента исходного интерактивного меню.
messageContent.items.identifierinteger (optional)Сквозной для всего сообщения ID элемента, вернется в ответном сообщении пользователя.
messageContent.locationobject (optional)Адрес локации.
messageContent.attachmentobject (optional)null или данные документа.
messageContent.attachment.urlstring (optional)URL прикрепленного изображения, документа или видео.
messageContent.attachmentnamestring (optional)Название прикрепленного изображения, документа или видео.
messageContent.attachmentsizestring (optional)Размер.
messageContent.contactobject (optional)Карточка контакта, состоящая из полей: имя, фамилия, мобильный телефон.
contact.firstNamestring (optional)Имя в карточке контакта.
contact.lastNamestring (optional)Фамилия в карточке контакта.
contact.phoneNumberstring (optional)Мобильный телефон в карточке контакта.
receivedAtstringДата и время получения.
replyInMessageIdlongВнутренний идентификатор цитируемого сообщения пользователя. Пользователь цитирует своё сообщение, отправленное компании.
replyOutMessageIdlongВнутренний идентификатор цитируемого сообщения компании. Пользователь цитирует сообщение, полученное от компании.
replyOutMessageExternalRequestIdlongВнешний идентификатор цитируемого сообщения компании, который она указывает при отправке исходящего сообщения по API. В том случае, если пользователь процитировал сообщение, полученное от компании.
к сведению

Вы можете дополнить набор элементов, которые возвращаются в результате запроса. Для этого используйте необходимые элементы из списка

Параметры ответа

ПараметрТип данныхОписание
messageContent.referralobjectИнформация, полученная по скрытой от пользователя ссылке или из рекламного объявления.
messageContent.referral.bodystringТекст объявления, связанный с сообщением.
messageContent.referral.headlinestringЗаголовок объявления, связанный с сообщением.
messageContent.referral.sourceIdstringИдентификатор объявления или публикации в Facebook*
messageContent.referral.sourceTypestringТип источника объявления.

Возможные значения:
- ad — объявление;
- post — публикация.
messageContent.referral.sourceUrlstringURL-адрес объявления, которое просмотрел пользователь.
lastMessageobjectОбъект, содержащий информацию о последнем исходящем сообщении, отправленном получателю за последние 14 дней до получения входящего сообщения.

Особенности:
- Только для канала WhatsApp;
- Возвращается только одно последнее исходящее сообщение, отправленное получателю из личного кабинета edna Pulse или по API edna Pulse за последние 14 дней до получения входящего.
- Если подходящего исходящего сообщения нет - объект lastMessage не возвращается.
- Можно включить или отключить возврат информации о последнем исходящем сообщении. По умолчанию функциональность выключена.

Для включения возможности возврата информации о последнем исходящем сообщении — отправьте запрос в службу поддержки edna.
lastMessage.outMessageIdintegerВнутренний идентификатор исходящего сообщения.
lastMessage.addressstringАдрес получателя — номер телефона или другой идентификатор.
lastMessage.contentTypestringТип сообщения.
Возможные значения:
- TEXT — текстовое сообщение.
lastMessage.textstringТекст сообщения.
lastMessage.startTimestringВремя отправки сообщения в формате даты ISO 8601 durations.
Например — 2025-07-01T00:00:00Z.

         


осторожно

* Деятельность компании Meta запрещена на территории Российской Федерации.