Формат событий вебхука
Примеры данных, которые WAIX отправляет на адрес вашего вебхука.
Входящее сообщение
{
"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.status.updated поле data содержит connection_id, message_id, status, timestamp и recipient_id. Сопоставляйте ID провайдера с записью журнала. Код webhook-получателя должен терпеть дополнительные поля и неизвестные типы событий.
Уникальность
Поле id в корне события совпадает с заголовком X-Waix-Delivery. Сохраняйте его и обрабатывайте каждый ID только один раз: одно событие может прийти повторно. Вебхук содержит данные в формате WAIX, без полного исходного запроса Meta и без содержимого медиафайла.