Контакты
Доступность исходящих изменилась
contact.outbound_eligibility_updatedОтправляется при изменении доступности исходящей коммуникации с контактом: обновилось 24-часовое окно переписки WhatsApp Business (новое подходящее входящее сообщение открывает/сбрасывает окно) или изменилось разрешение на WhatsApp-звонок (контакт выдал или отклонил его, либо оно истекло). Важно: это realtime-событие доставляется только по WebSocket (Reverb) в канал компании для использования внутри приложения — во внешние webhook-подписки оно не отправляется. В зависимости от триггера payload имеет одну из двух форм: с объектом call (изменение разрешения на звонок) или без него (изменение 24-часового окна).
HTTP-запрос
AISAR отправляет подписанный POST-запрос на ваш webhook_url:
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
{
"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_id | integer | ID контакта, чья доступность изменилась |
channel_id | integer | ID канала, к которому относится доступность |
contact_account_id | integer | ID аккаунта контакта. Присутствует только в варианте с разрешением на звонок |
call | object | Присутствует только в варианте с разрешением на звонок; отсутствует в варианте 24-часового окна |
call.permission_status | string | Текущее разрешение на WhatsApp-звонок: none, temporary или permanent |
call.permission_expires_at | integer|null | Unix-время истечения temporary-разрешения; null для permanent / none |
call.can_call | boolean | Разрешён ли сейчас исходящий звонок (разрешение действительно и не истекло) |