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

В этой статье описывается 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.

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

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

Ошибки

ОшибкаОписание
not-whatsapp-userУказанный получатель не зарегистрирован в WhatsApp (только для канала WhatsApp).
no-match-templateСообщение не соответствует допустимому шаблону.
session-not-startedСообщение не соответствует допустимому шаблону.
daily-rate-limitПревышен суточный лимит WhatsApp на отправку шаблонных сообщений (только для канала WhatsApp).
too-long-messageДлина сообщения превышает допустимый лимит.
chat-window-closedОшибка при открытии диалогового окна на стороне WhatsApp (только для канала WhatsApp).
media-request-failedОшибка при загрузке файла.
error-subject-unknownУказанная подпись не разрешена клиенту. Необходимо предварительно активировать все подписи.
error-address-formatНеправильный формат номера абонента.
duplicatedПопытка отправки дубликата сообщения в течение 5 минут.
При интеграции учитывайте, что список ошибок может быть расширен.