AISARAISAR
Все вебхуки

Звонки

Звонок завершён

call.completed

Отправляется, когда завершается принятый звонок. Несёт финальную запись звонка с итоговой длительностью разговора. Для звонков, на которые так и не ответили, вместо этого приходит call.missed. Если звонок записывался, следом придёт отдельное событие call.recording_ready, когда запись будет обработана.

HTTP-запрос

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

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

{
  "event": "call.completed",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-06-06T12:02:38.000000Z",
  "company_id": 1,
  "data": {
    "call_id": 123,
    "direction": "inbound",
    "status": "completed",
    "from_number": "77001234567",
    "to_number": "77001234567",
    "contact_id": 42,
    "conversation_id": 100,
    "channel_id": 5,
    "external_call_id": "wacall_abc123",
    "duration_sec": 150,
    "started_at": "2026-06-06T12:00:00+00:00",
    "answered_at": "2026-06-06T12:00:08+00:00",
    "ended_at": "2026-06-06T12:02:38+00:00"
  }
}

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

Пример payload

json
{
  "event": "call.completed",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-06-06T12:02:38.000000Z",
  "company_id": 1,
  "data": {
    "call_id": 123,
    "direction": "inbound",
    "status": "completed",
    "from_number": "77001234567",
    "to_number": "77001234567",
    "contact_id": 42,
    "conversation_id": 100,
    "channel_id": 5,
    "external_call_id": "wacall_abc123",
    "duration_sec": 150,
    "started_at": "2026-06-06T12:00:00+00:00",
    "answered_at": "2026-06-06T12:00:08+00:00",
    "ended_at": "2026-06-06T12:02:38+00:00"
  }
}

Поля payload

ПолеТипОписание
call_idintegerВнутренний ID звонка (одинаковый во всех событиях жизненного цикла этого звонка)
directionstringinbound (от контакта) или outbound (инициирован оператором)
statusstringСтатус звонка: completed
from_numberstringНомер вызывающего. Для входящих — клиент; для исходящих — ваш номер WhatsApp Business
to_numberstringНомер вызываемого. Для входящих — ваш номер WhatsApp Business; для исходящих — клиент
contact_idinteger|nullID контакта
conversation_idinteger|nullID диалога
channel_idintegerID канала WhatsApp Business
external_call_idstring|nullID звонка на стороне провайдера (WhatsApp/SIP)
duration_secintegerДлительность разговора в секундах (от ответа до завершения)
started_atstring|nullМетка времени начала вызова в формате ISO 8601
answered_atstringМетка времени соединения в формате ISO 8601
ended_atstringМетка времени завершения звонка в формате ISO 8601