The whatsapp.call.recording.updated webhook is sent when the recording of an API-sourced WhatsApp call becomes available or permanently fails.
Use the mediaAssetId with GET /v2/whatsapp/calls/media/{mediaAssetId} to download the complete recording when its status is AVAILABLE.
The error object is included only when the status is FAILED.
Recording Available
{
"id": "evt_call_recording_01JZ8K4V7H3P6Q9R2T5W8X1Y4Z",
"type": "whatsapp.call.recording.updated",
"apiVersion": "v2",
"createTime": "2026-08-04T08:00:00.000Z",
"callingRecording": {
"wacid": "wacid.HBgNNjI4MTM2MTkwNTEzMxUCABE",
"phoneId": "461269257068832",
"mediaAssetId": "66b1f0c2e4b05c2d8f1a3b47",
"status": "AVAILABLE"
}
}Recording Failed
{
"id": "evt_call_recording_01JZ8K4V7H3P6Q9R2T5W8X1Y5A",
"type": "whatsapp.call.recording.updated",
"apiVersion": "v2",
"createTime": "2026-08-04T08:00:30.000Z",
"callingRecording": {
"wacid": "wacid.HBgNNjI4MTM2MTkwNTEzMxUCABE",
"phoneId": "461269257068832",
"mediaAssetId": "66b1f0c2e4b05c2d8f1a3b47",
"status": "FAILED",
"error": {
"code": "CALLING_RECORDING_PROCESSING_FAILED",
"retryable": false
}
}
}The webhook id remains stable when the same event is retried. Use it as the idempotency key when processing webhook deliveries.
