maxvolume
12/31/2025, 8:02 PM4.0000000126383384e-05
This doesn’t happen often, but when it does, the Python verification method from the docs fails to us: https://docs.retellai.com/features/secure-webhook
Happens in `call_ended`/`call_analyzed` events. Example:
{
"event":"call_ended",
"call":{
"call_id":"...",
"call_type":"phone_call",
"agent_id":"...",
"call_status":"ended",
// ... other fields
"latency":{
// ... other fields
"asr":{
"p50":20,
"p90":29.999859999999718,
"p95":29.999929999999857,
"p99":29.99998599999997,
"min":4.0000000126383384e-05,
"max":30,
"num":8,
"values":[
4.0000000126383384e-05,
10,
20,
20.000049999999646,
19.999899999999798,
20,
29.999799999999595,
30
]
}
}
}
}
Some call IDs that had this issue:
- call_aac44d76f3f39b3a60604649ea7
- call_21801367bd6885b2ced92e16715
- call_3163a399d36cfea27e2c2671ec5
Can you clarify if exponential notation is expected on webhook events?
Thanks.Shehroze -Support @Retell
12/31/2025, 8:05 PMmaxvolume
12/31/2025, 8:10 PMmaxvolume
12/31/2025, 8:12 PMShehroze -Support @Retell
12/31/2025, 8:13 PMmaxvolume
12/31/2025, 8:33 PMpost_data = await request.body()
valid_signature = retell.verify(
post_data,
api_key=str(os.environ["RETELL_API_KEY"]),
signature=str(request.headers.get("X-Retell-Signature")),
)Shehroze -Support @Retell
12/31/2025, 10:01 PMmaxvolume
01/02/2026, 1:50 PMdcitelly.Art-Intel
02/18/2026, 7:20 PM${timestamp}.${raw_body}
✅ Timestamp extracted from X-Retell-Signature: v=,d=
However, none of these models match the received signature:
HMAC(apiKey, raw_body)
HMAC(apiKey, timestamp + "." + raw_body)
HMAC(apiKey, timestamp + raw_body)
HMAC(apiKey, JSON.stringify(parsed_body))
Can you please confirm:
Is the timestamp always in milliseconds, or can it be seconds?
Is the signed payload exactly ${timestamp}.${raw_body}?
Is the digest always lowercase hex HMAC-SHA256?
Is any canonicalization applied before signing (e.g., JSON normalization)?
Can you confirm the exact algorithm currently used in production (as of Feb 2026)?
We need the exact signing construction to implement manual verification, since the SDK's Retell.verify() method does not exist in retell-sdk@5.0.0.Omar Ashraf | Community Lead
02/18/2026, 7:50 PMdcitelly.Art-Intel
02/18/2026, 8:00 PMdcitelly.Art-Intel
02/18/2026, 8:29 PMOmar Ashraf | Community Lead
02/19/2026, 6:34 PM