Verification Headers
X-CW-Webhook-TimestampX-CW-Webhook-Signature
Signature Algorithm
- Compute
body_hash = SHA256(raw_request_body)as lowercase hex. - Build signing string:
"<timestamp>.<event_type>.<body_hash>". - Compute
HMAC_SHA256(signing_string, webhook_signing_secret)as lowercase hex. - Compare against
X-CW-Webhook-Signaturein constant time.
Node.js Example
Python Example
Replay Protection
- Reject events older than your allowed timestamp skew window.
- Store processed event IDs and ignore duplicates.
- Keep a durable event-processing audit trail.