Skip to main content
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).