Order API

Order API allows integrated partners to retrieve order details from Wolt and send them to their POS, KDS or other systems.

The API is designed to help our partners reduce the time they spend managing orders they receive through Wolt. By using all endpoints you can develop an experience that helps manage Wolt orders without the Wolt Merchant app.

Environments

https://pos-integration-service.wolt.com

Authentication

Bearer authentication

The JWT token is used for authentication and is obtained as part of the OAuth 2.0 flow. For detailed implementation guidance, refer to the documentation.

You can get credentials by contacting your Wolt account manager or technical account manager.

OrderV2

With Order V2, a more detailed breakdown of pricing of the order is provided. The pricing structure (all of it, or some of it) may be required for order creation in the POS system, taking into account the proper mapping of discounts.

Please note that any enum defined may get additional values at any point in time. Moreover, additional JSON properties may be added.

The OrderV2 object

Properties

idstring

Unique identifier for the order.

venueobject

Details of the venue where the order was placed.

basket_priceobject

Details of the basket price (ordered items and mofidiers only, excluding fees).

deliveryobject

Details about the delivery.

feesobject

Detailed fee breakdown for the order.

items[object]

Items included in the order.

created_atstringnullable

Required. The date and time (ISO 8601 format) when the order was received by Wolt's system.

consumer_commentstringnullable

Required. Comment added to the order by consumer.

When making an order using Wolt app, a consumer can leave a message to the restaurant. For example to inform the kitchen about dietary restrictions.

consumer_namestringnullable

Required. Name of the consumer who made the order.

If a self-delivery venue has full name setting enabled they will receive the full name of the consumer, otherwise the name will include only first name and first letter of last name.

consumer_phone_numberstringnullable

Required. Phone number of the consumer who made the order.

Consumer phone number is not shared unless absolutely necessary. This is toggled on only for select markets where the phone number is available on the Wolt Merchant app or for self-delivery venues. The field is null in all other cases.

pickup_etastringnullable

Required. The date and time (ISO 8601 format) when the courier is expected to pick up the order.

attribution_idstringnullable

Required. Unique identifier for the attribution.

This is used to track consumer "source" if the consumer is coming to Wolt from a merchant's website or app. Merchants can create a unique attribution IDs for a campaign or source and pass it to Wolt. This ID is carried through the order flow and reflected in the order.

typestringenum: preorder, instant

An order can be of two different types.

  • instant: When an order is to be fulfilled instantly.
  • preorder: When a consumer schedules an order.
pre_orderobjectnullable

Required. Pre-order details for the order.

order_numberstring

A human readable order number that is unique only for open orders. Order numbers can repeat and are not unique for a venue.

order_statusstringenum: received, fetched, acknowledged, production, ready, delivered, rejected, other

Status of the order. An order progresses through a life cycle that consists of different states:

  • received: The order was fetched by the Wolt Merchant app and/or acknowledged by venue staff on the app.
  • fetched: The order was fetched in the Wolt Merchant app.
  • acknowledged: The order was interacted by venue staff on the Wolt Merchant app.
  • production: Preparation of the order has started.
  • ready: The order has been prepared and is awaiting delivery.
  • delivered: The order has been delivered to the consumer.
  • rejected: The venue or Wolt's system rejected the order.
  • other: Other unknown status.
modified_atstringnullable

Required. Order modification time (UTC - ISO-8601 format)

company_tax_idstringnullable

Required. Unique identifier for company tax.

In some markets, consumers are allowed to bill their company for the purchase. In these situations they input the company's tax ID and this information is passed on for accounting purposes.

loyalty_card_numberstringnullable

Required. Loyalty card number given by consumer during checkout from a retail venue.

This can be only used to add points for the consumer based on the purchase. No validation of this number takes place in Wolt's system.

cash_paymentobjectnullable

Required. Contains information about cash payment of the order.

With this information the courier will be able to request correct amount of cash from the customer and also reserve enough change in case customer does not have even amount in cash.

merchantobjectnullable

Required. Contains information about the merchant who is responsible for the order.

This is relevant only for self-delivery venues.

Get order V2

This operation requires Bearer authentication.

Retrieve an order in Order V2 format by order ID which you receive in the order notification.

Parameters

orderIdstring

Required. Unique identifier for the order.

Responses

GET /v2/orders/{orderId}
curl https://pos-integration-service.wolt.com/v2/orders/{orderId} \
-H "Authorization: Bearer {{access_token}}"

The Order object

