WhatsApp Calling Recording Updated Webhook Examples

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.