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

В этой статье описывается callback-метод для передачи информации об изменении статусов обработки и доставки сообщений. Callback — это запрос с информацией об изменении статусов сообщений, который мы передадим на ваш сервер. Параметры запроса передаются в теле запроса.

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

Поддерживается только протокол HTTPS.

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

Пример тела входящего POST-запроса:

{
  "requestId": "test-00135",
  "cascadeId": 11,
  "cascadeStageUUID": "001-test001",
  "subject": "test_subject",
  "subjectId": 2,
  "status": "READ",
  "statusAt": "2023-10-31T11:07:56Z",
  "error": null,
  "comment": null,
  "paymentData": {
    "@type": "WhatsAppConversationPaymentData",
    "conversationId": "test0001",
    "conversationType": "marketing",
    "chargeable": true,
    "type": "WHATSAPP_CONVERSATION"
  }
}

Формат запроса

ПараметрТип данныхОписание
requestIdstringИдентификатор запроса, на основании которого формируется и отправляется сообщение.
cascadeIdlongИдентификатор каскада.
cascadeStageUUIDstringnull или данные.
subjectstringНазвание подписи.
subjectIdlongИдентификатор подписи. Можно узнать через метод получения списка каналов.
statusstringСтатус сообщения.
statusAtstringВремя последнего обновления статуса сообщения. Указывается в формате ISO 8601. Например: 2023-10-31T11:07:56Z.
errorstring
(опционально)
null или данные. Ошибка при доставке сообщения.
commentstring
(опционально)
Текстовый комментарий. Указывается при отправке сообщения. Значение параметра также отображается в детальном отчете. Может использоваться для маршрутизации чат-ботов.
paymentDataobjectНабор параметров для канала WhatsApp, которые передают информацию о диалоге.
conversationIdstringИдентификатор диалога. Передается для канала WhatsApp.
conversationTypestringКатегория диалога. Передается для канала WhatsApp.
chargeableboolean (опционально)Тип диалога: платный или бесплатный. Передается для канала WhatsApp для статусов delivered и read.

Формат ответа

В ответ на запрос от вашего сервера должен возвращаться статус его выполнения с кодом 200.

Если в ответ на callback-запрос не приходит код 200, программа edna Pulse выполняет еще 10 попыток запроса с интервалом 2*Х секунд между попытками (где Х — номер попытки), пока в ответ не придет код 200. То есть каждые 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 секунд.

Статусы доставки

СтатусОписание
sentСообщение отправлено адресату.
deliveredСообщение доставлено адресату.
readСообщение прочитано адресатом.
undeliveredСообщение отправлено, но не доставлено адресату.
cancelledОтправка сообщения отменена.
expiredСообщение не получило статус delivered, поскольку:
• истекло время, указанное при настройке каскада;
• истекло время на доставку сообщения (TTL), определенное каналом по умолчанию (см. подробнее про сроки доставки сообщений).
failedОшибка обработки сообщения.
При интеграции учитывайте, что список статусов может быть расширен.