Spotzee delivers events to your endpoints via signed HTTPDocumentation Index
Fetch the complete documentation index at: https://docs.spotzee.com/llms.txt
Use this file to discover all available pages before exploring further.
POST. Verify the signature on every incoming webhook before you trust the payload.
Configure an endpoint
Create or rotate webhook endpoints from Settings → Webhooks in the Spotzee app, or via the API. Each endpoint has:- A target URL (must be
https://) - A list of subscribed event types
- A signing secret (issued on creation, rotatable)
The signature header
Every webhook request carries aSpotzee-Signature header.
| Component | Meaning |
|---|---|
t= | Unix timestamp (seconds) when Spotzee signed the request |
v1= | Hex-encoded HMAC-SHA256 of <t>.<raw_body> using your endpoint’s signing secret |
Verify the signature
Reject stale timestamps
Reject the request if
t is more than 5 minutes off your current clock — that’s the replay-protection window.Compute the expected HMAC
Concatenate
<t>.<raw_body> (period separator) and HMAC-SHA256 it with your signing secret. Hex-encode the result.Example — JavaScript
Errors
If signature verification fails on Spotzee’s side (for example, you flipped the secret without rotating), Spotzee surfaceswebhook_signature_invalid:
| HTTP | code | When |
|---|---|---|
400 | webhook_signature_invalid | HMAC didn’t match the expected value |
Rotate the signing secret
Add a new signing secret
Generate a new secret in Settings → Webhooks. Both the old and new secrets are valid for the rotation window.
Retry policy
Spotzee retries 5xx responses and connection errors with exponential backoff:| Attempt | Delay |
|---|---|
| 1 | immediate |
| 2 | 30 seconds |
| 3 | 5 minutes |
| 4 | 30 minutes |
| 5 | 2 hours |
| 6 | 6 hours |
| 7 | 24 hours (final) |
2xx confirm receipt; 4xx is a permanent failure and stops retrying.
Idempotency on the receiving side
Webhooks are at-least-once. Stamp each event with itsevent_id and discard duplicates on your side, or use the same idempotency-key pattern in your own database to make the handler safe to call twice.
Next steps
Errors
Status codes and the
code catalogue.Authentication
Choose the right key type for outgoing API calls.