Retail advanced API integration
APIs to use for this integration
The Wolt merchant app lite is needed for picking products and in-store operations.
Authentication
The Wolt Marketplace APIs use the bearer token authentication method. To authenticate your requests, include your access token in the Authorization
header of each request. Replace {{access_token}}
in the example requests with the actual access token obtained through the OAuth 2.0 flow.
To retrieve the token, you need to setup OAuth 2.0 authentication.
Other requirements
Webhook server
You will need to have a webhook server to be able to receive order status webhook notifications. These notifications will inform you status of the order.
For Wolt to know where to send the status notifications we need to know the URL of your webhook server. Inform your Wolt account manager the URL of your webhook server.
Webhook server security
The partner must provide a client secret that must be different from the API key, cryptographically random and at least 128 bits in length. This will be used to sign the webhook body using HMAC-SHA256
.
Wolt signs the request by generating a signature from the request body, using the client secret, and sending it alongside the request.
Wolt signature specification
- Notifications are signed with HMAC-SHA256.
- String format for the signature is HEX.
- The signature is placed to the
WOLT-SIGNATURE
HTTP request header. - The secret key for generating the signature from the request body is the client secret
Both the API key and client secret should be stored and provided to the application securely. Knowledge of either value may allow an attacker to act as the partner. The design should allow either value to be changed easily in the event they would leak. In particular, the values should not be stored in source code or plaintext configuration files.
Wolt signature example
- Client secret:
example-hmac-sha256-wolt
To generate the signature of the body, use HMAC-SHA256
with the client secret provided to Wolt. Generate it from the request body (i.e. the notification), and compare it to the value in the wolt-signature
header.
POST /webhook
{"id":"68656c6c6f2d776f6c743234","type":"order.notification","order":{"id":"776f6c747769646532303234","venue_id":"746869736973776f6c743234","status":"READY","resource_url":"https://pos-integration-service.wolt.com/orders/776f6c747769646532303234"},"created_at":"2024-10-06T12:00:00.012345Z"}
Wolt always sends the JSON body in compact format, as in the curl request. The body received from the webhook is the payload Wolt uses to generate the signature.
Order integration workflow

1. Order appears in the Wolt merchant app or merchant app lite
An order placed by a consumer appears on the Wolt merchant app. If the merchant app lite is being used as well, the order will appears in both devices.
2. Order is accepted on the Wolt merchant app or merchant app lite
Orders are manually accepted by the venue staff using either of the apps.
3. Order is picked using the merchant app lite [formerly picker app]
The Wolt merchant app lite must be used to pick orders that appear in the list. Missing items and substitutions are handled via the app.
4. Order is marked ready on the merchant app lite
Once the picking is completed, an order is marked ready from the app lite.
5. Order ready notification is sent to partner
When an order is marked ready we send order ready webhook notification. This will let you know that the delivery is marked ready for pickup.
{"id": "90f5c25cbbfb3d131a46e643","type": "order.notification","order": {"id": "90f5be47fc97e11107f8a480","venue_id": "9a5c7e3102fe6a000c4b562b","status": "READY","resource_url": "https://pos-integration-service.wolt.com/orders/90f5be47fc97e11107f8a480"},"created_at": "2021-07-19T18:20:12.378509Z"}
6. Courier picked up notification is sent to partner (optional)
When an order is picked up by our courier, we send pickup completed webhook notification. This will let you know that the order was picked up by the courier in the store.
{"id": "6630d3034b4f2f54c43c727a","type": "pickup_completed.notification","order": {"id": "90f5be47fc97e11107f8a480","venue_id": "9a5c7e3102fe6a000c4b562b","resource_url": "https://pos-integration-service.wolt.com/orders/90f5be47fc97e11107f8a480"},"details": {"is_pickup_completed": true},"created_at": "2021-07-19T18:20:12.378509Z"}
7. Partner pulls order details from Order API
Order ready webhook notification doesn't include the full order details. To get the order details you must fetch the order details from the resource_url
field returned in the order created notification. You can also hardcode the base URL and use the order.id
field's value to pull order details.
Order payload will reflect the latest updates made by the merchant app lite. This means that any items marked as missing or substituted will change the order payload.
For details, refer to get order endpoint.
8. Partner sends order to their own system
After receiving the final order details from Wolt put the order to your own system.
9. Order delivered notification is sent to partner
When an order is marked delivered by our courier, we send order delivered webhook notification. This will let you know that the order was delivered.
{"id": "90f5c25cbbfb3d131a46e643","type": "order.notification","order": {"id": "90f5be47fc97e11107f8a480","venue_id": "9a5c7e3102fe6a000c4b562b","status": "DELIVERED","resource_url": "https://pos-integration-service.wolt.com/orders/90f5be47fc97e11107f8a480"},"created_at": "2021-07-19T18:20:12.378509Z"}
Menu integration workflow
Get menu and items update API have a rate limit of 1 call every 15 minutes and inventory update API has a rate limit of 1 call every 5 minutes. All rate limits are at the venue level.
Get menu
Menu API allows integrated partners to pull menus from a Wolt venue. This allows our partners to keep track of what is being sold and mark items and options out of stock without needing to build a full fledged menu editor.
For details, refer to get menu endpoint.
Updating items
Items are products for sale on a menu. They are also called offerings on the Wolt platform. Items may experience outage or price changes over time. These changes can be pushed to a venue's menu using the items update endpoint. Discounted prices for items can also be set using this endpoint.
For details, refer to update menu items endpoint.
Update item inventory
Item inventory at a venue changes over time. To ensure that consumers on Wolt do not select an out of stock item, you can send store specific inventory updates from your ERP/POS.
For details, refer to update item inventory endpoint.
Venue integration workflow
Partner's Wolt venues can be managed directly from POS or a partner's back office.
Get venue status
You can pull a venue's statuses and put them onto a dashboard. This allows partners to track offline times and situations where a venue is offline and needs to be put back online.
The API also returns 3 latest order statuses which can be used to gauge the "health" of a venue. If orders are getting rejected, steps to remedy the situation can be taken.
For details, refer to get venue status endpoint.
Set venue offline or online
Venues can be set offline using the offline endpoint. The same endpoint can be used to set a venue online by specifying it in the payload.
For details, refer to update venue online status endpoint.
Update venue opening times
A venue's opening hours can be set directly from POS or from a partner's back office system.
For details, refer to update venue opening times endpoint.