Skip to main content
Use the x-retell-signature header together with your UponAI API key to verify every webhook request.
Only the API key with a webhook badge next to it can be used to verify webhooks.
You can also allowlist UponAI’s IP address: 100.20.5.228.

Verify with SDK

Use the raw request body string for verification — not JSON.stringify(req.body). Re-serializing may change whitespace or key ordering, causing verification to fail.
Node

Verify Without SDK

For languages without an official SDK, verify the signature manually using HMAC-SHA256. Signature format:
  • v — Unix timestamp in milliseconds when the webhook was sent
  • d — HMAC-SHA256 hex digest of raw_body + timestamp
Verification steps:
  1. Extract the X-Retell-Signature header
  2. Parse v (timestamp) and d (digest) using pattern v=(\d+),d=(.*)
  3. Confirm the timestamp is within 5 minutes of now (prevents replay attacks)
  4. Compute HMAC-SHA256(raw_body + timestamp, api_key)
  5. Compare computed digest with d — if they match, the webhook is authentic
Go