Properties

idstring

Unique identifier for the order.

venueobject

Details of the venue where the order was placed.

priceobject

Total price of the order.

deliveryobject

The delivery method of the order.

items[object]

Items included in the order.

created_atstring

The date and time (ISO 8601 format) when the order was received by Wolt's system.

consumer_commentstringnullable

Comment added to the order by consumer.

When making an order using Wolt app, a consumer can leave a message to the restaurant. For example to inform the kitchen about dietary restrictions.

pickup_etastring

The date and time (ISO 8601 format) when the courier is expected to pick up the order.

attribution_idstring

Unique identifier for the attribution.

This is used to track consumer "source" if the consumer is coming to Wolt from a merchant's website or app. Merchants can create a unique attribution IDs for a campaign or source and pass it to Wolt. This ID is carried through the order flow and reflected in the order.

typestringenum: preorder, instant

An order can be of two different types.

  • instant: When an order is to be fulfilled instantly.
  • preorder: When a consumer schedules an order.
pre_orderobjectnullable

Pre-order details for the order.

consumer_namestring

Name of the consumer who made the order.

If a self-delivery venue has full name setting enabled they will receive the full name of the consumer, otherwise the name will include only first name and first letter of last name.

consumer_phone_numberstringnullable

Phone number of the consumer who made the order.

Consumer phone number is not shared unless absolutely necessary. This is toggled on only for select markets where the phone number is available on the Wolt Merchant app or for self-delivery venues. The field is null in all other cases.

order_numberstring

A human readable order number that is unique only for open orders. Order numbers can repeat and are not unique for a venue.

order_statusstringenum: received, fetched, acknowledged, production, ready, delivered, rejected, other

Status of the order. An order progresses through a life cycle that consists of different states:

  • received: The order was fetched by the Wolt Merchant app and/or acknowledged by venue staff on the app.
  • fetched: The order was fetched in the Wolt Merchant app.
  • acknowledged: The order was interacted by venue staff on the Wolt Merchant app.
  • production: Preparation of the order has started.
  • ready: The order has been prepared and is awaiting delivery.
  • delivered: The order has been delivered to the consumer.
  • rejected: The venue or Wolt's system rejected the order.
  • refunded: Wolt has processed a refund for the order.
  • other: Other unknown status.
modified_atstring

The date and time (ISO 8601 format) when the order was last modified.

Orders move through a life cycle and can change the order status. This change is also considered a modification, so the date and time could be the time when a purchase changed its status from acknowledged to production.

company_tax_idstringnullable

Unique identifier for company tax.

In some markets, consumers are allowed to bill their company for the purchase. In these situations they input the company's tax ID and this information is passed on for accounting purposes.

loyalty_card_numberstringnullable

Loyalty card number given by consumer during checkout from a retail venue.

This can be only used to add points for the consumer based on the purchase. No validation of this number takes place in Wolt's system.

cash_paymentobject

Contains information about cash payment of the order.

With this information the courier will be able to request correct amount of cash from the customer and also reserve enough change in case customer does not have even amount in cash.

merchantobjectnullable

Contains information about the merchant who is responsible for the order.

This is relevant only for self-delivery venues.

Get order

This operation requires Bearer authentication.

Retrieve an order by order ID which you receive in the order notification.

Parameters

orderIdstring

Required. Unique identifier for the order.

Responses

GET /orders/{orderId}
curl https://pos-integration-service.wolt.com/orders/{orderId} \
-H "Authorization: Bearer {{access_token}}"

Accept order

This operation requires Bearer authentication.

Accepts the order and changes its status to production in Wolt's system.

Parameters

orderIdstring

Required. Unique identifier for the order.

Properties

adjusted_pickup_timestring

The date and time (ISO 8601 format) when the order should be picked up in case the current pickup time is too early for the venue to prepare the order.

The adjusted pickup time cannot be greater than 25 minutes from the initial calculated pickup time estimate.

Responses

PUT /orders/{orderId}/accept
curl -X PUT https://pos-integration-service.wolt.com/orders/{orderId}/accept \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {{access_token}}" \
-d '{"adjusted_pickup_time":"2021-05-05T10:22:16.631Z"}'
Response
HTTP/1.1 202 Accepted

Accept self-delivery order

This operation requires Bearer authentication.

Accepts the self-delivery order and changes status of order to production.

Parameters

orderIdstring

Required. Unique identifier for the order.

Properties

total_delivery_timestring

