All webhooks
Calls
Call answered
call.answeredFires when a call is answered and the two legs are connected (two-way audio). Applies to both inbound and outbound calls. The final duration is delivered later with call.completed.
HTTP request
AISAR sends a signed POST request to your webhook_url:
http
POST {webhook_url}
Content-Type: application/json
X-AISAR-Signature: sha256=...
{
"event": "call.answered",
"event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
"timestamp": "2026-06-06T12:00:08.000000Z",
"company_id": 1,
"data": {
"call_id": 123,
"direction": "inbound",
"status": "answered",
"from_number": "77001234567",
"to_number": "77001234567",
"contact_id": 42,
"conversation_id": 100,
"channel_id": 5,
"external_call_id": "wacall_abc123",
"duration_sec": null,
"started_at": "2026-06-06T12:00:00+00:00",
"answered_at": "2026-06-06T12:00:08+00:00",
"ended_at": null
}
}The X-AISAR-Signature header carries an HMAC-SHA256 signature of the request body — use it to verify the request came from AISAR.
Example payload
json
{
"event": "call.answered",
"event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
"timestamp": "2026-06-06T12:00:08.000000Z",
"company_id": 1,
"data": {
"call_id": 123,
"direction": "inbound",
"status": "answered",
"from_number": "77001234567",
"to_number": "77001234567",
"contact_id": 42,
"conversation_id": 100,
"channel_id": 5,
"external_call_id": "wacall_abc123",
"duration_sec": null,
"started_at": "2026-06-06T12:00:00+00:00",
"answered_at": "2026-06-06T12:00:08+00:00",
"ended_at": null
}
}Payload fields
| Field | Type | Description |
|---|---|---|
call_id | integer | Internal call ID (stable across all lifecycle events of this call) |
direction | string | inbound (from contact) or outbound (placed by operator) |
status | string | Call status: answered |
from_number | string | Caller number. For inbound calls — the customer; for outbound — your WhatsApp Business number |
to_number | string | Callee number. For inbound calls — your WhatsApp Business number; for outbound — the customer |
contact_id | integer|null | Contact ID |
conversation_id | integer|null | Conversation ID |
channel_id | integer | WhatsApp Business channel ID |
external_call_id | string|null | Provider-specific call ID (WhatsApp/SIP) |
duration_sec | integer|null | Still null — the final duration is sent on call.completed |
started_at | string|null | ISO 8601 timestamp the call started ringing |
answered_at | string | ISO 8601 timestamp the call connected |
ended_at | string|null | null until the call ends |