> ## 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.echo_message.created

> Происходит при фиксации исходящего эхо-сообщения для Public REST API Agent.

Используйте `whatsapp.echo_message.created` для обработки этого события на вашей конечной точке Webhook.

## Триггеры

Происходит при фиксации исходящего эхо-сообщения для Public REST API Agent.

Подпишитесь на `whatsapp.echo_message.created` при [настройке конечной точки Webhook](https://docs.ycloud.com/ru/api-reference/guides/api-fundamentals/configure-webhooks.md).

Это событие доступно только для агентов, подключенных через Public REST API. Используйте `whatsappMessage.id` или `wamid` для сопоставления последующих обновлений статуса. Содержимое сообщения зависит от `type`.

## Синтаксис

YCloud отправляет HTTP-запрос `POST` на ваш настроенный URL-адрес Webhook. Ниже показан один из вариантов полезной нагрузки. Значения в угловых скобках являются плейсхолдерами; их типы перечислены в разделе **Параметры**. Необязательные поля и другие варианты описаны ниже.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "<ID>",
  "type": "whatsapp.echo_message.created",
  "apiVersion": "<API_VERSION>",
  "createTime": "<CREATE_TIME>",
  "whatsappMessage": {
    "id": "<ID>",
    "wamid": "<WAMID>",
    "wabaId": "<WABA_ID>",
    "from": "<FROM>",
    "to": "<TO>",
    "recipientUserId": "<RECIPIENT_USER_ID>",
    "type": "<TYPE>",
    "text": {
      "body": "<BODY>"
    },
    "status": "<STATUS>",
    "createTime": "<CREATE_TIME>",
    "sendTime": "<SEND_TIME>"
  }
}
```

## Параметры

Проверяйте HTTP-заголовок `YCloud-Signature` перед обработкой тела JSON. См. раздел [проверка подписи](https://docs.ycloud.com/ru/api-reference/guides/api-fundamentals/configure-webhooks.md).

### Оболочка события

| Параметр | Тип | Обязательный | Описание |
| - | - | - | - |
| `id` | string | Да | Уникальный идентификатор события. Минимальная длина: `6`. Максимальная длина: `128`. |
| `type` | string | Да | Всегда `whatsapp.echo_message.created`. |
| `apiVersion` | string | Да | Версия API, используемая для формирования этого события. |
| `createTime` | string (date-time) | Да | Время создания события в формате [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339). Например, `2022-06-01T12:00:00.000Z`. |

### Полезная нагрузка события

| Параметр | Тип | Обязательный | Описание |
| - | - | - | - |
| `whatsappMessage` | object | Да | Полезная нагрузка `whatsappMessage`, специфичная для события. |

Четыре общих поля оболочки обязательны. Поля полезной нагрузки зависят от варианта события. В каждой таблице объектов столбец **Обязательный** применяется, если присутствует родительский объект. Необязательные поля могут быть опущены; наличие в примере не делает поле обязательным.

#### whatsappMessage

| Параметр | Тип | Обязательный | Описание |
| - | - | - | - |
| `id` | string | Да | Идентификатор сообщения YCloud. Используйте его для сопоставления созданных и обновленных эхо-событий. |
| `wamid` | string | Нет | Исходный идентификатор сообщения на платформе WhatsApp, если он доступен. |
| `wabaId` | string | Нет | Идентификатор WhatsApp Business Account из исходного обратного вызова, если он доступен. |
| `from` | string | Нет | Номер отправителя компании в формате E.164, если он доступен. |
| `to` | string | Нет | Номер получателя в формате E.164, если обратный вызов идентифицирует клиента по номеру телефона. |
| `recipientUserId` | string | Нет | Идентификатор пользователя получателя в области действия WhatsApp Business (BSUID), если он передан в обратном вызове. |
| `parentRecipientUserId` | string | Нет | Идентификатор родительского пользователя получателя в области действия WhatsApp Business, если он передан в обратном вызове. |
| `type` | string | Нет | Тип сообщения, скопированный из обратного вызова поддерживаемого провайдера. Текущие значения включают text, interactive, image, video, audio, document, sticker, location, contacts и reaction. Клиенты должны поддерживать возможные будущие значения. |
| `text` | object | Нет | Текстовый объект сообщения WhatsApp. |
| `image` | object | Нет | Метаданные медиафайла, скопированные из эхо-обратного вызова Meta Business Agent. |
| `video` | object | Нет | Метаданные медиафайла, скопированные из эхо-обратного вызова Meta Business Agent. |
| `audio` | object | Нет | Метаданные медиафайла, скопированные из эхо-обратного вызова Meta Business Agent. |
| `document` | object | Нет | Метаданные медиафайла, скопированные из эхо-обратного вызова Meta Business Agent. |
| `sticker` | object | Нет | Метаданные медиафайла, скопированные из эхо-обратного вызова Meta Business Agent. |
| `location` | object | Нет | Используйте для сообщений типа `location`. |
| `interactive` | object | Нет | Используется для сообщений типа `interactive`. |
| `contacts` | object\[] | Нет | Элементы массива описаны ниже. |
| `reaction` | object | Нет | Когда пользователь реагирует на сообщения с помощью эмодзи, типу сообщения присваивается значение `reaction`, и это поле включается в ответ. |
| `context` | object | Нет | Используется для указания конкретного сообщения, на которое вы отвечаете. Ответ может быть любого типа сообщения. |
| `status` | string | Нет | Статус сообщения WhatsApp. Одно из значений: `accepted`, `failed`, `sent`, `delivered`, `read`.<ul><li>`accepted`: запрос на отправку сообщения принят нашей системой.</li><li>`failed`: не удалось отправить сообщение, отправленное вашей компанией.</li><li>`sent`: сообщение, отправленное вашей компанией, находится в процессе передачи в системах WhatsApp.</li><li>`delivered`: сообщение, отправленное вашей компанией, доставлено на устройство пользователя.</li><li>`read`: сообщение, отправленное вашей компанией, прочитано пользователем.</li></ul> |
| `errorCode` | string | Нет | Исходный код ошибки, если статус — failed и провайдер предоставил код. |
| `errorMessage` | string | Нет | Исходный заголовок ошибки, если статус — failed и провайдер предоставил его. |
| `createTime` | string (date-time) | Нет | Исходное время эхо-события для созданного события, в формате RFC 3339. |
| `updateTime` | string (date-time) | Нет | Исходное время статуса для обновленного события, в формате RFC 3339. |
| `sendTime` | string (date-time) | Нет | Исходное время эхо-события для созданных событий или исходное время статуса, когда текущее событие сообщает sent. |
| `deliverTime` | string (date-time) | Нет | Исходное время статуса, когда текущее событие сообщает delivered. |
| `readTime` | string (date-time) | Нет | Исходное время статуса, когда текущее событие сообщает read. |

> [accordion] whatsappMessage.text
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `body` | string | Да | Обязательно для текстовых сообщений. Текст текстового сообщения, который может содержать URL, начинающиеся с http\:// или https\://, и форматирование. Доступные параметры форматирования см. здесь. Если вы добавляете URL в текст и хотите включить окно предварительного просмотра в текстовых сообщениях (preview\_url: true), убедитесь, что URL начинается с http\:// или https\:// (рекомендуется использовать URL с https\://). Необходимо указать имя хоста, так как IP-адреса сопоставляться не будут. Максимальная длина: 4096 символов.Максимальная длина: `4096`. |
> | `preview_url` | boolean | Нет | По умолчанию WhatsApp распознает URL и делает их кликабельными, но вы также можете добавить блок предварительного просмотра с дополнительной информацией о ссылке. Установите для этого поля значение true, если хотите включить блок предпросмотра URL. В большинстве случаев получатель увидит кликабельный URL, если вы отправите URL, установите preview\_url в true и укажете объект body со ссылкой http или https. Предварительный просмотр URL отображается только после наступления одного из следующих событий:<ul><li>Компания отправила пользователю шаблон сообщения.</li><li>Пользователь начинает диалог по ссылке "прямой чат".</li><li>Пользователь добавляет номер телефона компании в свою адресную книгу и начинает диалог. По умолчанию: `false`.</li></ul> |

> [accordion] whatsappMessage.image
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `id` | string | Нет | Идентификатор медиафайла у провайдера, если он передан в callback. |
> | `link` | string | Нет | URL медиафайла у провайдера, если он передан в callback. |
> | `caption` | string | Нет | Подпись к медиафайлу, если передана в обратном вызове. |
> | `filename` | string | Нет | Исходное имя файла, если передано в обратном вызове. |
> | `mime_type` | string | Нет | MIME-тип поставщика, скопированный из обратного вызова. |

> [accordion] whatsappMessage.video
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `id` | string | Нет | Идентификатор медиафайла у поставщика, если передан в обратном вызове. |
> | `link` | string | Нет | URL медиафайла у поставщика, если передан в обратном вызове. |
> | `caption` | string | Нет | Подпись к медиафайлу, если передана в обратном вызове. |
> | `filename` | string | Нет | Исходное имя файла, если передано в обратном вызове. |
> | `mime_type` | string | Нет | MIME-тип поставщика, скопированный из обратного вызова. |

> [accordion] whatsappMessage.audio
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `id` | string | Нет | Идентификатор медиафайла у поставщика, если передан в обратном вызове. |
> | `link` | string | Нет | URL медиафайла у поставщика, если передан в обратном вызове. |
> | `caption` | string | Нет | Подпись к медиафайлу, если передана в обратном вызове. |
> | `filename` | string | Нет | Исходное имя файла, если передано в обратном вызове. |
> | `mime_type` | string | Нет | MIME-тип поставщика, скопированный из обратного вызова. |

> [accordion] whatsappMessage.document
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `id` | string | Нет | Идентификатор медиафайла у поставщика, если передан в обратном вызове. |
> | `link` | string | Нет | URL медиафайла у поставщика, если передан в обратном вызове. |
> | `caption` | string | Нет | Подпись к медиафайлу, если передана в обратном вызове. |
> | `filename` | string | Нет | Исходное имя файла, если передано в обратном вызове. |
> | `mime_type` | string | Нет | MIME-тип поставщика, скопированный из обратного вызова. |

> [accordion] whatsappMessage.sticker
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `id` | string | Нет | Идентификатор медиафайла у поставщика, если передан в обратном вызове. |
> | `link` | string | Нет | URL медиафайла у поставщика, если передан в обратном вызове. |
> | `caption` | string | Нет | Подпись к медиафайлу, если передана в обратном вызове. |
> | `filename` | string | Нет | Исходное имя файла, если передано в обратном вызове. |
> | `mime_type` | string | Нет | MIME-тип поставщика, скопированный из обратного вызова. |

> [accordion] whatsappMessage.location
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `latitude` | number (double) | Да | Широта местоположения. |
> | `longitude` | number (double) | Да | Долгота местоположения. |
> | `name` | string | Нет | Название местоположения. |
> | `address` | string | Нет | Адрес местоположения. Отображается только при наличии `name`. |

> [accordion] whatsappMessage.interactive
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `type` | string | Нет | **Обязательный.** Тип интерактивного сообщения, которое вы хотите отправить.<ul><li>`button`: используйте для кнопок быстрого ответа (Reply Buttons).</li><li>`list`: используйте для сообщений со списком (List Messages).</li><li>`cta_url`: используйте для сообщений с кнопкой-ссылкой с призывом к действию (CTA URL Button Messages).</li><li>`product`: используйте для сообщений с одним товаром (Single Product Messages).</li><li>`product_list`: используйте для сообщений с несколькими товарами (Multi-Product Messages).</li><li>`catalog_message`: используйте для сообщений с каталогом (Catalog Messages).</li><li>`location_request_message`: используйте для сообщений с запросом местоположения (Location Request Messages).</li><li>`order_details`: используйте для сообщений с деталями заказа (Order Details Messages).</li><li>`order_status`: используйте для сообщений со статусом заказа (Order Status Messages).</li><li>`voice_call`: используйте для сообщений голосового вызова (Voice Call Messages).</li><li>`flow`: используйте для сообщений Flow (Flow Messages).</li></ul> |
> | `action` | object | Нет | **Обязательный.** Действие, которое пользователь должен выполнить после прочтения сообщения `interactive`. |
> | `body` | object | Нет | Необязательно для типа `product`. Обязательно для других типов сообщений. |
> | `header` | object | Нет | Обязательно для типа `product_list`. Необязательно для других типов. |
> | `footer` | object | Нет | Необязательно. Объект с нижним колонтитулом (footer) сообщения. |

> [accordion] whatsappMessage.interactive.action
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `buttons` | object\[] | Нет | Обязательно для кнопок быстрого ответа (Reply Buttons). Можно указать до 3 кнопок. |
> | `button` | string | Нет | Обязательно для сообщений со списком (List Messages). Текст кнопки. Не может быть пустой строкой и должен быть уникальным в пределах сообщения. Поддерживаются эмодзи, markdown не поддерживается. Максимальная длина: 20 символов.Максимальная длина: `20`. |
> | `catalog_id` | string | Нет | Обязательно для Single Product Messages и Multi-Product Messages. Уникальный идентификатор каталога Facebook, привязанного к вашему WhatsApp Business Account. Этот ID можно получить через [Meta Commerce Manager](https://business.facebook.com/commerce). |
> | `product_retailer_id` | string | Нет | Обязательно для Single Product Messages и Multi-Product Messages. Уникальный идентификатор товара в каталоге. |
> | `sections` | object\[] | Нет | Обязательно для List Messages и Multi-Product Messages. Массив объектов разделов (section). Минимум 1, максимум 10. |
> | `name` | string | Нет | Название действия. Обязательно для кнопок с призывом к действию (CTA).<ul><li>`cta_url`: используйте для кнопок-ссылок с призывом к действию (CTA URL buttons).</li><li>`catalog_message`: используйте для Catalog Messages.</li><li>`send_location`: используйте для кнопок запроса местоположения.</li><li>`flow`: используйте для кнопок Flow.</li><li>`review_and_pay`: используйте для кнопок с деталями заказа.</li><li>`review_order`: используйте для кнопок со статусом заказа.</li><li>`voice_call`: используйте для кнопок голосового вызова.</li></ul> |
> | `parameters` | object | Нет | Параметры действия. Обязательно для кнопок с призывом к действию (CTA). |

> [accordion] whatsappMessage.interactive.action.buttons\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `type` | string | Нет | Единственный поддерживаемый тип — `reply` (для Reply Button). |
> | `reply` | object | Нет | Поля объекта перечислены ниже. |

> [accordion] whatsappMessage.interactive.action.buttons\[].reply
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `title` | string | Нет | Текст кнопки. Не может быть пустой строкой и должен быть уникальным в пределах сообщения. Эмодзи поддерживаются, Markdown не поддерживается. Максимальная длина: 20 символов.Максимальная длина: `20`. |
> | `id` | string | Нет | Уникальный идентификатор кнопки. Этот ID возвращается в Webhook при нажатии кнопки пользователем. Максимальная длина: 256 символов. Не допускаются начальные или конечные пробелы при указании ID.Максимальная длина: `256`. |

> [accordion] whatsappMessage.interactive.action.sections\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `title` | string | Нет | **Обязательно, если сообщение содержит более одного раздела.** Название раздела. Максимальная длина: 24 символа.Максимальная длина: `24`. |
> | `rows` | object\[] | Нет | Содержит список строк. Всего во всех разделах может быть не более 10 строк. Каждая строка должна иметь заголовок (максимальная длина: 24 символа) и ID (максимальная длина: 200 символов). Вы можете добавить описание (максимальная длина: 72 символа), но оно необязательно. |
> | `product_items` | object\[] | Нет | Требуется для многотоварных сообщений (Multi-Product Messages). Массив объектов товаров. Минимум 1 товар в разделе и не более 30 товаров во всех разделах суммарно. |

> [accordion] whatsappMessage.interactive.action.sections\[].rows\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `id` | string | Нет | Уникальный ID строки. Максимальная длина: 200 символов.Максимальная длина: `200`. |
> | `title` | string | Нет | Содержимое заголовка строки. Максимальная длина: 24 символа.Максимальная длина: `24`. |
> | `description` | string | Нет | Содержимое описания строки. Максимальная длина: 72 символа.Максимальная длина: `72`. |

> [accordion] whatsappMessage.interactive.action.sections\[].product\_items\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `product_retailer_id` | string | Нет | Требуется для многотоварных сообщений (Multi-Product Messages). Уникальный идентификатор товара в каталоге. |

> [accordion] whatsappMessage.interactive.action.parameters
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `display_text` | string | Нет | Текст кнопки CTA URL. Максимальная длина: 20 байт.Максимальная длина: `20`. |
> | `url` | string | Нет | URL кнопки CTA URL. |
> | `thumbnail_product_retailer_id` | string | Нет | Артикул товара (SKU). Обозначается как **Content ID** в [Commerce Manager](https://business.facebook.com/commerce). Миниатюра этого товара будет использоваться в качестве изображения заголовка сообщения. |
> | `flow_message_version` | string | Нет | Используется для кнопок `flow`. Значение должно быть "3". |
> | `flow_token` | string | Нет | Используется для кнопок `flow`. Токен Flow, созданный компанией для использования в качестве идентификатора. По умолчанию `unused`. |
> | `flow_id` | string | Нет | Условно обязательно для кнопок `flow`. Уникальный ID Flow, предоставленный WhatsApp. Не может использоваться с параметром `flow_name`. |
> | `flow_name` | string | Нет | Условно обязательно для кнопок `flow`. Название созданного вами Flow. Не может использоваться с параметром `flow_id`. При изменении названия Flow потребуется обновить этот параметр в соответствии с новым названием. |
> | `flow_cta` | string | Нет | Обязательно для кнопок `flow`. Текст на CTA-кнопке. Например: "Open flow!". Максимальная длина: 20 символов.Максимальная длина: `20`. |
> | `flow_action` | string | Нет | Используется для кнопок `flow`. Либо `navigate`, либо `data_exchange`. По умолчанию: `navigate`. |
> | `flow_action_payload` | object | Нет | Обязательно, если `flow_action` имеет значение `navigate`. В противном случае должно быть опущено. |
> | `reference_id` | string | Нет | Обязательно для кнопок `review_and_pay`. Уникальный идентификатор заказа, предоставленный компанией. Чувствителен к регистру, не может быть пустой строкой, может содержать только буквы латинского алфавита, цифры, знаки подчеркивания, дефисы или точки и не должен превышать 35 символов.Параметр `reference_id` должен быть уникальным для каждого сообщения order\_details конкретной компании. При необходимости отправить несколько сообщений order\_details для одного и того же заказа рекомендуется включить порядковый номер в reference\_id (например, "BM345A-12") для обеспечения уникальности reference\_id. |
> | `type` | string | Нет | Обязательно для кнопок `review_and_pay`. Тип товаров, оплачиваемых в этом заказе. В настоящее время поддерживаются варианты `digital-goods` и `physical-goods`. |
> | `beneficiaries` | object\[] | Нет | Обязательно для кнопок `review_and_pay`. Массив получателей для этого заказа. Получатель — это предполагаемый адресат для доставки физических товаров из заказа. Информация о получателе не отображается пользователям, но требуется для юридических целей и соблюдения нормативных требований. |
> | `currency` | string | Нет | Обязательно для кнопок `review_and_pay`. Валюта для этого заказа. В настоящее время единственным поддерживаемым значением является `INR`. |
> | `total_amount` | object | Нет | Обязательно для кнопок `review_and_pay`. Общая сумма этого заказа. |
> | `order` | object | Нет | Обязательно для кнопок `review_and_pay` или `review_order`.Для кнопок `review_and_pay` предоставляет `status`, `items`, `subtotal`, `tax` заказа и т. д.Для кнопок `review_order` предоставляет только `status` и `description` заказа. |
> | `payment_settings` | object\[] | Нет | Обязательно для кнопок `review_and_pay`. Настройки оплаты для заказа. |

> [accordion] whatsappMessage.interactive.action.parameters.flow\_action\_payload
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `screen` | string | Нет | Идентификатор экрана, отображаемого первым. Он должен быть экраном **entry** . |
> | `data` | object | Нет | Необязательные входные данные для первого экрана Flow. Если указаны, должны представлять собой непустой объект. |

> [accordion] whatsappMessage.interactive.action.parameters.beneficiaries\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `name` | string | Да | Имя физического лица или название компании, получающей физические товары. Не может превышать 200 символов.Максимальная длина: `200`. |
> | `address_line1` | string | Да | Адрес доставки (номер дома/корпуса, название улицы и т. д.). Не может превышать 100 символов.Максимальная длина: `100`. |
> | `address_line2` | string | Нет | Адрес доставки (ориентир, район и т. д.). Не может превышать 100 символов.Максимальная длина: `100`. |
> | `city` | string | Да | Название города. |
> | `state` | string | Да | Название штата/региона. |
> | `country` | string | Да | Название страны. В настоящее время единственным поддерживаемым значением является `India`. |
> | `postal_code` | string | Да | 6-значный почтовый индекс адреса доставки.Минимальная длина: `6`. Максимальная длина: `6`. |

> [accordion] whatsappMessage.interactive.action.parameters.total\_amount
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `offset` | integer (int32) | Да | Должно быть `100` для `INR`. |
> | `value` | integer (int32) | Да | Положительное целое число, представляющее сумму, умноженную на смещение (offset). Например, для ₹12.34 значение равно 1234. |
> | `description` | string | Нет | Используйте только для `tax`, `shipping` или `discount`. Описание суммы. Максимальное ограничение — 60 символов.Максимальная длина: `60`. |
> | `discount_program_name` | string | Нет | Используйте только для `discount`. Текст, используемый для определения заказов со скидками или поощрениями. Если заказ поощрительный, продавцу необходимо указать эту информацию. Максимальное ограничение — 60 символов.Максимальная длина: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `status` | string | Нет | Единственным поддерживаемым значением в сообщении `order_details` является `pending`. В сообщении `order_status` поле `status` может принимать значения: `pending`, `processing`, `partially_shipped`, `shipped`, `completed` или `canceled`. |
> | `type` | string | Нет | Единственное поддерживаемое значение — `quick_pay`. При передаче этого поля кнопка "Review and Pay" скрывается, и в блоке деталей заказа отображается только кнопка "Pay Now". |
> | `catalog_id` | string | Нет | Уникальный идентификатор каталога Facebook, используемого компанией. Если вы не укажете это поле, необходимо передать следующие поля внутри объекта items: `country_of_origin`, `importer_name` и `importer_address`. |
> | `items` | object\[] | Нет | Массив товаров в заказе. |
> | `subtotal` | object | Нет | Значение **должно быть равно** сумме `order.amount.value` \* `order.amount.quantity`. |
> | `tax` | object | Нет | Информация о налогах для этого заказа. |
> | `shipping` | object | Нет | Стоимость доставки заказа. |
> | `discount` | object | Нет | Размер скидки для этого заказа. |
> | `expiration` | object | Нет | Срок действия этого заказа. |
> | `description` | string | Нет | **Необязательно.** Текст для передачи информации о статусе. Может быть полезен при отправке отмены. Максимальный лимит — 120 символов.Максимальная длина: `120`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.items\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `retailer_id` | string | Нет | Идентификатор контента (Content ID) для позиции в заказе из вашего каталога. |
> | `name` | string | Да | Название позиции, отображаемое пользователю. Не может превышать 60 символов.Максимальная длина: `60`. |
> | `image` | object | Нет | Пользовательское изображение для позиции, отображаемое пользователю. |
> | `amount` | object | Да | Цена за единицу товара. |
> | `sale_amount` | object | Нет | Цена за единицу товара со скидкой. Должна быть меньше исходной суммы. Если указано, это поле используется для расчета промежуточного итога. |
> | `quantity` | integer (int32) | Да | Количество позиций в заказе. |
> | `country_of_origin` | string | Нет | Обязательно, если не указано `catalog_id`. Страна происхождения товара. |
> | `importer_name` | string | Нет | Обязательно, если не указано `catalog_id`. Название компании-импортера. |
> | `importer_address` | string | Нет | Обязательно, если не указано `catalog_id`. Адрес компании-импортера. |

> [accordion] whatsappMessage.interactive.action.parameters.order.items\[].image
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `id` | string | Нет | \*\*Используйте это, когда медиафайл загружен на серверы WhatsApp.\*\*Укажите идентификатор медиаобъекта, полученный из WhatsApp media upload API (\[[https://docs.ycloud.com/reference/whatsapp\_media-upload#/](https://docs.ycloud.com/reference/whatsapp_media-upload#/)]\([https://docs.ycloud.com/reference/whatsapp\_media-upload#/)).Примечание](https://docs.ycloud.com/reference/whatsapp_media-upload#/\)\).Примечание): необходимо указать либо `id`, либо `link`. Если указаны оба параметра, `id` имеет приоритет. |
> | `link` | string | Нет | \*\*Используйте это при отправке медиафайла напрямую с вашего сервера.\*\*Протокол и URL отправляемого медиафайла. Используйте только с URL-адресами HTTP/HTTPS.Примечание: WhatsApp Cloud API кэширует медиаресурсы на 10 минут. Чтобы гарантировать актуальность содержимого, добавьте к URL случайные параметры строки запроса.Примечание: необходимо указать либо `id`, либо `link`. Если указаны оба параметра, `id` имеет приоритет, а `link` будет проигнорирован. |
> | `caption` | string | Нет | Описывает указанный медиафайл `image`, `gif`, `video` или `document`. Не применяется в `header` для сообщений `template` или `interactive`. |
> | `filename` | string | Нет | Описывает имя файла для конкретного документа. Используется только с медиафайлами `document`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.items\[].amount
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `offset` | integer (int32) | Да | Должно быть `100` для `INR`. |
> | `value` | integer (int32) | Да | Положительное целое число, представляющее сумму, умноженную на коэффициент смещения (offset). Например, ₹12.34 соответствует значению 1234. |
> | `description` | string | Нет | Используется только для `tax`, `shipping` или `discount`. Описание суммы. Максимальный лимит — 60 символов.Максимальная длина: `60`. |
> | `discount_program_name` | string | Нет | Используйте только для `discount`. Текст, используемый для описания поощрительных заказов. Если заказ является поощрительным, продавец должен указать эту информацию. Максимальная длина — 60 символов.Максимальная длина: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.items\[].sale\_amount
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `offset` | integer (int32) | Да | Должно быть `100` для `INR`. |
> | `value` | integer (int32) | Да | Положительное целое число, представляющее сумму, умноженную на коэффициент смещения (offset). Например, для ₹12.34 значение равно 1234. |
> | `description` | string | Нет | Используйте только для `tax`, `shipping` или `discount`. Описание суммы. Максимальная длина — 60 символов.Максимальная длина: `60`. |
> | `discount_program_name` | string | Нет | Используйте только для `discount`. Текст, используемый для описания поощрительных заказов. Если заказ является поощрительным, продавец должен указать эту информацию. Максимальная длина — 60 символов.Максимальная длина: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.subtotal
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `offset` | integer (int32) | Да | Должно быть `100` для `INR`. |
> | `value` | integer (int32) | Да | Положительное целое число, представляющее сумму, умноженную на коэффициент смещения (offset). Например, для ₹12.34 значение равно 1234. |
> | `description` | string | Нет | Используйте только для `tax`, `shipping` или `discount`. Описание суммы. Максимальная длина — 60 символов.Максимальная длина: `60`. |
> | `discount_program_name` | string | Нет | Используйте только для `discount`. Текст, используемый для описания поощрительных заказов. Если заказ является поощрительным, продавец должен указать эту информацию. Максимальная длина — 60 символов.Максимальная длина: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.tax
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `offset` | integer (int32) | Да | Должно быть `100` для `INR`. |
> | `value` | integer (int32) | Да | Положительное целое число, представляющее сумму, умноженную на коэффициент смещения (offset). Например, для ₹12.34 значение равно 1234. |
> | `description` | string | Нет | Используйте только для `tax`, `shipping` или `discount`. Описание суммы. Максимальная длина — 60 символов.Максимальная длина: `60`. |
> | `discount_program_name` | string | Нет | Используйте только для `discount`. Текст, используемый для описания поощрительных заказов. Если заказ является поощрительным, продавец должен указать эту информацию. Максимальная длина — 60 символов.Максимальная длина: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.shipping
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `offset` | integer (int32) | Да | Должно быть `100` для `INR`. |
> | `value` | integer (int32) | Да | Положительное целое число, представляющее сумму, умноженную на коэффициент смещения (offset). Например, для ₹12.34 значение равно 1234. |
> | `description` | string | Нет | Используйте только для `tax`, `shipping` или `discount`. Описание суммы. Максимальная длина — 60 символов.Максимальная длина: `60`. |
> | `discount_program_name` | string | Нет | Используйте только для `discount`. Текст, используемый для описания поощрительных заказов. Если к заказу применяется скидка или акция, продавец должен указать эту информацию. Максимальная длина — 60 символов.Максимальная длина: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.discount
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `offset` | integer (int32) | Да | Должно быть `100` для `INR`. |
> | `value` | integer (int32) | Да | Положительное целое число, представляющее сумму, умноженную на коэффициент смещения (offset). Например, значение 1234 соответствует ₹12.34. |
> | `description` | string | Нет | Используйте только для `tax`, `shipping` или `discount`. Описание суммы. Максимальная длина — 60 символов.Максимальная длина: `60`. |
> | `discount_program_name` | string | Нет | Используйте только для `discount`. Текст, используемый для описания поощрительных заказов. Если к заказу применяется скидка или акция, продавец должен указать эту информацию. Максимальная длина — 60 символов.Максимальная длина: `60`. |

> [accordion] whatsappMessage.interactive.action.parameters.order.expiration
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `timestamp` | string | Да | Строка с меткой времени UTC в секундах, указывающая время истечения срока действия заказа. Минимальное значение — 300 секунд. |
> | `description` | string | Нет | Текстовое пояснение причины истечения срока действия.Максимальная длина: `120`. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `type` | string | Да | Значение должно быть установлено на `payment_gateway`. |
> | `payment_gateway` | object | Да | Объект, содержащий информацию о платежном аккаунте. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[].payment\_gateway
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `type` | string | Да | Тип платежа. Необходимо установить значение `billdesk`, `razorpay`, `payu` или `zaakpay`, если для приема платежей подключен платежный шлюз BillDesk, Razorpay, PayU или Zaakpay. |
> | `configuration_name` | string | Да | Название предварительно настроенной конфигурации платежей для этого заказа. Длина не должна превышать 60 символов. Это значение должно совпадать с конфигурацией платежей, настроенной в WhatsApp Business Manager.Максимальная длина: `60`. |
> | `billdesk` | object | Нет | Дополнительная информация для BillDesk. Пользовательские поля (extra) используются для сохранения любых данных по конкретному заказу. Максимальная длина каждого поля extra — 120 символов. |
> | `payu` | object | Нет | Дополнительная информация для PayU. Пользовательские поля (udf) используются для сохранения любых данных по конкретному заказу. Максимальная длина каждого поля UDF — 255 символов. |
> | `razorpay` | object | Нет | Дополнительная информация для Razorpay. |
> | `zaakpay` | object | Нет | Дополнительная информация для Zaakpay. Пользовательские поля (extra) используются для хранения любых сведений, относящихся к конкретному заказу. Длина каждого дополнительного поля не должна превышать 180 символов. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[].payment\_gateway.billdesk
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `additional_info1` | string | Нет | Пользовательская информация об этом заказе для BillDesk.Максимальная длина: `120` символов. |
> | `additional_info2` | string | Нет | Пользовательская информация об этом заказе для BillDesk.Максимальная длина: `120` символов. |
> | `additional_info3` | string | Нет | Пользовательская информация об этом заказе для BillDesk.Максимальная длина: `120` символов. |
> | `additional_info4` | string | Нет | Пользовательская информация об этом заказе для BillDesk.Максимальная длина: `120` символов. |
> | `additional_info5` | string | Нет | Пользовательская информация об этом заказе для BillDesk.Максимальная длина: `120` символов. |
> | `additional_info6` | string | Нет | Пользовательская информация об этом заказе для BillDesk.Максимальная длина: `120` символов. |
> | `additional_info7` | string | Нет | Пользовательская информация об этом заказе для BillDesk.Максимальная длина: `120` символов. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[].payment\_gateway.payu
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `udf1` | string | Нет | Пользовательская информация об этом заказе для PayU.Максимальная длина: `255` символов. |
> | `udf2` | string | Нет | Пользовательская информация об этом заказе для PayU.Максимальная длина: `255` символов. |
> | `udf3` | string | Нет | Пользовательская информация об этом заказе для PayU.Максимальная длина: `255` символов. |
> | `udf4` | string | Нет | Пользовательская информация об этом заказе для PayU.Максимальная длина: `255` символов. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[].payment\_gateway.razorpay
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `receipt` | string | Нет | Номер квитанции, соответствующий этому заказу, задаваемый для вашей внутренней идентификации. Поддерживается максимальная длина 40 символов, минимальная длина — больше 0 символов. |
> | `notes` | object | Нет | Объект может представлять собой пары «ключ-значение» максимум с 15 ключами, при этом длина каждого значения ограничена 256 символами. |

> [accordion] whatsappMessage.interactive.action.parameters.payment\_settings\[].payment\_gateway.zaakpay
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `extra1` | string | Нет | Пользовательская информация об этом заказе для Zaakpay.Максимальная длина: `180` символов. |
> | `extra2` | string | Нет | Пользовательская информация об этом заказе для Zaakpay.Максимальная длина: `180` символов. |

> [accordion] whatsappMessage.interactive.body
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `text` | string | Нет | Текст основного содержимого сообщения. Поддерживаются эмодзи и markdown. Максимальная длина: 1024 символа.Максимальная длина: `1024`. |

> [accordion] whatsappMessage.interactive.header
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `type` | string | Нет | **Обязательный параметр.** Тип заголовка, который вы хотите использовать.<ul><li>`text`: используется для сообщений со списком (List Messages), кнопок ответа (Reply Buttons) и сообщений с несколькими товарами (Multi-Product Messages).</li><li>`video`: используется для кнопок ответа (Reply Buttons).</li><li>`image`: используется для кнопок ответа (Reply Buttons).</li><li>`document`: используется для кнопок ответа (Reply Buttons).</li></ul> |
> | `text` | string | Нет | Текст для заголовка. Форматирование допускает эмодзи, но не markdown.Максимальная длина: `60`. |
> | `image` | object | Нет | Используйте для сообщений `image`, `gif`, `video`, `audio`, `document` или `sticker`. См. также раздел [Supported Media Types](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#supported-media-types). |
> | `video` | object | Нет | Используйте для сообщений `image`, `gif`, `video`, `audio`, `document` или `sticker`. См. также раздел [Supported Media Types](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#supported-media-types). |
> | `document` | object | Нет | Используйте для сообщений `image`, `gif`, `video`, `audio`, `document` или `sticker`. См. также раздел [Supported Media Types](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media#supported-media-types). |

> [accordion] whatsappMessage.interactive.header.image
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `id` | string | Нет | \*\*Используйте этот параметр, когда медиафайл загружен на серверы WhatsApp.\*\*Укажите идентификатор медиаобъекта, полученный от WhatsApp media upload API (\[[https://docs.ycloud.com/reference/whatsapp\_media-upload#/](https://docs.ycloud.com/reference/whatsapp_media-upload#/)]\([https://docs.ycloud.com/reference/whatsapp\_media-upload#/)).Примечание](https://docs.ycloud.com/reference/whatsapp_media-upload#/\)\).Примечание). Необходимо указать либо `id`, либо `link`. Если указаны оба параметра, приоритет имеет `id`. |
> | `link` | string | Нет | \*\*Используйте этот параметр при отправке медиафайла напрямую с вашего сервера.\*\*Протокол и URL отправляемого медиафайла. Используйте только с URL HTTP/HTTPS.Примечание. WhatsApp Cloud API кеширует медиаресурсы на 10 минут. Чтобы гарантировать отображение актуального содержимого, добавьте к URL случайные параметры строки запроса.Примечание. Необходимо указать либо `id`, либо `link`. Если указаны оба параметра, приоритет имеет `id`, а `link` будет проигнорирован. |
> | `caption` | string | Нет | Описывает указанный медиафайл `image`, `gif`, `video` или `document`. Не применяется в `header` сообщений `template` или `interactive`. |
> | `filename` | string | Нет | Описывает имя файла для указанного документа. Используется только с медиафайлом `document`. |

> [accordion] whatsappMessage.interactive.header.video
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `id` | string | Нет | \*\*Используйте этот параметр, когда медиафайл загружен на серверы WhatsApp.\*\*Укажите идентификатор медиаобъекта, полученный от WhatsApp media upload API (\[[https://docs.ycloud.com/reference/whatsapp\_media-upload#/](https://docs.ycloud.com/reference/whatsapp_media-upload#/)]\([https://docs.ycloud.com/reference/whatsapp\_media-upload#/)).Примечание](https://docs.ycloud.com/reference/whatsapp_media-upload#/\)\).Примечание). Необходимо указать либо `id`, либо `link`. Если указаны оба параметра, приоритет имеет `id`. |
> | `link` | string | Нет | \*\*Используйте этот параметр при отправке медиафайлов напрямую с вашего сервера.\*\*Протокол и URL отправляемого медиафайла. Используйте только с URL HTTP/HTTPS.Примечание: WhatsApp Cloud API кэширует медиаресурсы на 10 минут. Чтобы гарантировать получение актуального контента, добавьте к URL случайные параметры строки запроса.Примечание: необходимо указать либо `id`, либо `link`. Если указаны оба, приоритет имеет `id`, а `link` будет проигнорирован. |
> | `caption` | string | Нет | Описывает указанный медиафайл `image`, `gif`, `video` или `document`. Не применяется в `header` сообщений `template` или `interactive`. |
> | `filename` | string | Нет | Описывает имя файла для указанного документа. Используется только с медиафайлами `document`. |

> [accordion] whatsappMessage.interactive.header.document
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `id` | string | Нет | \*\*Используйте этот параметр, если медиафайл загружен на серверы WhatsApp.\*\*Укажите идентификатор объекта медиафайла, полученный из API загрузки медиафайлов WhatsApp (\[[https://docs.ycloud.com/reference/whatsapp\_media-upload#/](https://docs.ycloud.com/reference/whatsapp_media-upload#/)]\([https://docs.ycloud.com/reference/whatsapp\_media-upload#/)).Примечание](https://docs.ycloud.com/reference/whatsapp_media-upload#/\)\).Примечание): необходимо указать либо `id`, либо `link`. Если указаны оба, приоритет имеет `id`. |
> | `link` | string | Нет | \*\*Используйте этот параметр при отправке медиафайлов напрямую с вашего сервера.\*\*Протокол и URL отправляемого медиафайла. Используйте только с URL HTTP/HTTPS.Примечание: WhatsApp Cloud API кэширует медиаресурсы на 10 минут. Чтобы гарантировать получение актуального контента, добавьте к URL случайные параметры строки запроса.Примечание: необходимо указать либо `id`, либо `link`. Если указаны оба, приоритет имеет `id`, а `link` будет проигнорирован. |
> | `caption` | string | Нет | Описывает указанный медиафайл `image`, `gif`, `video` или `document`. Не применяется в `header` сообщений `template` или `interactive`. |
> | `filename` | string | Нет | Описывает имя файла для указанного документа. Используется только с медиафайлами `document`. |

> [accordion] whatsappMessage.interactive.footer
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `text` | string | Нет | Содержимое нижнего колонтитула (footer). Поддерживаются эмодзи и markdown. Поддерживаются ссылки. Максимальная длина: 60 символов.Максимальная длина: `60`. |

> [accordion] whatsappMessage.contacts\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `addresses` | object\[] | Нет | Элементы массива описаны ниже. |
> | `birthday` | string | Нет | Строка в формате `YYYY-MM-DD`. |
> | `emails` | object\[] | Нет | Элементы массива описаны ниже. |
> | `name` | object | Да | Полное имя контакта, отформатированное как объект name. |
> | `org` | object | Нет | Сведения об организации контакта, отформатированные как объект org. |
> | `phones` | object\[] | Нет | Номер(а) телефона контакта, отформатированные как объект phone. |
> | `urls` | object\[] | Нет | URL контакта, отформатированные как объект urls. |
> | `vcard` | string | Нет | Необязательная визитная карточка vCard, переданная вместе с полезной нагрузкой отправленного контакта. |
> | `origin` | string | Нет | Устанавливается в `contact_request`, когда пользователь предоставил контакт в ответ на сообщение с запросом контактных данных. |

> [accordion] whatsappMessage.contacts\[].addresses\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `street` | string | Нет | Номер дома и название улицы. |
> | `city` | string | Нет | Название города. |
> | `state` | string | Нет | Аббревиатура штата/региона. |
> | `zip` | string | Нет | Почтовый индекс. |
> | `country` | string | Нет | Полное название страны. |
> | `country_code` | string | Нет | Двухбуквенный код страны. |
> | `type` | string | Нет | Стандартные значения: `HOME` и `WORK`. |

> [accordion] whatsappMessage.contacts\[].emails\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `email` | string | Нет | Адрес электронной почты. |
> | `type` | string | Нет | Стандартные значения: `HOME` и `WORK`. |

> [accordion] whatsappMessage.contacts\[].name
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `formatted_name` | string | Да | Полное имя в привычном формате. |
> | `first_name` | string | Нет | Имя. |
> | `last_name` | string | Нет | Фамилия. |
> | `middle_name` | string | Нет | Второе имя / отчество. |
> | `suffix` | string | Нет | Суффикс имени. |
> | `prefix` | string | Нет | Префикс имени. |

> [accordion] whatsappMessage.contacts\[].org
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `company` | string | Нет | Название компании контакта. |
> | `department` | string | Нет | Название отдела контакта. |
> | `title` | string | Нет | Должность контакта. |

> [accordion] whatsappMessage.contacts\[].phones\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `phone` | string | Нет | Автоматически заполняется значением `wa_id` в виде отформатированного номера телефона. |
> | `type` | string | Нет | Стандартные значения: `CELL`, `MAIN`, `IPHONE`, `HOME` и `WORK`. |
> | `wa_id` | string | Нет | WhatsApp ID. |

> [accordion] whatsappMessage.contacts\[].urls\[]
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `url` | string | Нет | URL. |
> | `type` | string | Нет | Стандартные значения: `HOME` и `WORK`. |

> [accordion] whatsappMessage.reaction
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `message_id` | string | Да | Указывает `wamid` полученного сообщения, на которое была поставлена реакция. |
> | `emoji` | string | Нет | **Обязательно** при отправке сообщения `reaction`. Укажите `""`, если хотите удалить эмодзи. **Необязательно** , если сообщение получено от пользователя. Это поле присутствует, когда пользователь ставит реакцию с эмодзи на сообщения. В противном случае это указывает на то, что пользователь удалил эмодзи. |

> [accordion] whatsappMessage.context
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `message_id` | string | Нет | Указывает `wamid` сообщения, на которое вы отвечаете. `wamid` — это исходный ID сообщения на платформе WhatsApp. |

## Пример

Ниже представлен JSON тела запроса, отправляемого вашему обработчику. Идентификаторы, номера телефонов и другие параметры аккаунта приведены для наглядности.

> [accordion] Эхо исходящего текстового сообщения
>
> Сохраните текст из whatsappMessage.text.body. Поля id и wamid связывают последующие события статуса.
>
> ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
> {
>   "id": "evt_example_echo_text",
>   "type": "whatsapp.echo_message.created",
>   "apiVersion": "v2",
>   "createTime": "2026-09-09T02:00:00.000Z",
>   "whatsappMessage": {
>     "id": "MESSAGE_ID",
>     "wamid": "wamid.EXAMPLE",
>     "wabaId": "WABA_ID",
>     "from": "+12025550124",
>     "to": "+12025550123",
>     "recipientUserId": "GB.898232076600896",
>     "type": "text",
>     "text": {
>       "body": "Hello! How can I help you?"
>     },
>     "status": "sent",
>     "createTime": "2026-09-09T02:00:00.000Z",
>     "sendTime": "2026-09-09T02:00:00.000Z"
>   }
> }
> ```

