> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ycloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Статусы доставки сообщений

> Различайте принятие, отправку, доставку, прочтение и ошибку при отслеживании исходящего сообщения WhatsApp.

Отправка запроса и доставка сообщения — это разные события. Успешный ответ API подтверждает результат запроса на данном этапе; он не гарантирует, что клиент получил или прочитал сообщение.

Используйте статус сообщения YCloud и любые доступные сведения об ошибке, чтобы понять, что произошло.

## Статусы исходящих сообщений

Ресурс исходящих сообщений WhatsApp в YCloud использует следующие статусы:

| Статус | Значение | Что делать |
| - | - | - |
| `accepted` | YCloud принял запрос на отправку сообщения. | Отслеживайте последующие обновления. Не считайте это доставкой. |
| `sent` | Сообщение передается внутри систем WhatsApp. | Дождитесь обновления о доставке или ошибке. |
| `delivered` | Сообщение поступило на устройство клиента. | Считайте его доставленным, но не обязательно прочитанным. |
| `read` | WhatsApp сообщил, что клиент прочитал сообщение. | Используйте этот сигнал в своем рабочем процессе, не предполагая, что прочтение означает согласие или завершение действия. |
| `failed` | Не удалось отправить сообщение. | Изучите ошибку и устраните причину перед повторной попыткой. |

Типичная успешная последовательность: `accepted → sent → delivered → read`. Не предполагайте, что ваше приложение получит каждое промежуточное обновление или что обновления придут именно в таком порядке.

## Почему успешный запрос не означает окончательную доставку

При использовании эндпоинта с очередью YCloud принимает запрос и отправляет его асинхронно. При использовании прямого эндпоинта отправка в WhatsApp Business API происходит синхронно. Окончательная доставка в обоих случаях остается асинхронной.

Подробные сведения о реализации см. в разделе [Отправка сообщения WhatsApp](/ru/api-reference/guides/whatsapp-platform/send-whatsapp-message).

Если текущий статус по-прежнему `accepted` или `sent`, не отправляйте повторно один и тот же контент. Дополнительный запрос может привести к дублированию сообщения.

## Отчеты о доставке и прочтении

Статус «Доставлено» означает, что сообщение дошло до устройства клиента. Это не означает, что клиент открыл диалог.

Отчеты о прочтении доступны не всегда. Например, настройки отчетов о прочтении у клиента могут влиять на то, будет ли отправлено уведомление о прочтении. Отсутствие такого обновления не является доказательством того, что клиент проигнорировал сообщение.

Определения статусов на стороне провайдера см. в справочнике Meta [message status webhook reference](https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components/).

## Отслеживание одного и того же сообщения в разных системах

При устранении неполадок сохраняйте следующую информацию вместе:

| Информация | Зачем это нужно |
| - | - |
| ID сообщения YCloud | Идентифицирует ресурс сообщения в YCloud. |
| ID сообщения WhatsApp (если доступен) | Сопоставляет сообщение с обработкой на стороне WhatsApp. |
| Отправитель, получатель и WABA | Идентифицирует затронутый бизнес и взаимодействие. |
| Ваш внешний идентификатор (если используется) | Связывает сообщение с заказом, обращением в службу поддержки или другим внутренним событием. |
| Временные метки статусов | Помогают восстановить последовательность, если обновления приходят с опозданием или не по порядку. |
| Сведения об ошибке | Объясняют причину сбоя и подсказывают следующее действие. |

Не передавайте ключи API или лишнюю информацию о клиентах при отправке данных для устранения неполадок.

Интеграции API могут получать вебхуки `whatsapp.message.updated` и запрашивать ресурс сообщения. См. раздел [Рекомендации по обмену сообщениями в WhatsApp](/ru/api-reference/guides/whatsapp-platform/whatsapp-messages-api-best-practices) для настройки синхронизации и повторных попыток.

## Анализ сообщений с ошибкой доставки

Начинайте анализ с возвращенной ошибки, а не только с названия статуса.

