WAIXAPI
API и интеграции

Формат событий вебхука

Примеры данных, которые WAIX отправляет на адрес вашего вебхука.

2 мин. чтения4 раздела

Входящее сообщение

json
{
  "id": "33333333-3333-4333-8333-333333333333",
  "type": "message.received",
  "created_at": "2026-09-22T06:00:00.000Z",
  "data": {
    "connection_id": "11111111-1111-4111-8111-111111111111",
    "message_id": "wamid.EXAMPLE",
    "contact_wa_id": "77011234567",
    "type": "text",
    "body": "Здравствуйте!",
    "timestamp": "1790056800"
  }
}

Это пример структуры. data.message_id — ID провайдера, а не UUID из POST /messages. created_at — время события WAIX; timestamp — строка времени из Meta. Не путайте секунды Unix и миллисекунды.

Сообщение, отправленное с телефона

Отметьте message.echo в настройках вебхука. WAIX передаст новые сообщения, отправленные из WhatsApp Business на подключённом с Coexistence номере. Подписка на входящие сообщения автоматически эту опцию не включает. Старая история при включении не отправляется.

json
{
  "type": "message.echo",
  "data": {
    "connection_id": "11111111-1111-4111-8111-111111111111",
    "message_id": "wamid.EXAMPLE",
    "contact_wa_id": "77011234567",
    "direction": "outbound_app",
    "source": "whatsapp_business_app",
    "type": "text",
    "body": "Ваш заказ готов, можно забирать.",
    "content": {"body": "Ваш заказ готов, можно забирать."},
    "context": null,
    "from": "77077654321",
    "to": "77011234567",
    "status": "sent",
    "timestamp": "1790056800"
  }
}

data.to и data.contact_wa_id — получатель, data.from — отправитель из события Meta. content содержит данные типа сообщения: текст, координаты, контакт, реакцию или метаданные вложения. Для файла это идентификатор Meta, MIME-тип, подпись и другие доступные поля, а не сам файл и не публичная ссылка. context содержит ссылку на сообщение, на которое ответили, если Meta её передала.

sent означает, что сообщение отправлено из приложения, а не доставлено или прочитано. Это отдельное событие: не запускайте на него автоматический ответ как на входящее сообщение. Редактирование и удаление сообщений в message.echo не входят.

Статус

Для message.status.updated поле data содержит connection_id, message_id, status, timestamp и recipient_id. Сопоставляйте ID провайдера с записью журнала. Код webhook-получателя должен терпеть дополнительные поля и неизвестные типы событий.

Уникальность

Поле id в корне события совпадает с заголовком X-Waix-Delivery. Сохраняйте его и обрабатывайте каждый ID только один раз: одно событие может прийти повторно. Вебхук содержит данные в формате WAIX, без полного исходного запроса Meta и без содержимого медиафайла.

Остался вопрос?

Поможем с подключением и работой WAIX.