Webhooks
Webhooks are HTTP requests the app sends to your URL when something happens in the shop: an order is created, a payment goes through, bonuses are accrued. That way an external system receives events without polling the API.
A subscription is configured by an administrator in the admin panel, under Settings, Data exchange, Webhooks. Each event can have one subscriber address.
Two event modes
Events come in two modes, differing in whether they affect the response the shopper sees.
| Mode | Behaviour | Events |
|---|---|---|
| sync |
The request is sent during processing and blocks the response. Your reply can change the calculation data. There is a hard timeout; on an error, a timeout or ok:false the calculation continues with the defaults. |
order.calculate, order.bonus.calculate, catalog.bonus.calculate |
| async | Delivered in the background, without keeping the shopper waiting. On an error it is retried with a growing pause. |
order.created, order.paid, order.cancelled, bonus.* |
The envelope, the signature and the response contract are described in Usage.
The list of events
| Event | Mode | When it fires |
|---|---|---|
order.calculate |
sync | Before checkout. Lets you override the basket contents and the totals. |
order.bonus.calculate |
sync | While calculating an order. Returns the bonuses to redeem and to accrue. |
catalog.bonus.calculate |
sync | While returning a product list. Returns the bonuses for each product. |
order.created |
async | An order was created by a shopper. |
order.paid |
async | An order payment was confirmed. |
order.cancelled |
async | An order was cancelled by the shopper. |
bonus.accrued |
async | A bonus accrual was created (awaiting confirmation). |
bonus.spent |
async | Bonuses were redeemed from the balance. |
bonus.expired |
async | An accrual expired. |
bonus.adjusted |
async | A balance was adjusted manually by an administrator. |
The full field schemas of every event (the request payload and the expected response) are in the OpenAPI specification.
Where to start
- Read Access and setup: how to register a URL and get the signing secret.
- Read Usage: how to verify the signature and what to answer to sync events.
- Check the field schemas in the OpenAPI documentation.
Related pages
- Access and setup
- Usage
- Data exchange: where the Webhooks tab lives