AISARAISAR
Все вебхуки

Контакты

Доступность исходящих изменилась

contact.outbound_eligibility_updated

Отправляется при изменении доступности исходящей коммуникации с контактом: обновилось 24-часовое окно переписки WhatsApp Business (новое подходящее входящее сообщение открывает/сбрасывает окно) или изменилось разрешение на WhatsApp-звонок (контакт выдал или отклонил его, либо оно истекло). Важно: это realtime-событие доставляется только по WebSocket (Reverb) в канал компании для использования внутри приложения — во внешние webhook-подписки оно не отправляется. В зависимости от триггера payload имеет одну из двух форм: с объектом call (изменение разрешения на звонок) или без него (изменение 24-часового окна).

HTTP-запрос

AISAR отправляет подписанный POST-запрос на ваш webhook_url:

http
POST {webhook_url}
Content-Type: application/json
X-AISAR-Signature: sha256=...

{
  "event": "contact.outbound_eligibility_updated",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-06-20T12:00:00.000000Z",
  "company_id": 1,
  "data": {
    "contact_account_id": 15,
    "contact_id": 10,
    "channel_id": 2,
    "call": {
      "permission_status": "temporary",
      "permission_expires_at": 1781000000,
      "can_call": true
    }
  }
}

Заголовок X-AISAR-Signature содержит HMAC-SHA256 подпись тела запроса — используйте её, чтобы убедиться, что запрос пришёл от AISAR.

Пример payload

json
{
  "event": "contact.outbound_eligibility_updated",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-06-20T12:00:00.000000Z",
  "company_id": 1,
  "data": {
    "contact_account_id": 15,
    "contact_id": 10,
    "channel_id": 2,
    "call": {
      "permission_status": "temporary",
      "permission_expires_at": 1781000000,
      "can_call": true
    }
  }
}

Поля payload

ПолеТипОписание
contact_idintegerID контакта, чья доступность изменилась
channel_idintegerID канала, к которому относится доступность
contact_account_idintegerID аккаунта контакта. Присутствует только в варианте с разрешением на звонок
callobjectПрисутствует только в варианте с разрешением на звонок; отсутствует в варианте 24-часового окна
call.permission_statusstringТекущее разрешение на WhatsApp-звонок: none, temporary или permanent
call.permission_expires_atinteger|nullUnix-время истечения temporary-разрешения; null для permanent / none
call.can_callbooleanРазрешён ли сейчас исходящий звонок (разрешение действительно и не истекло)