* **Проблема с шаблоном:** убедитесь, что шаблон доступен, а его язык и параметры указаны верно.
* **Проблема с окном переписки:** проверьте, требуется ли для сообщения открытое [окно обслуживания клиентов](/ru/documentation/whatsapp-business-platform/messaging/service-messages#customer-service-window).
* **Проблема с аккаунтом или номером:** проверьте затронутый ресурс и его текущие ограничения.
* **Проблема с контентом или медиа:** проверьте требования выбранного типа сообщений.
* **Контроль доставки:** следуйте указаниям конкретной ошибки. Немедленные повторные попытки могут не снять ограничение платформы.

Недоставленное сообщение не означает, что клиент заблокировал ваш номер. Опирайтесь на фактические сведения об ошибке и избегайте предположений о действиях клиента, которые не были зафиксированы платформой.

Сведения о контроле доставки на платформе см. в разделе [Контроль качества и доставки](/ru/documentation/whatsapp-business-platform/pricing-limits-and-quality/quality-and-delivery-controls). Информацию об уведомлениях о нарушениях см. в разделе [Ограничения аккаунта и апелляции](/ru/documentation/whatsapp-business-platform/consent-policies-and-account-health/account-restrictions-and-appeals).

## Оценка безопасности повторной отправки

| Текущие данные | Рекомендуемые действия |
| - | - |
| Запрос вернул ID, и статус не является окончательным | Продолжайте отслеживать это сообщение. Не отправляйте повторную копию только потому, что клиент не ответил. |
| Время ожидания запроса истекло, и неизвестно, был ли он принят | Выполните сверку с использованием сохраненного контекста запроса и доступных записей сообщений перед повторной попыткой. Истечение времени ожидания (timeout) не означает, что ничего не было отправлено. |
| Постоянная ошибка контента, шаблона или прав доступа | Исправьте исходные данные или остановите отправку. Повторение того же запроса не исправит ситуацию. |
| Временный технический сбой | Повторяйте попытку только в соответствии с инструкциями для конкретной ошибки, с задержкой, ограничением количества попыток и проверкой того, что сообщение все еще актуально. |
| Клиент отказался от рассылки или ограничение на стороне получателя блокирует доставку | Прекратите отправку сообщений этому получателю; не меняйте отправителей для принудительной доставки. |
| Бизнес-событие потеряло актуальность | Отмените повторную отправку, даже если техническую ошибку можно было бы повторить. |

Корректная запись сообщения связывает одно запланированное бизнес-действие с его запросами и результатами. Ваш внешний идентификатор (external reference) помогает сопоставлению, но не гарантирует идемпотентность API, если только эндпоинт явно не предоставляет такого поведения.

### Пример задержки обновлений статуса

Ваша система получает `delivered`, а затем задержанное событие `sent` для того же сообщения. Не меняйте статус клиента обратно на «не доставлено». Сохраняйте временные метки событий и используйте модель состояний, устойчивую к дублирующим и нарушающим порядок обновлениям.

Аналогично, отсутствие события `read` не означает ошибку отправки сообщения. Разделяйте следующие показатели:

* **Охват доставки:** сообщения с подтверждением доставки.
* **Охват прочтений:** сообщения с отчетом о прочтении.
* **Отклик клиента:** фактический входящий ответ или взаимодействие.
* **Бизнес-конверсия:** подтвержденное бронирование, покупка или успешная верификация в соответствующей системе.

## Дальнейшие действия

* [Ознакомиться с правилами обмена сообщениями](/ru/documentation/whatsapp-business-platform/messaging/how-messaging-works).
* [Проверить сервисные сообщения](/ru/documentation/whatsapp-business-platform/messaging/service-messages).
* [Настроить отслеживание доставки](/ru/api-reference/guides/whatsapp-platform/send-whatsapp-message).
* [Связаться со службой поддержки YCloud](/ru/documentation/support/ycloud-support-team), указав соответствующие идентификаторы сообщений и сведения об ошибке.

## Часто задаваемые вопросы

<AccordionGroup>
  <Accordion title="Отображается статус «Доставлено», но время прочтения отсутствует. Заблокировал ли нас клиент?">
    Такой вывод сделать нельзя. Отчеты о прочтении могут быть недоступны, в том числе если получатель их отключил. Учитывайте статусы «доставлено» и «прочитано» как раздельные метрики. Ни отсутствие отчета о прочтении, ни общая ошибка недоставки не указывают причину со стороны клиента и не доказывают блокировку.
  </Accordion>

  <Accordion title="Время ожидания вызова API истекло. Безопасно ли отправить то же сообщение повторно?">
    Не сразу. Платформа могла уже принять запрос. Проверьте идентификатор сообщения, доступные логи и последующие события Webhook перед выполнением повторной отправки. Связывайте попытки с одним и тем же бизнес-действием и предусматривайте защиту от дубликатов; внешний идентификатор не гарантирует автоматическую идемпотентность эндпоинта.
  </Accordion>

  <Accordion title="В логе отображается плейсхолдер неподдерживаемого сообщения. Отклонил ли WhatsApp это сообщение?">
    Ограничение отображения и сбой доставки — это разные вещи. Проверьте фактическое направление, статус, тип сообщения и наличие ошибок. Для входящего контента следуйте [руководству по неподдерживаемым сообщениям в Inbox](/ru/documentation/inbox/unsupported-messages-in-inbox); не делайте предположений о содержании и не считайте плейсхолдер неудачной исходящей отправкой.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.