Every outbound webhook includes an x-st-signature header. Verify it before processing the event.
Algorithm
Sign the exact raw body bytes received over the wire. Do not re-format, pretty-print, or re-serialize parsed JSON — any change produces a different signature.
Payload envelope
The body is compact JSON from JSON.stringify() with a fixed key order in data (see Events).
Node.js example
Python example
Common pitfalls
Endpoint verification
When you create or verify a webhook in the dashboard, a webhook.endpoint_verification event may be sent to confirm your endpoint accepts POST requests and returns HTTP 2xx.
Response requirements
Your endpoint must:
- Accept
POST with Content-Type: application/json
- Return HTTP 2xx within 5 seconds
- Verify the signature before processing
Non-2xx responses and timeouts count as delivery failures and trigger retries with incremental backoff (60s first retry, then +40s each time).