В этой статье описывается 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" } }
Формат запроса
Параметр | Тип данных | Описание |
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
.
Статусы доставки
Статус | Описание |
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 минут. |
При интеграции учитывайте, что список ошибок может быть расширен.