В этой статье описывается callback-метод для передачи информации об изменении статусов обработки и доставки сообщений. Callback — это запрос с информацией об изменении статусов сообщений, который мы передадим на ваш сервер. Параметры запроса передаются в теле запроса.
URL-адрес подключения
Для получения с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" } }
Формат запроса
Параметр | Тип данных | Описание |
requestId | string | Идентификатор запроса, на основании которого формируется и отправляется сообщение. |
cascadeId | long | Идентификатор каскада. |
cascadeStageUUID | string | null или данные. |
subject | string | Название подписи. |
subjectId | long | Идентификатор подписи. Можно узнать через метод получения списка каналов. |
status | string | Статус сообщения. |
statusAt | string | Время последнего обновления статуса сообщения. Указывается в формате ISO 8601. Например: 2023-10-31T11:07:56Z. |
error | string (опционально) | null или данные. Ошибка при доставке сообщения. |
comment | string (опционально) | Текстовый комментарий. Указывается при отправке сообщения. Значение параметра также отображается в детальном отчете. Может использоваться для маршрутизации чат-ботов. |
paymentData | object | Набор параметров для канала WhatsApp, которые передают информацию о диалоге. |
conversationId | string | Идентификатор диалога. Передается для канала WhatsApp. |
conversationType | string | Категория диалога. Передается для канала WhatsApp. |
chargeable | boolean (опционально) | Тип диалога: платный или бесплатный. Передается для канала 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 | Ошибка обработки сообщения. |