Webhooks
Receive order, payment, and delivery events on your server.
Create an endpoint in Dashboard → Developers → Webhooks. Stakk POSTs JSON when something happens on the shop.
Events
| Event | When |
|---|---|
order.created | Invoice opened |
order.paid / order.completed | Payment confirmed |
order.refunded | Refund issued |
delivery.completed | Serials, files, or Discord roles delivered |
product.stock | Stock changed |
Payload
{
"event": "order.completed",
"created_at": "2026-09-18T18:00:00.000Z",
"data": {
"uniqid": "inv_...",
"status": "COMPLETED",
"email": "buyer@example.com",
"total": "29.00"
}
}Verify
Each delivery includes X-Stakk-Timestamp and X-Stakk-Signature. The signature is t=<unix seconds>,v1=<hex hmac sha256>. The HMAC is over {timestamp}.{raw body} using the endpoint's signing secret. Compare the hex with a constant-time check, and reject timestamps more than a few minutes off.
Rotate the secret from the dashboard. Retry failed deliveries from Webhook logs.
Test from the API
POST /api/dev/v1/webhooks/{id}/test
Authorization: Bearer sk_live_...