POST requests. Subscribe in Settings → Webhooks or via the webhooks management API, give us an HTTPS URL, choose the event types you care about, and copy the signing secret.
Endpoint URL requirements
Your delivery URL must be a publichttps:// URL. Awardee rejects anything it can’t safely reach from the open internet with 400 at create time:
- Plain
http://— TLS is required. localhostand loopback addresses.- Private / RFC 1918 ranges (
10.x,172.16–31.x,192.168.x). - Link-local and cloud-metadata addresses (
169.254.x, including169.254.169.254). - Bare-IP hosts — the URL must use a real hostname, not a literal IP.
These checks block SSRF and undeliverable endpoints. To test against a local server, expose it through a tunnel (ngrok, Cloudflare Tunnel) that gives you a public HTTPS hostname. See Testing.
Managing endpoints
You manage webhook endpoints from the dashboard or the webhooks management API. The API supports five operations:| Operation | Endpoint |
|---|---|
| Create | POST /webhooks |
| List | GET /webhooks |
| Fetch one | GET /webhooks/{id} |
| Update | PATCH /webhooks/{id} |
| Delete | DELETE /webhooks/{id} |
PATCH updates an endpoint in place — change its url, events, description, or pause/resume it with isActive — without minting a new signing secret. See Managing webhooks.Visibility
Which endpoints a caller can see depends on how it authenticated:- API keys see every endpoint on the organization, including those created in the dashboard.
- OAuth tokens see only the endpoints created by that same token — dashboard-managed endpoints are not visible, and one OAuth integration cannot see another’s.
Delivery shape
Each delivery is aPOST to your URL with Content-Type: application/json. The body is the event payload directly — no wrapper envelope. Event type and delivery metadata live in headers.
| Header | Purpose |
|---|---|
X-Awardee-Event | The event type, e.g. qr_code.scanned. Same string you subscribed to. |
X-Awardee-Delivery | Unique per delivery attempt’s parent delivery. Use it for idempotency. |
X-Awardee-Timestamp | Unix seconds at signing time. Used by signature verification. |
X-Awardee-Signature | HMAC-SHA256 signature. Format: t=<ts>,v1=<hex>. See Signing. |
What to do on receipt
Verify the signature
Reject any request whose
X-Awardee-Signature doesn’t match. See Signing.Dedupe on X-Awardee-Delivery
The same delivery id may arrive twice (network blip, your handler crashed mid-response). Record the id; ignore repeats. See Idempotency.
Where to next
Event catalog
Every event type and its payload shape.
Signing
Verify HMAC signatures with a timing-safe compare.
Retries
Backoff schedule, ordering guarantees, and replay.
Idempotency
Dedupe on
X-Awardee-Delivery so duplicates are no-ops.Testing
Fire a test event. Receive deliveries on localhost.

