Every order, the moment it happens.
Subscribe an endpoint and Queek posts a signed event when an order is placed, paid, fulfilled or cancelled, on any channel, and when products, customers or stock change.
- Orders from every channel
- Standard Webhooks signing
- Retries with backoff
orders/createOrder placedWhatsApporders/paidPaid onlineWebsiteinventory_levels/updateStock changedPOSorders/fulfilledDeliveredWebsite
Subscribe to what you need.
Pick topics per endpoint. Every event arrives with its id, topic, version and data.
Orders
orders/createAn order was placed, on any channel.orders/paidAn order moved to paid.orders/updatedStatus, fulfilment stage or a merchant action changed.orders/fulfilledAn order was completed or delivered.orders/cancelledAn order was cancelled or rejected.
Products
products/createA product was created.products/updateContent, price or availability changed.products/deleteA product was deleted.
Customers
customers/createA customer record was created.customers/updateA customer profile field changed.
Stock
inventory_levels/updateA product or variant stock level changed, with the reason.
{ "id": "…", "topic": "orders/paid", "api_version": "v1", "data": { "order_number": "…", "channel": "inboxes", "payment_status": "paid", "payment_method": "online", "total": "20000.00", "currency": "NGN" }}
Know it came from Queek.
Every delivery is signed with the Standard Webhooks scheme, so existing libraries verify it. Rotate a secret and the old one keeps working for a day while both signatures are sent.
POST yourapp.com/hooks/queek
- webhook-id: msg_…
- webhook-timestamp: 1790000000
- webhook-signature: v1,…
- # HMAC-SHA256 over id.timestamp.body
- → 200 OK
From endpoint to first event.
- Step 1
Subscribe an endpoint
Add your endpoint to the store and pick the topics it should receive.
- Step 2
Verify every delivery
Check the signature over the event id, timestamp and raw body. Any Standard Webhooks library can do it.
- Step 3
Acknowledge, then work
Return a 2xx within five seconds, keep the event id to dedupe, and do the work async.
Built for the day your server is down.
Acknowledge fast, do the work later, and Queek handles the rest.
Delivery and retriesRetries with backoff
Failed deliveries retry on a published schedule.
The merchant hears about it
An endpoint failing for a day is disabled and the merchant notified.
Dedupe on the event id
Every event carries an id you can store.
Acknowledge in seconds
Return a 2xx within five seconds, then work async.
More than one endpoint
Send a store's events to several services.
Delivery history
Recent deliveries are kept on record.
Everything else, in the docs.
- WebhooksTopics, the headers on a delivery, signature checks, retries and secret rotation.docs.usequeek.com/docs/webhooks
- Dev storesA dev store with its own test keys, and nothing that can reach a real customer.docs.usequeek.com/docs/sandbox
- ChangelogEvery change to the Storefront API, generated from the OpenAPI spec.docs.usequeek.com/docs/changelog
Webhook questions, answered.
The things teams ask before wiring it up.
Frequently asked questions
Do I get orders from WhatsApp and POS too?
Yes. orders/create fires for an order placed on any channel, so one endpoint sees the website, inbox, QR and POS sales.
How do I verify a delivery?
Deliveries follow the Standard Webhooks scheme: an HMAC-SHA256 signature over the event id, timestamp and raw body. Any Standard Webhooks library can check it.
What happens if my endpoint is down?
Queek retries with backoff. If an endpoint keeps failing for a day it's disabled and the merchant is notified.
Can events arrive twice?
Plan for it. Dedupe on the event id and keep your handler idempotent.
$ curl client.usequeek.com/llms.txt
Plug Queek into the rest of your stack.
Accounting, ERP, a warehouse, or your own dashboard. Start with the docs.