Skip to main content
The AI Services receive Medera Voice webhooks at:
POST /api/vapi/webhook # main webhook (HMAC-SHA256 verified)
POST /api/vapi/webhook/assistant-request # dynamic assistant config
GET /api/vapi/webhook/health # health
GET /api/vapi/webhook/call/{call_id} # call state
GET /api/vapi/webhook/call/{call_id}/transcript # buffered transcript

Event types

EventWhen
status-updateCall status change
transcriptTranscript chunk available
function-callLLM invoked one of The Intake Agent’s functions
tool-callsTool invocation batch
end-of-call-reportFinal call summary
speech-updateSpeaking / silent state
user-interruptedUser interrupted assistant
hangCall hung up

Signature verification

Webhook signature: medera-voice-signature header. Verified using the configured webhook_secret (HMAC-SHA256). Unverified webhooks are rejected.

Outbound webhooks (to your endpoint)

If your tenant has configured a webhook URL on the deployment, Medera sends signed outbound webhooks:
EventPayload
intake.started{ call_id, deployment_id, patient_phone }
intake.screener.completed{ call_id, screener, score, severity }
intake.crisis.detected{ call_id, risk_band, escalation_id }
intake.summary.ready{ call_id, handoff_packet_url }
intake.completed{ call_id, summary_id, duration_ms }Verify with Medera-Signature: sha256=....