> [accordion] Эхо-сообщение исходящего изображения
>
> Содержимое сообщения зависит от его типа. Рассматривайте идентификаторы медиа как ссылки провайдера, а не как общедоступные URL для скачивания.
>
> ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
> {
>   "id": "evt_example_echo_image",
>   "type": "whatsapp.echo_message.created",
>   "apiVersion": "v2",
>   "createTime": "2026-09-09T02:00:00.000Z",
>   "whatsappMessage": {
>     "id": "IMAGE_MESSAGE_ID",
>     "wamid": "wamid.IMAGE_EXAMPLE",
>     "wabaId": "WABA_ID",
>     "from": "+12025550124",
>     "to": "+12025550123",
>     "recipientUserId": "GB.898232076600896",
>     "type": "image",
>     "image": {
>       "id": "MEDIA_ID",
>       "mime_type": "image/jpeg"
>     },
>     "status": "sent",
>     "createTime": "2026-09-09T02:00:00.000Z",
>     "sendTime": "2026-09-09T02:00:00.000Z"
>   }
> }
> ```

После проверки подписи и надежного сохранения события верните ответ `2xx`. Длительные операции выполняйте асинхронно.

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
HTTP/1.1 200 OK
```

Пошаговые сценарии см. в [примерах с пояснениями](https://docs.ycloud.com/ru/api-reference/guides/examples/webhook-examples/whatsapp-echo-message-created).


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