1. webhooks
VoiceDock
  • introduction
  • configuration
    • analysis-templates
    • custom-tools
    • sip-trunks
    • tool-templates
  • core-concepts
    • assistants
    • calls
    • phone-numbers
    • webhooks
  • features
    • ai-generation
    • autonomous-silence-handling
    • call-analysis
    • call-transfers
    • campaigns-setup
    • campaigns
    • privacy-compliance
    • voicemail-detection
    • web-calls
  • get-started
    • authentication
    • quickstart
  • guides
    • data-processing-agreement
  • integrations
    • byok-setup
    • mcp-server
    • provider-pricing
    • xai-grok-integration
  • platform
    • billing
    • dashboard-security
    • eu-data-sovereignty
    • privacy-policy
    • voice-selection-psychology
    • whitelabel
  • reference
    • error-codes
    • rate-limits
    • troubleshooting
  • sdks
    • node
  • webhooks
    • assistant-request
    • end-of-call-report
    • overview
    • security
    • status-update
    • tool-calls
Book a meeting
Linkedin
Github
📄 Documentation
🔌 API Reference🤖 MCP📦 SDK🟢 Status
📄 Documentation
🔌 API Reference🤖 MCP📦 SDK🟢 Status
  1. webhooks

security

When you configure a webhook_secret on your assistant, HMS Sovereign signs all webhook requests. You should verify these signatures to ensure requests come from HMS Sovereign.

Signature Format#

HMS Sovereign uses HMAC-SHA256 to sign webhooks. The signature is included in the X-Webhook-Signature header.

How It's Calculated#

message = timestamp + "." + raw_request_body
signature = "sha256=" + HMAC-SHA256(secret, message)
The X-Webhook-Signature header value is prefixed with sha256=. Strip this prefix before comparing with your computed HMAC.

Verification Examples#

Python#

Node.js#

Go#

PHP#

Best Practices#

1.
Always verify in production - Never skip signature verification in production
2.
Use timing-safe comparison - Prevent timing attacks with constant-time comparison
3.
Check timestamp freshness - Optionally reject requests older than 5 minutes to prevent replay attacks
4.
Store secret securely - Use environment variables, not hardcoded values
5.
Log verification failures - Monitor for suspicious activity

Timestamp Validation#

Optionally validate the timestamp to prevent replay attacks:
See WebhookHeaders Schema for header details.
Modified at 2026-05-04 13:09:53
Previous
overview
Next
status-update
Built with