Overview
Echo’s webhook system lets you register multiple HTTPS endpoints per project. Each endpoint subscribes to specific events, carries its own signing secret, and benefits from automatic retry with a full delivery audit log.Events
Subscribe any endpoint to one or more of these events:
An endpoint with no matching subscription for a fired event is silently skipped.
Creating a Webhook Endpoint
Response
Event Payloads
Every delivery sends a JSON body with this envelope:- call.started
- call.ended
- call.summary
Request Headers
Every delivery includes these headers:
Use
X-Echo-Timestamp to reject replayed requests older than a few minutes.
Verifying Signatures
Echo signs the raw request body with HMAC-SHA256 using your endpoint’ssigning_secret. Always verify the signature before processing a webhook. This prevents spoofed requests from triggering actions in your system.
Retry & Failure Alerting
Echo automatically retries failed deliveries up to 4 attempts total with exponential backoff:
A delivery is considered failed if your server returns a non-
2xx response, times out (5 s per attempt), or is unreachable. After all 4 attempts fail, the delivery is marked failed and no further automatic retries are scheduled.
After 4 consecutive delivery failures on the same endpoint, Echo sends one email alert to all business members.
Use
event_id as your idempotency key — it is identical across all retry attempts for the same event occurrence.Delivery Logs
Every HTTP attempt is logged. Use the delivery log API to diagnose failures and trigger manual retries.status (pending, retrying, success, failed) and event_name. Paginate with limit + cursor.
Managing Endpoints
Safe secret rotation
1
Rotate the secret
Call
POST /v1/projects/{projectId}/webhooks/{webhookId}/secret/rotate and copy the returned signing_secret.2
Deploy the new secret
Update
ECHO_SIGNING_SECRET in your environment and redeploy before proceeding.3
Verify delivery
Trigger a test notification and confirm your server accepts the new signature.