Все вебхуки
Звонки
Запись звонка готова
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_id | integer | Внутренний ID звонка (одинаковый во всех событиях жизненного цикла этого звонка) |
direction | string | inbound (от контакта) или outbound (инициирован оператором) |
status | string | Статус звонка: completed |
from_number | string | Номер вызывающего. Для входящих — клиент; для исходящих — ваш номер WhatsApp Business |
to_number | string | Номер вызываемого. Для входящих — ваш номер WhatsApp Business; для исходящих — клиент |
contact_id | integer|null | ID контакта |
conversation_id | integer|null | ID диалога |
channel_id | integer | ID канала WhatsApp Business |
external_call_id | string|null | ID звонка на стороне провайдера (WhatsApp/SIP) |
duration_sec | integer | Длительность разговора в секундах |
started_at | string|null | Метка времени начала вызова в формате ISO 8601 |
answered_at | string | Метка времени соединения в формате ISO 8601 |
ended_at | string | Метка времени завершения звонка в формате ISO 8601 |
recording.message_id | integer | ID сообщения в таймлайне, к которому прикреплена запись |
recording.attachment_id | integer | ID вложения с записью |
recording.duration_sec | integer|null | Длительность записи в секундах |
recording.mime_type | string | MIME-тип записи (например, audio/wav) |