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

В этой статье описывается 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ОбязательныйИдентификатор каскада.
cascadeStageUUIDstringОбязательныйnull или данные.
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Ошибка обработки сообщения.
При интеграции учитывайте, что список статусов может быть расширен.