AISARAISAR
Все вебхуки

Звонки

Запись звонка готова

call.recording_ready

Отправляется, когда запись звонка обработана и доступна для скачивания. Записи создаются асинхронно, поэтому событие приходит чуть позже call.completed, а не одновременно с ним. Аудиофайл доставляется как обычное вложение сообщения: скачивайте его через аутентифицированный media-API по recording.message_id / recording.attachment_id — публичный URL в payload не включается.

HTTP-запрос

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

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

{
  "event": "call.recording_ready",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-06-06T12:02:45.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",
    "recording": {
      "message_id": 7788,
      "attachment_id": 9911,
      "duration_sec": 150,
      "mime_type": "audio/wav"
    }
  }
}

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

Пример payload

json
{
  "event": "call.recording_ready",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-06-06T12:02:45.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",
    "recording": {
      "message_id": 7788,
      "attachment_id": 9911,
      "duration_sec": 150,
      "mime_type": "audio/wav"
    }
  }
}

Поля 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
recording.message_idintegerID сообщения в таймлайне, к которому прикреплена запись
recording.attachment_idintegerID вложения с записью
recording.duration_secinteger|nullДлительность записи в секундах
recording.mime_typestringMIME-тип записи (например, audio/wav)