The date and time (ISO 8601 format) when the self-delivery order is expected to be delivered to the consumer.

If not provided, the venue's default order preparation and order delivery time will be used instead.

Responses

PUT /orders/{orderId}/self-delivery/accept
curl -X PUT https://pos-integration-service.wolt.com/orders/{orderId}/self-delivery/accept \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {{access_token}}" \
-d '{"total_delivery_time":"2022-03-29T13:16:00Z"}'
Response
HTTP/1.1 202 Accepted

Reject order

This operation requires Bearer authentication.

Rejects the order and changes its status to rejected in Wolt's system. The given rejection reason is shown to the consumer.

Parameters

orderIdstring

Required. Unique identifier for the order.

Properties

reasonstring

Required. Reason for rejecting the order.

Rejection reason will be shown to the consumer. You should use local language and consumer friendly tone.

codestringnullableenum: GENERIC, ITEMS_UNAVAILABLE, VENUE_CLOSING_SOON

Pre-defined rejection key.

  • GENERIC is the default value.
  • ITEMS_UNAVAILABLE is used when the request item is out of stock.
  • VENUE_CLOSING_SOON is used when the venue is closing soon.

Responses

PUT /orders/{orderId}/reject
curl -X PUT https://pos-integration-service.wolt.com/orders/{orderId}/reject \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {{access_token}}" \
-d '{"reason":"Out of stock"}'
Response
HTTP/1.1 202 Accepted

Mark order ready

This operation requires Bearer authentication.

Marks the order as ready in Wolt's system.

Takeaway orders must be marked as ready before they can be picked up by the consumer.

Parameters

orderIdstring

Required. Unique identifier for the order.

Responses

PUT /orders/{orderId}/ready
curl -X PUT https://pos-integration-service.wolt.com/orders/{orderId}/ready \
-H "Authorization: Bearer {{access_token}}"
Response
HTTP/1.1 202 Accepted

Mark order delivered

This operation requires Bearer authentication.

Marks the order as delivered in Wolt's system.

Takeaway orders must be marked as delivered after they have been picked up by the consumer.

Parameters

orderIdstring

Required. Unique identifier for the order.

Responses

PUT /orders/{orderId}/delivered
curl -X PUT https://pos-integration-service.wolt.com/orders/{orderId}/delivered \
-H "Authorization: Bearer {{access_token}}"
Response
HTTP/1.1 202 Accepted

Confirm pre-order

This operation requires Bearer authentication.

Confirm a pre-order to accept it. Confirmed pre-orders are automatically moved to production state based on venue's preparation time.

Parameters

orderIdstring

Required. Unique identifier for the order.

Responses

PUT /orders/{orderId}/confirm-preorder
curl -X PUT https://pos-integration-service.wolt.com/orders/{orderId}/confirm-preorder \
-H "Authorization: Bearer {{access_token}}"
Response
HTTP/1.1 204 No Content

Replace order items

This operation requires Bearer authentication.

Replace items in an order. For example substitute item with another, change weight of an item or mark item as missing.

This endpoint can be called only once per order. You must ensure that you call it only after all changes are made.

Parameters

orderIdstring

Required. Unique identifier for the order.

Properties

item_changes[object]

Required. Changes done to items in order during picking progress.

Responses

PUT /orders/{orderId}/replace-items
curl -X PUT https://pos-integration-service.wolt.com/orders/{orderId}/replace-items \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {{access_token}}" \
-d '{"item_changes":[{"row_number":0,"replacement_items":[{"replacement_type":"count-change-replacement","barcode":"string","count":0,"name":"string","price":{"amount":0,"currency":"string"},"purchase_item_id":"string","weight":0}]}]}'
Response
HTTP/1.1 202 Accepted

Mark order sent to POS

This operation requires Bearer authentication.

Marks the order as sent to the POS system. This is used to indicate that the order has been sent to the POS and the POS has received it.

Parameters

orderIdstring

Required. Unique identifier for the order.

Properties

successboolean

Required. Informs if the order was successfully marked as sent to the POS system.

time_sent_to_posstring

Required. The date and time (ISO 8601 format) the order has been sent to the POS system.

Responses

PUT /orders/{orderId}/sent-to-pos
curl -X PUT https://pos-integration-service.wolt.com/orders/{orderId}/sent-to-pos \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {{access_token}}" \
-d '{"success":true,"time_sent_to_pos":"2021-05-05T10:22:16.631Z"}'
Response
HTTP/1.1 202 Accepted