Wolt Drive API

Wolt Drive API is intended for merchants who want to use Wolt as a last mile carrier partner for their deliveries.

Before beginning the development, get in touch with the local Wolt Drive team to receive the staging credentials. For any technical issues or questions, reach out to your Wolt contact person or your technical account manager.

Environments

https://daas-public-api.development.dev.woltapi.com

Authentication

Bearer authentication

Wolt Drive API uses basic authentication to authenticate your requests. Add your token into Authorization header for each request. Replace {{access_token}} in the example requests with your token. The token is also referred as "merchant key".

Test token will be provided by Wolt when you start the integration development and the production token when you successfully complete the testing phase. Only one token per merchant is needed.

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

Shipment promise

This is a venueful endpoint to request a shipment promise. See endpoint documentation for more information.

Shipment promise contains estimated delivery time and price based on destination location and other inputs. The promise can be binding or non-binding.

  • Promise is binding when the location is detailed enough for time estimate to be accurate.
  • Promise is non-binding when the location is not precise enough and time is a rough estimate.

In the case of non-binding promise it's not possible to create a delivery order using the promise. Promise creation is rather flexible but estimate accuracy depends on inputs.

There are multiple ways to create a shipment promise:

  • lat + lon AND ((street + city) OR (street + post_code))`: the preferred way of creating a binding promise with most accurate estimates
  • street + city: yields a binding promise with accurate estimates
  • street + post_code: yields a binding promise with accurate estimates
  • post_code or city only: a non-binding promise with rough estimates and it is not possible to create a delivery order with it
  • lat AND lon - a non-binding promise with an accurate estimate. Add street and city name for a binding promise.

Note that the endpoint cannot be used for address input validation. If the address does not exist, the endpoint will form a "best guess" of the location and resolve delivery availability using that address.

Providing parcel and cash information when relevant will enable more accurate price estimates.

The Shipment promise object

Properties

idstring

Required. Unique identifier for shipment promise. Promise ID is used for creating a delivery order.

created_atstring

Required. The date and time (ISO 8601 format) when the shipment promise was created.

valid_untilstring

Required. The date and time (ISO 8601 format) when the shipment promise will expire.

pickupobject

Required. The pickup location of the requested delivery.

dropoffobject

Required. The dropoff location of the requested delivery.

priceobject

Required. Price for the requested delivery. VAT included.

time_estimate_minutesinteger

Required. WARNING: This field is deprecated, use dropoff.eta_minutes or dropoff.options.scheduled_time in order to determine the delivery estimate.

is_bindingboolean

Required. Determines if enough information has been provided and further delivery order can be created from this promise.

parcels[object]

Parcels included in the delivery.

Create a shipment promise

This operation requires Bearer authentication.

This is a venueful endpoint to request a shipment promise. Use maximum information you have available for best accuracy. See shipment promise for possible combinations.

Parameters

venueIdstring

Required. Unique identifier for the venue.

Properties

streetstring

Street name and house number for the shipment.

citystring

City name for the shipment.

post_codestring

Post code for the shipment.

latnumber

Latitude for the shipment destination.

lonnumber

Longitude for the shipment destination.

languagestring

Language to return the address in the response. The address in response will be localized in this language if the locale is available.

min_preparation_time_minutesintegerdefault: 30minimum: 0maximum: 60

Minimum preparation time in minutes that the venue needs for preparing the order.

The functionality is further explained under use cases.

scheduled_dropoff_timestring

Optionally, the date and time (ISO 8601 format) when the order is scheduled to be dropped off later.

parcels[object]

Parcels included in the delivery.

cashobject

Supported in some markets. Check with your Wolt Drive contact if cash is included in your contract. Including this payload will enable cash on delivery, and will result in error if cash is not enabled on your account.

Responses

POST /v1/venues/{venueId}/shipment-promises
curl -X POST https://daas-public-api.development.dev.woltapi.com/v1/venues/{venueId}/shipment-promises \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {{access_token}}" \
-d '{"street":"string","city":"string","post_code":"string","lat":0,"lon":0,"language":"string","min_preparation_time_minutes":30,"scheduled_dropoff_time":"2025-03-10T14:45:38.907Z","parcels":[{"dimensions":{"weight_gram":0,"width_cm":0,"height_cm":0,"depth_cm":0},"price":{"amount":0,"currency":"string"},"description":"string","identifier":"string","dropoff_restrictions":{"age_limit":0,"identity_verification":{"name":"string"},"id_check_required":true},"tags":["alcohol"],"count":1}],"cash":{"amount_to_collect":0,"amount_to_expect":0}}'

The Venueful delivery order object

Properties

idstring

Required. Unique identifier for the delivery order response.

statusstringenum: INFO_RECEIVED

Required. Status of the delivery order.

trackingobject

Required. Tracking information for the delivery order.

pickupobject

Required. The pickup location of the delivery order.

dropoffobject

Required. The dropoff location of the delivery order.

priceobject

Required. Price of the delivery order.

recipientobject

Required. Details of the recipient who is going to receive the parcels.

parcels[object]

Required. Parcels included in the delivery.

customer_supportobject

Required. Customer support contact information which will be shown for the customer in the Wolt tracking UI.

wolt_order_reference_idstring

Unique identifier for referencing the Wolt order.

merchant_order_reference_idstring

Any kind of external reference which links back to the delivery order.

tips[object]

Any additional monetary pre-delivery tips for courier partner.

order_numberstring

A short reference which links back to the delivery order.

Suggested to be 5 chars or under. If present, is shown to courier partner instead of merchant_order_reference_id.

Create a delivery

This operation requires Bearer authentication.

A venueful endpoint to create a delivery order.

Parameters

venueIdstring

Required. Unique identifier for the venue.

Properties

pickupobject

The pickup location for the delivery.

dropoffobject

Required. The dropoff location for the delivery.

priceobject

Required. Price of the delivery.

Confirm the price of the delivery by using the price from received from create a shipment promise response.

recipientobject

Required. Details of the recipient who is going to receive the parcels.

parcels[object]

Required. Parcels included in the delivery.

shipment_promise_idstring

Required. Unique identifier of a binding shipment promise received from create a shipment promise response.

customer_supportobject

Required. Customer support contact information which will be shown for the customer in the Wolt tracking UI.

At least one of fields must be provided.

merchant_order_reference_idstring

Any kind of external reference which links back to the delivery order.

sms_notificationsobject

Content for the SMS message(s) which will be sent to the recipient at certain stages of the delivery.

This is an optional feature for communicating the tracking link to the recipient.

tipsobject

Any additional monetary pre-delivery tips for courier partner.

order_numberstring

A short reference which links back to the delivery order.

Suggested to be 5 chars or under. If present, is shown to courier partner instead of merchant_order_reference_id.

cashobject

Supported in some markets. Check with your Wolt Drive contact if cash is included in your contract. Including this payload will enable cash on delivery, and will result in error if cash is not enabled on your account.

handshake_deliveryobject

Supported in some regions. Enables PIN verification on delivery. Check with your Wolt Drive contact if HSD is available. See feature documentation.

Responses

POST /v1/venues/{venueId}/deliveries
curl -X POST https://daas-public-api.development.dev.woltapi.com/v1/venues/{venueId}/deliveries \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {{access_token}}" \
-d '{"pickup":{"options":{"min_preparation_time_minutes":30},"comment":"string","display_name":"string"},"dropoff":{"location":{"coordinates":{"lat":0,"lon":0}},"comment":"string","options":{"is_no_contact":false,"scheduled_time":"2025-03-10T14:45:38.907Z"}},"price":{"amount":0,"currency":"string"},"recipient":{"name":"string","phone_number":"string","email":"string"},"parcels":[{"dimensions":{"weight_gram":0,"width_cm":0,"height_cm":0,"depth_cm":0},"price":{"amount":0,"currency":"string"},"description":"string","identifier":"string","dropoff_restrictions":{"age_limit":0,"identity_verification":{"name":"string"},"id_check_required":true},"tags":["alcohol"],"count":1}],"shipment_promise_id":"string","customer_support":{"email":"string","phone_number":"string","url":"string"},"merchant_order_reference_id":"string","sms_notifications":{"received":"string","picked_up":"string"},"tips":{"type":"pre_delivery_courier_tip","price":{"amount":0,"currency":"string"}},"order_number":"string","cash":{"amount_to_collect":0,"amount_to_expect":0},"handshake_delivery":{"is_required":false,"should_send_sms_to_dropoff_contact":true}}'

Delivery fee

This is a venueless endpoint to request a delivery fee estimate.

Like shipment promise endpoint, the delivery fee endpoint is used to check availability of Wolt for a given time, determine the estimated price and delivery time. However as a venueless endpoint, delivery fee endpoint can be used without any predetermined venue address.

Note that the endpoint cannot be used for address input validation. If the address does not exist, the endpoint will form a "best guess" of the location and resolve delivery availability using that address.

See endpoint documentation for more information.

The Delivery fee object

Properties

created_atstring

Required. The date and time (ISO 8601 format) when the delivery fee was created.

pickupobject

Required. The pickup location of the delivery.

dropoffobject

Required. The dropoff location of the delivery.

feeobject

Required. Delivery fee on the requested delivery.

time_estimate_minutesinteger

WARNING: This field is deprecated, use dropoff.eta_minutes or dropoff.options.scheduled_time in order to determine the delivery estimate.

scheduled_dropoff_timestring

The date and time (ISO 8601 format) when the order is scheduled to be dropped off.

Delivery fee request

This operation requires Bearer authentication.

This is a venueless endpoint to request a delivery fee.

Parameters

merchantIdstring

Required. Unique identifier for the merchant.

Properties

pickupobject

Required. The pickup location of the delivery.

dropoffobject

Required. The dropoff location of the delivery.

scheduled_dropoff_timestring

The date and time (ISO 8601 format) when the order is scheduled to be dropped off. The functionality is further explained under use cases.

contents[object]

Parcels included in the delivery.

cashobject

Supported in some markets. Check with your Wolt Drive contact if cash is included in your contract. Including this payload will enable cash on delivery, and will result in error if cash is not enabled on your account.

Responses

POST /merchants/{merchantId}/delivery-fee
curl -X POST https://daas-public-api.development.dev.woltapi.com/merchants/{merchantId}/delivery-fee \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {{access_token}}" \
-d '{"pickup":{"location":{"coordinates":{"lat":0,"lon":0},"formatted_address":"string"}},"dropoff":{"location":{"coordinates":{"lat":0,"lon":0},"formatted_address":"string"}},"scheduled_dropoff_time":"2025-03-10T14:45:38.907Z","contents":[{"count":0,"description":"string","identifier":"string","tags":["alcohol"],"price":{"amount":0,"currency":"string"},"id_check_required":true,"dimensions":{"weight_gram":0,"width_cm":0,"height_cm":0,"depth_cm":0}}],"cash":{"amount_to_collect":0,"amount_to_expect":0}}'

Venueless delivery order

This is a venueless endpoint to request a delivery.

The delivery order endpoint is used to request a delivery when you have all required customer/order information and customer has “placed” their order. Venueless delivery endpoint requires merchant to include all relevant venue information every time a request is made.

Endpoint does not require any data from other responses, but using delivery fee endpoint is recommended to use before delivery to ensure availability, delivery time and price.

See endpoint documentation for more information.

The Venueless delivery order object

Properties

pickupobject

Required. The pickup location of the delivery order.

dropoffobject

Required. The dropoff location of the delivery order.

scheduled_dropoff_timestring

The date and time (ISO 8601 format) when the order is scheduled to be dropped off.

customer_supportobject

Required. Customer support contact information which will be shown for the customer in the Wolt tracking UI.

is_no_contactboolean

Required. Defines if the delivery should be no-contact delivery.

merchant_order_reference_idstring

Any kind of external reference which links back to the delivery order.

contents[object]

Required. Parcels included in the delivery.

tips[object]

Required. Any additional monetary pre-delivery tips for courier partner.

priceobject

Required. Price of the delivery order.

trackingobject

Required. Tracking information for the delivery order.

wolt_order_reference_idstring

Required. Unique identifier for referencing the order.

min_preparation_time_minutesinteger

Required. Minimum preparation time in minutes that the venue needs for preparing the order.

The functionality is further explained under use cases.

order_numberstring

A short reference which links back to the delivery order.

Suggested to be 5 chars or under. If present, is shown to courier partner instead of merchant_order_reference_id.

Create delivery order

This operation requires Bearer authentication.

This is a venueless endpoint to request a delivery.

Parameters

merchantIdstring

Required. Unique identifier for the merchant.

Properties

pickupobject

Required. The pickup location of the delivery order.

dropoffobject

Required. The dropoff location of the delivery order.

customer_supportobject

Required. Customer support contact information which will be shown for the customer in the Wolt tracking UI.

At least one of fields must be provided.

merchant_order_reference_idstring

Any kind of reference-id which links back to the delivery order.

is_no_contactbooleandefault:

Required. Defines if the delivery should be no-contact delivery.

contents[object]

Required. Parcels included in the delivery.

tips[object]

Required. Any additional monetary pre-delivery tips for courier partner.

min_preparation_time_minutesintegerdefault: 30minimum: 0maximum: 60

Required. Minimum preparation time in minutes that the venue needs for preparing the order.

The functionality is further explained under use cases.

scheduled_dropoff_timestring

The date and time (ISO 8601 format) when the order is scheduled to be dropped off. The functionality is further explained under use cases.

order_numberstring

A short reference which links back to the delivery order.

Suggested to be 5 chars or under. If present, is shown to courier partner instead of merchant_order_reference_id.

cashobject

Supported in some markets. Check with your Wolt Drive contact if cash is included in your contract. Including this payload will enable cash on delivery, and will result in error if cash is not enabled on your account.

handshake_deliveryobject

Supported in some regions. Enables PIN verification on delivery. Check with your Wolt Drive contact if HSD is available. See feature documentation.

Responses

POST /merchants/{merchantId}/delivery-order
curl -X POST https://daas-public-api.development.dev.woltapi.com/merchants/{merchantId}/delivery-order \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {{access_token}}" \
-d '{"pickup":{"location":{"coordinates":{"lat":0,"lon":0},"formatted_address":"string"},"comment":"string","contact_details":{"name":"string","phone_number":"string","send_tracking_link_sms":true},"display_name":"string"},"dropoff":{"location":{"coordinates":{"lat":0,"lon":0},"formatted_address":"string"},"comment":"string","contact_details":{"name":"string","phone_number":"string","send_tracking_link_sms":true}},"customer_support":{"email":"string","phone_number":"string","url":"string"},"merchant_order_reference_id":"string","is_no_contact":false,"contents":[{"count":0,"description":"string","identifier":"string","tags":["alcohol"],"price":{"amount":0,"currency":"string"},"id_check_required":true,"dimensions":{"weight_gram":0,"width_cm":0,"height_cm":0,"depth_cm":0}}],"tips":[{"type":"pre_delivery_courier_tip","price":{"amount":0,"currency":"string"}}],"min_preparation_time_minutes":30,"scheduled_dropoff_time":"2025-03-10T14:45:38.907Z","order_number":"string","cash":{"amount_to_collect":0,"amount_to_expect":0},"handshake_delivery":{"is_required":false,"should_send_sms_to_dropoff_contact":true}}'