Shoppex now sends a timestamped webhook signature for normal event webhooks and dynamic delivery webhooks. New integrations should verifyDocumentation Index
Fetch the complete documentation index at: https://docs.shoppex.io/llms.txt
Use this file to discover all available pages before exploring further.
X-Shoppex-Signature-V2.
New Headers
| Header | Description |
|---|---|
X-Shoppex-Timestamp | Unix timestamp in seconds |
X-Shoppex-Signature-V2 | v1,t=<timestamp>,h=<hex-sha256> |
X-Shoppex-Signature-V2-Algorithm | HMAC-SHA256 |
X-Shoppex-Delivery | Unique delivery ID for normal event webhook deduplication |
X-Shoppex-Delivery-Id | Unique delivery ID for dynamic delivery deduplication |
Signed Payload
Build the signed payload like this:Verification Rule
- Read the raw request body before JSON parsing.
- Read the delivery ID (
X-Shoppex-Deliveryfor event webhooks orX-Shoppex-Delivery-Idfor dynamic delivery),X-Shoppex-Timestamp, andX-Shoppex-Signature-V2. - Parse
X-Shoppex-Signature-V2. - Check that the timestamp in the signature matches
X-Shoppex-Timestamp. - Reject requests older or newer than 5 minutes.
- Compare the computed HMAC with the
h=value using constant-time comparison. - Store the delivery ID before doing fulfillment work so retries are idempotent.
Legacy Headers
X-Shoppex-Signature is the legacy body-only HMAC-SHA512 signature.
X-Shoppex-Unescaped-Signature is a legacy compatibility workaround for clients that normalized escaped slashes before verifying.
Both legacy headers are deprecated. They remain available during the migration period, but new integrations should not depend on them.