1. How to start using api

  1. Get credentials (user, password and companyId) by creating a new "api-user" in your account settings. https://app.liefersoft.de/settings/program/platform/api

  2. Get access token using login endpoint. The token is valid for 5 minutes.

  3. Add access token to Authorization header for each request using plugin API

2. Platform order lifecycle

The Liefersoft platform provides two methods for tracking the status of an order. We recommend using our webhook option for status updates. This allows you to receive automatic notifications of any changes in order status, eliminating the need for frequent API calls.

Alternatively, you can retrieve the status of an order manually using the get-order endpoint. If you choose this method, please note that we recommend polling no more than every 2 minutes.

The Liefersoft platform contains CRUD endpoints for managing the webhooks.

ACCEPTED - immediately after the order has been successfully transferred to the platform

PROCESSING - when the regular order has been confirmed by the restaurant employee

CANCELED - when the order has been canceled by the restaurant employee

PROCESSED - when the order has been successfully processed.

PROCESSING_ERROR - when any internal error occurred

3. Authorization

3.1. Login

curl
$ curl 'https://api.liefersoft.de/login' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -d '{"login":"some.user@example.com","password":"abc-123-pass","companyId":"71d53cad-7e6d-4912-96b3-3efb599f81be"}'
request
POST /login HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 110
Host: api.liefersoft.de

{"login":"some.user@example.com","password":"abc-123-pass","companyId":"71d53cad-7e6d-4912-96b3-3efb599f81be"}
Table 1. request fields
Path Type Description

login

String

Plugin user login. Must not be empty.

companyId

String

Current company applicationId. Must not be null.

password

String

Generated password. Must not be empty.

response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1929

{"accessToken":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM"}
Table 2. response fields
Path Type Description

accessToken

String

Jwt access token. Must not be empty.

Note: Each integration works independently, which means you must configure webhooks separately for each integration (if supported). For example, if one company has three integrations, you will need to use unique credentials for each one to manage the connection, provide orders, and so on. If you need support for multiple companies, please contact your manager.

4. Order

4.1. Create order

curl
$ curl 'https://api.liefersoft.de/orders' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM' \
    -d '{"orderId":"123-444","preOrder":"2025-11-07T16:45:20.445932361Z","orderType":"DELIVERY","platformName":"Pizza Netz","customer":{"companyName":"Smith Ltd","name":"John Smith","street":"Main Street","streetNumber":"2","city":"Hamburg","postalCode":"21563","phoneNumber":"987368676","extraAddressInfo":"1st floor.","remark":"customer remark"},"deliveryCost":{"cost":1.5},"totalPrice":18.0,"totalDiscount":2.0,"payed":true,"tips":2.5,"paymentFee":0.0,"paymentMethod":"ONLINE","remark":"please call me before you come","items":[{"itemCode":"11b","quantity":2,"price":5.0,"initialPrice":5.0,"name":"Pizza Margarita","itemType":"MAIN_DISH","remark":"no chilly","category":"Pizza","taxData":{"type":"NORMAL","rate":19.0},"items":[]},{"itemCode":"c1l","quantity":2,"price":3.0,"initialPrice":3.0,"name":"Cola","itemType":"BEVERAGE","remark":"remark1","category":"Drink","taxData":{"type":"NORMAL","rate":19.0},"items":[]}]}'
request
POST /orders HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM
Content-Length: 914
Host: api.liefersoft.de

{"orderId":"123-444","preOrder":"2025-11-07T16:45:20.445932361Z","orderType":"DELIVERY","platformName":"Pizza Netz","customer":{"companyName":"Smith Ltd","name":"John Smith","street":"Main Street","streetNumber":"2","city":"Hamburg","postalCode":"21563","phoneNumber":"987368676","extraAddressInfo":"1st floor.","remark":"customer remark"},"deliveryCost":{"cost":1.5},"totalPrice":18.0,"totalDiscount":2.0,"payed":true,"tips":2.5,"paymentFee":0.0,"paymentMethod":"ONLINE","remark":"please call me before you come","items":[{"itemCode":"11b","quantity":2,"price":5.0,"initialPrice":5.0,"name":"Pizza Margarita","itemType":"MAIN_DISH","remark":"no chilly","category":"Pizza","taxData":{"type":"NORMAL","rate":19.0},"items":[]},{"itemCode":"c1l","quantity":2,"price":3.0,"initialPrice":3.0,"name":"Cola","itemType":"BEVERAGE","remark":"remark1","category":"Drink","taxData":{"type":"NORMAL","rate":19.0},"items":[]}]}
Table 3. request fields
Path Type Description

orderId

String

Custom order id. Must not be empty. Size must be between 1 and 255 inclusive.

orderType

String

Order type based on delivery type. Existing values: COUNTER, PICKUP, DELIVERY, RESTAURANT. Must not be null.

totalPrice

Number

Order total price including discounts and delivery costs without tips. Must be positive.

totalDiscount

Number

Order total discount. Must be positive or zero. Default: 0.

paymentMethod

String

Order payment method type. Existing values: CASH, MEAL_VOUCHER, ONLINE, CREDIT_CARD_AT_DOORSTEP, EC_AT_DOORSTEP. Must not be null.

remark

String

Any general remarks about the order. Size must be between 1 and 2147483647 inclusive. Default: null.

payed

Boolean

The order has been paid already.

tips

Number

The Tips additional to total price . Must be positive or zero. Default: 0.

paymentFee

Number

The payment fee value . Must be positive or zero. Default: 0.

preOrder

String

Delivery or pickup time ISO8601 (yyyy-MM-dd’T’HH:mm:ss.SSSX) requested by customer. This value must be less than 7 days from current time. Example: 2021-03-10T16:34:09Z, 2021-03-10T14:34:09+02:00. Default: null.

platformName

String

The name of client/producer. ex. the_best_web_shop_ever

customer.companyName

String

Company name. Size must be between 1 and 2147483647 inclusive. Default: null.

customer.name

String

Name of customer.

customer.street

String

Customer street.

customer.streetNumber

String

Customer street number.

customer.city

String

Customer city.

customer.postalCode

String

Customer postal code. Must match the regular expression \d+.

customer.phoneNumber

String

Customer phone number. Must match the regular expression \d+.

customer.extraAddressInfo

String

Customer additional address (delivery) information. Size must be between 1 and 2147483647 inclusive. Default: null.

customer.remark

String

Any remark for customer eg. 1st floor, etc. Size must be between 1 and 2147483647 inclusive. Default: null.

deliveryCost.cost

Number

Order delivery costs. Must be positive or zero.

items

Array

List of included order items. Must not be empty.

items[].itemCode

String

SKU or product identity in your system. Size must be between 1 and 36 inclusive. Default: null.

items[].itemType

String

Product type. MAIN_DISH - main dish, for example Pizza, Soup, Salad. Used to calculate taxes for the main dish. taxed with REDUCED_TAX (eg. 7% in Germany) TOPPING - An additive to the main dish, for example Cheese, Tomato, Sauce. Used to calculate taxes for the additive. taxed with REDUCED_TAX (eg. 7% in Germany) BEVERAGE - beverage. Used to calculate taxes for a beverage. BOTTLE_DEPOSIT - container from the beverage. Used to calculate taxes for bottle deposit. taxed with BOTTLE_DEPOSIT (eg. 19% in Germany) MENU - combo menu. Used to calculate taxes for the menu. If all products in this MENU have "initialPrice“, then the mix tax will be calculated. Example: For Main dishes and toppings "MAIN_DISH", "TOPPING" will taken the Reduced_tax (eg. 7% in Germany) and for beverages "BEVERAGE" will taken Normal_tax (eg. 19% in Germany) If at least one product in menu dosen’t have an initial price, then: if menu containt at least one BEVERAGE, then the whole menu is taxed with Normal_tax (eg. 19% in Germany). If no drink is in the order, than all menu is taxed with Reduced_tax (eg. 7% in Germany). . Existing values: TOPPING, MAIN_DISH, BEVERAGE, BOTTLE_DEPOSIT, MENU.

items[].initialPrice

Number

Individual initial price of the product is used to calculate the tax for the MENU. If all products in this MENU have "initialPrice“, then the mix tax will be calculated. Example: For Main dishes and toppings "MAIN_DISH", "TOPPING" will taken the Reduced_tax (eg. 7% in germany) and for beverages "BEVERAGE" will taken Normal_tax (eg. 19% in Germany) If at least one product in menu dosen’t have an initial price, then: if menu containt at least one BEVERAGE, then the whole menu is taxed with Normal_tax (eg. 19% in germany). If no drink is in the order, than all menu is taxed with Reduced_tax (eg. 7% in Germany)..

items[].quantity

Number

Count of ordered products. Should be whole numbers excluding zero

items[].name

String

Name of product. Must not be empty.

items[].price

Number

Product individual price, exclude side dishes. Must be positive or zero.

items[].remark

String

Product specific remarks. Size must be between 1 and 2147483647 inclusive.

items[].category

String

Product category name. Size must be between 1 and 2147483647 inclusive.

items[].items

Array

List of subItems.

items[].taxData

Object

Product tax data.

items[].taxData.type

String

Product tax type. Existing values: NORMAL, REDUCED. Must not be null.

items[].taxData.rate

Number

Product tax rate in percents. Must not be null.

response
HTTP/1.1 202 Accepted
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 64

{"remoteResponse":{"id":"8c5cbd97-200f-4973-9c9d-68aa3e06303d"}}
Table 4. response fields
Path Type Description

remoteResponse.id

String

The generated unique identity of order

4.2. Get order

curl
$ curl 'https://api.liefersoft.de/orders/bk5678-sa' -i -X GET \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM'
request
GET /orders/bk5678-sa HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM
Host: api.liefersoft.de
Table 5. /orders/{id}
Parameter Description

id

The generated unique identifier of order

response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1147

{"orderId":"123-444","preOrder":"2019-08-10T18:40:00Z","orderType":"DELIVERY","platformName":"Pizza Netz","customer":{"companyName":"Smith Ltd","name":"John Smith","street":"Main Street","streetNumber":"2","city":"Hamburg","postalCode":"21563","phoneNumber":"987368676","extraAddressInfo":"1st floor.","remark":"customer remark"},"deliveryCost":{"cost":1.5},"totalPrice":15.5,"totalDiscount":2.0,"payed":true,"tips":2.5,"paymentFee":0.0,"paymentMethod":"ONLINE","remark":"please call me before you come","items":[{"itemCode":"11b","quantity":2,"price":5.0,"initialPrice":5.0,"name":"Pizza Margarita","itemType":"MAIN_DISH","remark":"no chilly","category":"Pizza","taxData":{"type":"NORMAL","rate":19.0},"items":[]},{"itemCode":"c1l","quantity":2,"price":3.0,"initialPrice":3.0,"name":"Cola","itemType":"BEVERAGE","remark":"remark1","category":"Drink","taxData":{"type":"NORMAL","rate":19.0},"items":[]}],"id":"bk5678-sa","platformStatus":"PROCESSED","estimatedProcessTimestamp":"2020-10-15T00:00:00Z","createdDate":"2020-10-11T00:00:00","modifiedDate":"2020-10-11T00:00:00","createdBy":"some.user@example.com","modifiedBy":"some.user@example.com"}
Table 6. response fields
Path Type Description

id

String

The unique technical identifier of order. Must not be empty.

orderId

String

Custom unique technical identifier of order (ref id). Must not be empty. Size must be between 1 and 255 inclusive.

platformName

String

The name of client/producer. ex. the_best_web_shop_ever

orderType

String

Order type based on delivery type. Existing values: COUNTER, PICKUP, DELIVERY, RESTAURANT. Must not be null.

totalPrice

Number

Order total price including discounts and delivery costs. Must be positive.

totalDiscount

Number

Order total discount. Must be positive or zero. Default: 0.

paymentMethod

String

Order payment method. Existing values: CASH, MEAL_VOUCHER, ONLINE, CREDIT_CARD_AT_DOORSTEP, EC_AT_DOORSTEP. Must not be null.

remark

String

Any general remarks about the order. Size must be between 1 and 2147483647 inclusive. Default: null.

payed

Boolean

The order has been paid already.

tips

Number

The Tips additional to total price . Must be positive or zero. Default: 0.

paymentFee

Number

The payment fee value . Must be positive or zero. Default: 0.

preOrder

String

Delivery or pickup time ISO8601 (yyyy-MM-dd’T’HH:mm:ss.SSSX) requested by customer. This value must be less than 7 days from current time. Example: 2021-03-10T16:34:09Z, 2021-03-10T14:34:09+02:00. Default: null.

platformStatus

String

Order platform status. Existing values: ACCEPTED, PROCESSING, PROCESSED, CANCELED, PROCESSING_ERROR. Must not be null.

createdDate

String

Order creation date. Must not be null.

modifiedDate

String

Order modification date. Must not be null.

createdBy

String

Order created by. Must not be empty.

modifiedBy

String

Order modification by. Must not be empty.

estimatedProcessTimestamp

String

Order estimated processing time.

customer.companyName

String

Company name. Size must be between 1 and 2147483647 inclusive. Default: null.

customer.name

String

Name of customer.

customer.street

String

Customer street.

customer.streetNumber

String

Customer street number.

customer.city

String

Customer city.

customer.postalCode

String

Customer postal code. Must match the regular expression \d+.

customer.phoneNumber

String

Customer phone number. Must match the regular expression \d+.

customer.extraAddressInfo

String

Customer additional address (delivery) information. Size must be between 1 and 2147483647 inclusive. Default: null.

customer.remark

String

Any remark for customer eg. 1st floor, etc. Size must be between 1 and 2147483647 inclusive. Default: null.

deliveryCost.cost

Number

Order delivery costs. Must be positive or zero.

items

Array

List of included order items. Must not be empty.

items[].itemCode

String

SKU or product identity in your system. Size must be between 1 and 36 inclusive. Default: null.

items[].itemType

String

Product type. MAIN_DISH - main dish, for example Pizza, Soup, Salad. Used to calculate taxes for the main dish. taxed with REDUCED_TAX (eg. 7% in Germany) TOPPING - An additive to the main dish, for example Cheese, Tomato, Sauce. Used to calculate taxes for the additive. taxed with REDUCED_TAX (eg. 7% in Germany) BEVERAGE - beverage. Used to calculate taxes for a beverage. BOTTLE_DEPOSIT - container from the beverage. Used to calculate taxes for bottle deposit. taxed with BOTTLE_DEPOSIT (eg. 19% in Germany) MENU - combo menu. Used to calculate taxes for the menu. If all products in this MENU have "initialPrice“, then the mix tax will be calculated. Example: For Main dishes and toppings "MAIN_DISH", "TOPPING" will taken the Reduced_tax (eg. 7% in Germany) and for beverages "BEVERAGE" will taken Normal_tax (eg. 19% in Germany) If at least one product in menu dosen’t have an initial price, then: if menu containt at least one BEVERAGE, then the whole menu is taxed with Normal_tax (eg. 19% in Germany). If no drink is in the order, than all menu is taxed with Reduced_tax (eg. 7% in Germany). . Existing values: TOPPING, MAIN_DISH, BEVERAGE, BOTTLE_DEPOSIT, MENU.

items[].initialPrice

Number

Individual initial price of the product is used to calculate the tax for the MENU. If all products in this MENU have "initialPrice“, then the mix tax will be calculated. Example: For Main dishes and toppings "MAIN_DISH", "TOPPING" will taken the Reduced_tax (eg. 7% in germany) and for beverages "BEVERAGE" will taken Normal_tax (eg. 19% in Germany) If at least one product in menu dosen’t have an initial price, then: if menu containt at least one BEVERAGE, then the whole menu is taxed with Normal_tax (eg. 19% in germany). If no drink is in the order, than all menu is taxed with Reduced_tax (eg. 7% in Germany)..

items[].quantity

Number

Count of ordered products. Should be whole numbers excluding zero

items[].name

String

Name of product. Must not be empty.

items[].price

Number

Product individual price, exclude side dishes. Must be positive or zero.

items[].remark

String

Product specific remarks. Size must be between 1 and 2147483647 inclusive.

items[].category

String

Product category name. Size must be between 1 and 2147483647 inclusive.

items[].items

Array

List of subItems.

items[].taxData

Object

Product tax data.

items[].taxData.type

String

Product tax type. Existing values: NORMAL, REDUCED. Must not be null.

items[].taxData.rate

Number

Product tax rate in percents. Must not be null.

4.3. Get all orders

curl
$ curl 'https://api.liefersoft.de/orders?page=1&size=2' -i -X GET \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM'
request
GET /orders?page=1&size=2 HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM
Host: api.liefersoft.de
Table 7. /orders
Parameter Description

page

The page to retrieve

size

The number of elements within a single page

response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Orders-Total: 1
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1147

[{"orderId":"123-444","preOrder":"2019-08-10T18:40:00Z","orderType":"DELIVERY","platformName":"Pizza Netz","customer":{"companyName":"Smith Ltd","name":"John Smith","street":"Main Street","streetNumber":"2","city":"Hamburg","postalCode":"21563","phoneNumber":"987368676","extraAddressInfo":"1st floor.","remark":"customer remark"},"deliveryCost":{"cost":1.5},"totalPrice":15.5,"totalDiscount":2.0,"payed":true,"tips":2.5,"paymentFee":0.0,"paymentMethod":"ONLINE","remark":"please call me before you come","items":[{"itemCode":"11b","quantity":2,"price":5.0,"initialPrice":5.0,"name":"Pizza Margarita","itemType":"MAIN_DISH","remark":"no chilly","category":"Pizza","taxData":{"type":"NORMAL","rate":19.0},"items":[]},{"itemCode":"c1l","quantity":2,"price":3.0,"initialPrice":3.0,"name":"Cola","itemType":"BEVERAGE","remark":"remark1","category":"Drink","taxData":{"type":"NORMAL","rate":19.0},"items":[]}],"id":"abc-456","platformStatus":"PROCESSED","estimatedProcessTimestamp":"2020-10-15T00:00:00Z","createdDate":"2020-10-11T00:00:00","modifiedDate":"2020-10-11T00:00:00","createdBy":"some.user@example.com","modifiedBy":"some.user@example.com"}]
Table 8. response fields
Path Type Description

[].id

String

The unique technical identifier of order. Must not be empty.

[].orderId

String

Custom unique technical identifier of order (ref id). Must not be empty. Size must be between 1 and 255 inclusive.

[].platformName

String

The name of client/producer. ex. the_best_web_shop_ever

[].orderType

String

Order type based on delivery type. Existing values: COUNTER, PICKUP, DELIVERY, RESTAURANT. Must not be null.

[].totalPrice

Number

Order total price including discounts and delivery costs. Must be positive.

[].totalDiscount

Number

Order total discount. Must be positive or zero. Default: 0.

[].paymentMethod

String

Order payment method. Existing values: CASH, MEAL_VOUCHER, ONLINE, CREDIT_CARD_AT_DOORSTEP, EC_AT_DOORSTEP. Must not be null.

[].remark

String

Any general remarks about the order. Size must be between 1 and 2147483647 inclusive. Default: null.

[].payed

Boolean

The order has been paid already.

[].tips

Number

The Tips additional to total price . Must be positive or zero. Default: 0.

[].paymentFee

Number

The payment fee value . Must be positive or zero. Default: 0.

[].preOrder

String

Delivery or pickup time ISO8601 (yyyy-MM-dd’T’HH:mm:ss.SSSX) requested by customer. This value must be less than 7 days from current time. Example: 2021-03-10T16:34:09Z, 2021-03-10T14:34:09+02:00. Default: null.

[].platformStatus

String

Order platform status. Existing values: ACCEPTED, PROCESSING, PROCESSED, CANCELED, PROCESSING_ERROR. Must not be null.

[].createdDate

String

Order creation date. Must not be null.

[].modifiedDate

String

Order modification date. Must not be null.

[].createdBy

String

Order created by. Must not be empty.

[].modifiedBy

String

Order modification by. Must not be empty.

[].estimatedProcessTimestamp

String

Order estimated processing time.

[].customer.companyName

String

Company name. Size must be between 1 and 2147483647 inclusive. Default: null.

[].customer.name

String

Name of customer.

[].customer.street

String

Customer street.

[].customer.streetNumber

String

Customer street number.

[].customer.city

String

Customer city.

[].customer.postalCode

String

Customer postal code. Must match the regular expression \d+.

[].customer.phoneNumber

String

Customer phone number. Must match the regular expression \d+.

[].customer.extraAddressInfo

String

Customer additional address (delivery) information. Size must be between 1 and 2147483647 inclusive. Default: null.

[].customer.remark

String

Any remark for customer eg. 1st floor, etc. Size must be between 1 and 2147483647 inclusive. Default: null.

[].deliveryCost.cost

Number

Order delivery costs. Must be positive or zero.

[].items

Array

List of included order items. Must not be empty.

[].items[].itemCode

String

SKU or product identity in your system. Size must be between 1 and 36 inclusive. Default: null.

[].items[].itemType

String

Product type. MAIN_DISH - main dish, for example Pizza, Soup, Salad. Used to calculate taxes for the main dish. taxed with REDUCED_TAX (eg. 7% in Germany) TOPPING - An additive to the main dish, for example Cheese, Tomato, Sauce. Used to calculate taxes for the additive. taxed with REDUCED_TAX (eg. 7% in Germany) BEVERAGE - beverage. Used to calculate taxes for a beverage. BOTTLE_DEPOSIT - container from the beverage. Used to calculate taxes for bottle deposit. taxed with BOTTLE_DEPOSIT (eg. 19% in Germany) MENU - combo menu. Used to calculate taxes for the menu. If all products in this MENU have "initialPrice“, then the mix tax will be calculated. Example: For Main dishes and toppings "MAIN_DISH", "TOPPING" will taken the Reduced_tax (eg. 7% in Germany) and for beverages "BEVERAGE" will taken Normal_tax (eg. 19% in Germany) If at least one product in menu dosen’t have an initial price, then: if menu containt at least one BEVERAGE, then the whole menu is taxed with Normal_tax (eg. 19% in Germany). If no drink is in the order, than all menu is taxed with Reduced_tax (eg. 7% in Germany). . Existing values: TOPPING, MAIN_DISH, BEVERAGE, BOTTLE_DEPOSIT, MENU.

[].items[].initialPrice

Number

Individual initial price of the product is used to calculate the tax for the MENU. If all products in this MENU have "initialPrice“, then the mix tax will be calculated. Example: For Main dishes and toppings "MAIN_DISH", "TOPPING" will taken the Reduced_tax (eg. 7% in germany) and for beverages "BEVERAGE" will taken Normal_tax (eg. 19% in Germany) If at least one product in menu dosen’t have an initial price, then: if menu containt at least one BEVERAGE, then the whole menu is taxed with Normal_tax (eg. 19% in germany). If no drink is in the order, than all menu is taxed with Reduced_tax (eg. 7% in Germany)..

[].items[].quantity

Number

Count of ordered products. Should be whole numbers excluding zero

[].items[].name

String

Name of product. Must not be empty.

[].items[].price

Number

Product individual price, exclude side dishes. Must be positive or zero.

[].items[].remark

String

Product specific remarks. Size must be between 1 and 2147483647 inclusive.

[].items[].category

String

Product category name. Size must be between 1 and 2147483647 inclusive.

[].items[].items

Array

List of subItems.

[].items[].taxData

Object

Product tax data.

[].items[].taxData.type

String

Product tax type. Existing values: NORMAL, REDUCED. Must not be null.

[].items[].taxData.rate

Number

Product tax rate in percents. Must not be null.

4.4. Get all orders by restarant id

curl
$ curl 'https://api.liefersoft.de/restaurantId-123/orders?page=0&size=5' -i -X GET \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM'
request
GET /restaurantId-123/orders?page=0&size=5 HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM
Host: api.liefersoft.de
Table 9. /{restaurantId}/orders
Parameter Description

restaurantId

Internal unique restaurant identifier

response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1347

{"content":[{"orderId":"123-444","preOrder":"2019-08-10T18:40:00Z","orderType":"DELIVERY","platformName":"Pizza Netz","customer":{"companyName":"Smith Ltd","name":"John Smith","street":"Main Street","streetNumber":"2","city":"Hamburg","postalCode":"21563","phoneNumber":"987368676","extraAddressInfo":"1st floor.","remark":"customer remark"},"deliveryCost":{"cost":1.5},"totalPrice":15.5,"totalDiscount":2.0,"payed":true,"tips":2.5,"paymentFee":0.0,"paymentMethod":"ONLINE","remark":"please call me before you come","items":[{"itemCode":"11b","quantity":2,"price":5.0,"initialPrice":5.0,"name":"Pizza Margarita","itemType":"MAIN_DISH","remark":"no chilly","category":"Pizza","taxData":{"type":"NORMAL","rate":19.0},"items":[]},{"itemCode":"c1l","quantity":2,"price":3.0,"initialPrice":3.0,"name":"Cola","itemType":"BEVERAGE","remark":"remark1","category":"Drink","taxData":{"type":"NORMAL","rate":19.0},"items":[]}],"id":"abc-456","platformStatus":"PROCESSED","estimatedProcessTimestamp":"2020-10-15T00:00:00Z","createdDate":"2020-10-11T00:00:00","modifiedDate":"2020-10-11T00:00:00","createdBy":"some.user@example.com","modifiedBy":"some.user@example.com"}],"pageable":"INSTANCE","last":true,"totalPages":1,"totalElements":1,"size":1,"number":0,"sort":{"empty":true,"sorted":false,"unsorted":true},"first":true,"numberOfElements":1,"empty":false}
Table 10. response fields
Path Type Description

number

Number

Pageable parameter, page number

size

Number

Pageable parameter, page size

empty

Boolean

Pageable parameter, page isEmpty

totalElements

Number

Pageable parameter, totalElements

totalPages

Number

Pageable parameter, totalPages

last

Boolean

Pageable parameter, is page last

numberOfElements

Number

Pageable parameter, numberOfElements

first

Boolean

Pageable parameter, is page first

sort

Object

Pageable parameter, sort object

sort.sorted

Boolean

Pageable parameter, is sorted

sort.unsorted

Boolean

Pageable parameter, is unsorted

sort.empty

Boolean

Pageable parameter, is empty

pageable

String

Pageable parameter, object contain type

content[].id

String

The unique technical identifier of order. Must not be empty.

content[].orderId

String

Custom unique technical identifier of order (ref id). Must not be empty. Size must be between 1 and 255 inclusive.

content[].platformName

String

The name of client/producer. ex. the_best_web_shop_ever

content[].orderType

String

Order type based on delivery type. Existing values: COUNTER, PICKUP, DELIVERY, RESTAURANT. Must not be null.

content[].totalPrice

Number

Order total price including discounts and delivery costs. Must be positive.

content[].totalDiscount

Number

Order total discount. Must be positive or zero. Default: 0.

content[].paymentMethod

String

Order payment method. Existing values: CASH, MEAL_VOUCHER, ONLINE, CREDIT_CARD_AT_DOORSTEP, EC_AT_DOORSTEP. Must not be null.

content[].remark

String

Any general remarks about the order. Size must be between 1 and 2147483647 inclusive. Default: null.

content[].payed

Boolean

The order has been paid already.

content[].tips

Number

The Tips additional to total price . Must be positive or zero. Default: 0.

content[].paymentFee

Number

The payment fee value . Must be positive or zero. Default: 0.

content[].preOrder

String

Delivery or pickup time ISO8601 (yyyy-MM-dd’T’HH:mm:ss.SSSX) requested by customer. This value must be less than 7 days from current time. Example: 2021-03-10T16:34:09Z, 2021-03-10T14:34:09+02:00. Default: null.

content[].platformStatus

String

Order platform status. Existing values: ACCEPTED, PROCESSING, PROCESSED, CANCELED, PROCESSING_ERROR. Must not be null.

content[].createdDate

String

Order creation date. Must not be null.

content[].modifiedDate

String

Order modification date. Must not be null.

content[].createdBy

String

Order created by. Must not be empty.

content[].modifiedBy

String

Order modification by. Must not be empty.

content[].estimatedProcessTimestamp

String

Order estimated processing time.

content[].customer.companyName

String

Company name. Size must be between 1 and 2147483647 inclusive. Default: null.

content[].customer.name

String

Name of customer.

content[].customer.street

String

Customer street.

content[].customer.streetNumber

String

Customer street number.

content[].customer.city

String

Customer city.

content[].customer.postalCode

String

Customer postal code. Must match the regular expression \d+.

content[].customer.phoneNumber

String

Customer phone number. Must match the regular expression \d+.

content[].customer.extraAddressInfo

String

Customer additional address (delivery) information. Size must be between 1 and 2147483647 inclusive. Default: null.

content[].customer.remark

String

Any remark for customer eg. 1st floor, etc. Size must be between 1 and 2147483647 inclusive. Default: null.

content[].deliveryCost.cost

Number

Order delivery costs. Must be positive or zero.

content[].items

Array

List of included order items. Must not be empty.

content[].items[].itemCode

String

SKU or product identity in your system. Size must be between 1 and 36 inclusive. Default: null.

content[].items[].itemType

String

Product type. MAIN_DISH - main dish, for example Pizza, Soup, Salad. Used to calculate taxes for the main dish. taxed with REDUCED_TAX (eg. 7% in Germany) TOPPING - An additive to the main dish, for example Cheese, Tomato, Sauce. Used to calculate taxes for the additive. taxed with REDUCED_TAX (eg. 7% in Germany) BEVERAGE - beverage. Used to calculate taxes for a beverage. BOTTLE_DEPOSIT - container from the beverage. Used to calculate taxes for bottle deposit. taxed with BOTTLE_DEPOSIT (eg. 19% in Germany) MENU - combo menu. Used to calculate taxes for the menu. If all products in this MENU have "initialPrice“, then the mix tax will be calculated. Example: For Main dishes and toppings "MAIN_DISH", "TOPPING" will taken the Reduced_tax (eg. 7% in Germany) and for beverages "BEVERAGE" will taken Normal_tax (eg. 19% in Germany) If at least one product in menu dosen’t have an initial price, then: if menu containt at least one BEVERAGE, then the whole menu is taxed with Normal_tax (eg. 19% in Germany). If no drink is in the order, than all menu is taxed with Reduced_tax (eg. 7% in Germany). . Existing values: TOPPING, MAIN_DISH, BEVERAGE, BOTTLE_DEPOSIT, MENU.

content[].items[].initialPrice

Number

Individual initial price of the product is used to calculate the tax for the MENU. If all products in this MENU have "initialPrice“, then the mix tax will be calculated. Example: For Main dishes and toppings "MAIN_DISH", "TOPPING" will taken the Reduced_tax (eg. 7% in germany) and for beverages "BEVERAGE" will taken Normal_tax (eg. 19% in Germany) If at least one product in menu dosen’t have an initial price, then: if menu containt at least one BEVERAGE, then the whole menu is taxed with Normal_tax (eg. 19% in germany). If no drink is in the order, than all menu is taxed with Reduced_tax (eg. 7% in Germany)..

content[].items[].quantity

Number

Count of ordered products. Should be whole numbers excluding zero

content[].items[].name

String

Name of product. Must not be empty.

content[].items[].price

Number

Product individual price, exclude side dishes. Must be positive or zero.

content[].items[].remark

String

Product specific remarks. Size must be between 1 and 2147483647 inclusive.

content[].items[].category

String

Product category name. Size must be between 1 and 2147483647 inclusive.

content[].items[].items

Array

List of subItems.

content[].items[].taxData

Object

Product tax data.

content[].items[].taxData.type

String

Product tax type. Existing values: NORMAL, REDUCED. Must not be null.

content[].items[].taxData.rate

Number

Product tax rate in percents. Must not be null.

4.5. Get order by ref id

curl
$ curl 'https://api.liefersoft.de/orders/bk5678-sa/ref' -i -X GET \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM'
request
GET /orders/bk5678-sa/ref HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM
Host: api.liefersoft.de
Table 11. /orders/{orderId}/ref
Parameter Description

orderId

The custom unique identifier of order

response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1147

{"orderId":"123-444","preOrder":"2019-08-10T18:40:00Z","orderType":"DELIVERY","platformName":"Pizza Netz","customer":{"companyName":"Smith Ltd","name":"John Smith","street":"Main Street","streetNumber":"2","city":"Hamburg","postalCode":"21563","phoneNumber":"987368676","extraAddressInfo":"1st floor.","remark":"customer remark"},"deliveryCost":{"cost":1.5},"totalPrice":15.5,"totalDiscount":2.0,"payed":true,"tips":2.5,"paymentFee":0.0,"paymentMethod":"ONLINE","remark":"please call me before you come","items":[{"itemCode":"11b","quantity":2,"price":5.0,"initialPrice":5.0,"name":"Pizza Margarita","itemType":"MAIN_DISH","remark":"no chilly","category":"Pizza","taxData":{"type":"NORMAL","rate":19.0},"items":[]},{"itemCode":"c1l","quantity":2,"price":3.0,"initialPrice":3.0,"name":"Cola","itemType":"BEVERAGE","remark":"remark1","category":"Drink","taxData":{"type":"NORMAL","rate":19.0},"items":[]}],"id":"bk5678-sa","platformStatus":"PROCESSED","estimatedProcessTimestamp":"2020-10-15T00:00:00Z","createdDate":"2020-10-11T00:00:00","modifiedDate":"2020-10-11T00:00:00","createdBy":"some.user@example.com","modifiedBy":"some.user@example.com"}
Table 12. response fields
Path Type Description

id

String

The unique technical identifier of order. Must not be empty.

orderId

String

Custom unique technical identifier of order (ref id). Must not be empty. Size must be between 1 and 255 inclusive.

platformName

String

The name of client/producer. ex. the_best_web_shop_ever

orderType

String

Order type based on delivery type. Existing values: COUNTER, PICKUP, DELIVERY, RESTAURANT. Must not be null.

totalPrice

Number

Order total price including discounts and delivery costs. Must be positive.

totalDiscount

Number

Order total discount. Must be positive or zero. Default: 0.

paymentMethod

String

Order payment method. Existing values: CASH, MEAL_VOUCHER, ONLINE, CREDIT_CARD_AT_DOORSTEP, EC_AT_DOORSTEP. Must not be null.

remark

String

Any general remarks about the order. Size must be between 1 and 2147483647 inclusive. Default: null.

payed

Boolean

The order has been paid already.

tips

Number

The Tips additional to total price . Must be positive or zero. Default: 0.

paymentFee

Number

The payment fee value . Must be positive or zero. Default: 0.

preOrder

String

Delivery or pickup time ISO8601 (yyyy-MM-dd’T’HH:mm:ss.SSSX) requested by customer. This value must be less than 7 days from current time. Example: 2021-03-10T16:34:09Z, 2021-03-10T14:34:09+02:00. Default: null.

platformStatus

String

Order platform status. Existing values: ACCEPTED, PROCESSING, PROCESSED, CANCELED, PROCESSING_ERROR. Must not be null.

createdDate

String

Order creation date. Must not be null.

modifiedDate

String

Order modification date. Must not be null.

createdBy

String

Order created by. Must not be empty.

modifiedBy

String

Order modification by. Must not be empty.

estimatedProcessTimestamp

String

Order estimated processing time.

customer.companyName

String

Company name. Size must be between 1 and 2147483647 inclusive. Default: null.

customer.name

String

Name of customer.

customer.street

String

Customer street.

customer.streetNumber

String

Customer street number.

customer.city

String

Customer city.

customer.postalCode

String

Customer postal code. Must match the regular expression \d+.

customer.phoneNumber

String

Customer phone number. Must match the regular expression \d+.

customer.extraAddressInfo

String

Customer additional address (delivery) information. Size must be between 1 and 2147483647 inclusive. Default: null.

customer.remark

String

Any remark for customer eg. 1st floor, etc. Size must be between 1 and 2147483647 inclusive. Default: null.

deliveryCost.cost

Number

Order delivery costs. Must be positive or zero.

items

Array

List of included order items. Must not be empty.

items[].itemCode

String

SKU or product identity in your system. Size must be between 1 and 36 inclusive. Default: null.

items[].itemType

String

Product type. MAIN_DISH - main dish, for example Pizza, Soup, Salad. Used to calculate taxes for the main dish. taxed with REDUCED_TAX (eg. 7% in Germany) TOPPING - An additive to the main dish, for example Cheese, Tomato, Sauce. Used to calculate taxes for the additive. taxed with REDUCED_TAX (eg. 7% in Germany) BEVERAGE - beverage. Used to calculate taxes for a beverage. BOTTLE_DEPOSIT - container from the beverage. Used to calculate taxes for bottle deposit. taxed with BOTTLE_DEPOSIT (eg. 19% in Germany) MENU - combo menu. Used to calculate taxes for the menu. If all products in this MENU have "initialPrice“, then the mix tax will be calculated. Example: For Main dishes and toppings "MAIN_DISH", "TOPPING" will taken the Reduced_tax (eg. 7% in Germany) and for beverages "BEVERAGE" will taken Normal_tax (eg. 19% in Germany) If at least one product in menu dosen’t have an initial price, then: if menu containt at least one BEVERAGE, then the whole menu is taxed with Normal_tax (eg. 19% in Germany). If no drink is in the order, than all menu is taxed with Reduced_tax (eg. 7% in Germany). . Existing values: TOPPING, MAIN_DISH, BEVERAGE, BOTTLE_DEPOSIT, MENU.

items[].initialPrice

Number

Individual initial price of the product is used to calculate the tax for the MENU. If all products in this MENU have "initialPrice“, then the mix tax will be calculated. Example: For Main dishes and toppings "MAIN_DISH", "TOPPING" will taken the Reduced_tax (eg. 7% in germany) and for beverages "BEVERAGE" will taken Normal_tax (eg. 19% in Germany) If at least one product in menu dosen’t have an initial price, then: if menu containt at least one BEVERAGE, then the whole menu is taxed with Normal_tax (eg. 19% in germany). If no drink is in the order, than all menu is taxed with Reduced_tax (eg. 7% in Germany)..

items[].quantity

Number

Count of ordered products. Should be whole numbers excluding zero

items[].name

String

Name of product. Must not be empty.

items[].price

Number

Product individual price, exclude side dishes. Must be positive or zero.

items[].remark

String

Product specific remarks. Size must be between 1 and 2147483647 inclusive.

items[].category

String

Product category name. Size must be between 1 and 2147483647 inclusive.

items[].items

Array

List of subItems.

items[].taxData

Object

Product tax data.

items[].taxData.type

String

Product tax type. Existing values: NORMAL, REDUCED. Must not be null.

items[].taxData.rate

Number

Product tax rate in percents. Must not be null.

5. Webhook configuration

5.1. Get all webhooks

curl
$ curl 'https://api.liefersoft.de/webhooks' -i -X GET \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM'
response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 84

[{"id":"00000000-aaaa-aaaa-aaaa-000000000000","url":"https://callbackUrl.com/path"}]
Table 13. response fields
Path Type Description

[].id

String

The generated unique identifier of webhook. Must not be empty.

[].url

String

Webhook url. Must not be empty.

5.2. Create webhook

curl
$ curl 'https://api.liefersoft.de/webhooks' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM' \
    -d '{"secret": "12345678ABCDEFGH", "url": "https://callbackUrl.com/path"}'
request
POST /webhooks HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM
Content-Length: 69
Host: api.liefersoft.de

{"secret": "12345678ABCDEFGH", "url": "https://callbackUrl.com/path"}
Table 14. request fields
Path Type Description

secret

String

Secret. Must not be empty. Size must be between 16 and 1024 inclusive.

url

String

Webhook url. Must match the regular expression ^https://.*. Must not be empty. Size must be between 12 and 255 inclusive.

request body
{"secret": "12345678ABCDEFGH", "url": "https://callbackUrl.com/path"}
response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 82

{"id":"00000000-aaaa-aaaa-aaaa-000000000000","url":"https://callbackUrl.com/path"}
Table 15. response fields
Path Type Description

id

String

The generated unique identifier of webhook. Must not be empty.

url

String

Webhook url. Must not be empty.

5.3. Update webhook

curl
$ curl 'https://api.liefersoft.de/webhooks/00000000-aaaa-aaaa-aaaa-000000000000' -i -X PUT \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM' \
    -d '{"secret": "12345678ABCDEFGH", "url": "https://callbackUrl.com/path"}'
request
PUT /webhooks/00000000-aaaa-aaaa-aaaa-000000000000 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM
Content-Length: 69
Host: api.liefersoft.de

{"secret": "12345678ABCDEFGH", "url": "https://callbackUrl.com/path"}
Table 16. /webhooks/{id}
Parameter Description

id

Webhook id

response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 82

{"id":"00000000-aaaa-aaaa-aaaa-000000000000","url":"https://callbackUrl.com/path"}
Table 17. response fields
Path Type Description

id

String

The generated unique identifier of webhook. Must not be empty.

url

String

Webhook url. Must not be empty.

5.4. Delete webhook

curl
$ curl 'https://api.liefersoft.de/webhooks/00000000-aaaa-aaaa-aaaa-000000000000' -i -X DELETE \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJkMTIyZjY1Yi05ODlmLTQ4OTgtYjc1OC1hMTZkMWE1YmE2ZjYiLCJleHAiOjE5MTc4MjA4MDAsImlhdCI6MTYwMzE5MDI4MCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiI3N2UzNGQxMS0xZDcxLTQ5YTEtOTBlOC0zMWEyZTRkNjdhZDYiLCJqdGkiOiJjNmYzZWZlZC04ZmU2LTRjMzctYTVmOC0wZWU2NTk2ODg2NjIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiJSRUZSRVNIX1RPS0VOIiwiZW1haWwiOiJzb21lLnVzZXJAZXhhbXBsZS5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwiYXBwbGljYXRpb25JZCI6ImQxMjJmNjViLTk4OWYtNDg5OC1iNzU4LWExNmQxYTViYTZmNiIsInJvbGVzIjpbXSwiY29tcGFueURhdGEiOnsibmFtZSI6IlZsYWQgOTkzIENvbXAiLCJpbmRleCI6IkQxLTc2MDIzIiwiY2l0eSI6Ijk3Iiwic3RyZWV0IjoiamoiLCJob3VzZSI6Ijg5NyIsInppcENvZGUiOiJpam9qIiwicGhvbmVQcmVmaXgiOiI4OTg3OSIsInBob25lTnVtYmVyIjoiOTg3OTgiLCJmYXgiOiI5ODc5ODciLCJ0YXhJZCI6Ijk4Nzk4NzkiLCJvcmRlcnNFbWFpbCI6InNvbWUudXNlckBleGFtcGxlLmNvbSIsIm93bmVyRnVsbE5hbWUiOiJWbGFkaXNsYXYiLCJvd25lckVtYWlsIjoic29tZS51c2VyQGV4YW1wbGUuY29tIiwib3duZXJQaG9uZU51bWJlciI6IjIzNDk3MjkzOTc4IiwibGF0aXR1ZGUiOjUuMjM0MiwibG9uZ2l0dWRlIjo0LjY1NTMsImNvdW50cnlOYW1lIjoiRGV1dHNjaGxhbmQiLCJjb3VudHJ5Q29kZSI6IkRFVSIsImN1cnJlbmN5IjoiRVVSIn0sImdyb3VwIjoiUExBVEZPUk1fQVBJIiwidGVuYW50SWQiOiI3MzcxMTZkOC04MWYxLTQxYmEtYmJiMy1jNGU2YzE1NWRiYzIifQ.K5-PMRbcojM6-wuO2EHshteN21HONM937Z7QdxRPx1qV05-16jW2HLDjFZGWvDllNd5wfFkponrsCwgOrmHwCOsNvSuqQe_0htl4bYTYwPQuRXEqDFo2Om7LhR-JK2D009RGF_JMheJ0jHFTXAAoSBOWlxjD6jB59bTtnPmCfReYqCIZ2uvDS2DWY0fuXjLrs0AC7am1nj9Nsl3NqZoYebUOe9TZaM2FBFsrVkXvBIhghZFcyPho8J4kEN7_ch2lEfQCwWFJ7300lEfZJ43Olsdj5quTFlockRzQzSVrNnFBNG1GsjZLCDJhjnoZAjHwR7bbAPOmrVVKTHN4kAdD6S12Gbsc9rujIlsAkI9rZ3Neqkk93QdwIUlQTdzGDkM3OunIU5t_YQHqt359dAYXdXOszZdb9fWNQR8_6-ewYdfaIa1BIrROcCsZ22F7x_We-SdTgdoaj7sJY_H6mofpFIQCop4qRG32vYLcK-8gyFXkLdYw5feIb4LbfdBijiCBL9zvx529OpTxCHYtr83GcT7GrgmhVFU5odfeBCWWsT5vm07_dXbzcliQF-EJijzFDSQgzzo4ibSkrTXjLdYKYalaD_Nu5UFU91eSiIcxIi8RyRHR6geR26bOzeK9G5IP8OQjyFtKwGwJI_V-rzK5oNTEt1SFmJFEltECOwMefzM'
Table 18. /webhooks/{id}
Parameter Description

id

Webhook id

response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY

6. Webhook order

6.1. Authenticating Webhooks

When a Webhook POST message is sent to your endpoint, it includes the header X-Signature-SHA256, which is a SHA-256 hash of the message payload generated using the signing key. You can use the following steps to verify the Webhook message:

Compute the SHA-256 HASH of the message utilizing your designated signing key. It is recommended to employ a standard HMAC function provided by your programming language.

It is crucial to ensure the integrity and authenticity of a message by verifying the correctness of the control signature before proceeding with any processing.

Below is an example of the data used to calculate the expected X-Signature-SHA256 signature, considering the signing key and the message payload:

example data
secretKey: secret-123
json: {"eventId":"ev-123","webhookId":"wh-123","companyIndex":"AA-11111","restaurantId":"rest_1","eventType":"ORDER_CONFIRMED","order":{"orderId":"123-444","preOrder":"2019-08-10T18:40:00Z","orderType":"DELIVERY","platformName":"Pizza Netz","customer":{"companyName":"Smith Ltd","name":"John Smith","street":"Main Street","streetNumber":"2","city":"Hamburg","postalCode":"21563","phoneNumber":"987368676","extraAddressInfo":"1st floor.","remark":"customer remark"},"deliveryCost":{"cost":1.5},"totalPrice":15.5,"totalDiscount":2.0,"payed":true,"tips":2.5,"paymentFee":0.0,"paymentMethod":"ONLINE","remark":"please call me before you come","items":[{"itemCode":"11b","quantity":2,"price":5.0,"initialPrice":0.0,"name":"Pizza Margarita","remark":"no chilly","category":"Pizza","taxData":{"type":"NORMAL","rate":19.0},"items":[]},{"itemCode":"c1l","quantity":2,"price":3.0,"initialPrice":0.0,"name":"Cola","remark":"remark1","category":"Drink","taxData":{"type":"NORMAL","rate":19.0},"items":[]}],"id":"order-123","platformStatus":"PROCESSED","estimatedProcessTimestamp":"2020-10-15T00:00:00Z","createdDate":"2020-10-11T00:00:00","modifiedDate":"2020-10-11T00:00:00","createdBy":"some.user@example.com","modifiedBy":"some.user@example.com"}}
X-Signature-SHA256: uSh2b4x8pwcWQhJOLLT9OWvVRUSWxKCvS9Fg6oMxW0k=
curl
$ curl 'https://<YOUR_WEBHOOK_URI>' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'X-Signature-SHA256: uSh2b4x8pwcWQhJOLLT9OWvVRUSWxKCvS9Fg6oMxW0k=' \
    -d '{"eventId":"ev-123","webhookId":"wh-123","companyIndex":"AA-11111","restaurantId":"rest_1","eventType":"ORDER_CONFIRMED","order":{"orderId":"123-444","preOrder":"2019-08-10T18:40:00Z","orderType":"DELIVERY","platformName":"Pizza Netz","customer":{"companyName":"Smith Ltd","name":"John Smith","street":"Main Street","streetNumber":"2","city":"Hamburg","postalCode":"21563","phoneNumber":"987368676","extraAddressInfo":"1st floor.","remark":"customer remark"},"deliveryCost":{"cost":1.5},"totalPrice":15.5,"totalDiscount":2.0,"payed":true,"tips":2.5,"paymentFee":0.0,"paymentMethod":"ONLINE","remark":"please call me before you come","items":[{"itemCode":"11b","quantity":2,"price":5.0,"initialPrice":0.0,"name":"Pizza Margarita","remark":"no chilly","category":"Pizza","taxData":{"type":"NORMAL","rate":19.0},"items":[]},{"itemCode":"c1l","quantity":2,"price":3.0,"initialPrice":0.0,"name":"Cola","remark":"remark1","category":"Drink","taxData":{"type":"NORMAL","rate":19.0},"items":[]}],"id":"order-123","platformStatus":"PROCESSED","estimatedProcessTimestamp":"2020-10-15T00:00:00Z","createdDate":"2020-10-11T00:00:00","modifiedDate":"2020-10-11T00:00:00","createdBy":"some.user@example.com","modifiedBy":"some.user@example.com"}}'
Table 19. event types
Event type Description

ORDER_CONFIRMED

Order has been confirmed successfully.

ORDER_PROCESSED

Order has been processed.

ORDER_CANCELLED

Order has been cancelled.

Table 20. order event payload
Path Type Description

eventId

String

Event ID.

webhookId

String

Webhook ID.

companyIndex

String

The unique identifier of company.

restaurantId

String

The restaurant id through which the order was placed.

eventType

String

The type of event that occurred. Example: "ORDER_CONFIRMED" or "ORDER_PROCESSED" or "ORDER_CANCELLED".

order

Object

An object containing details about the order.

order.orderId

String

A unique identifier for the order, as provided when the order was created.

order.preOrder

String

The date and time when the order was placed in ISO 8601 format. This field is optional if the order is not a pre-order.

order.orderType

String

The type of order (e.g., delivery, pickup). Example: "DELIVERY" or "PICKUP" or "COUNTER".

order.platformName

String

The name of client/producer. ex. the_best_web_shop_ever

order.customer

Object

An object containing details about the customer

order.customer.companyName

String

The name of the customer’s company.

order.customer.name

String

The name of the customer.

order.customer.street

String

The street name of the customer’s address.

order.customer.streetNumber

String

The street number of the customer’s address.

order.customer.city

String

The city of the customer’s address.

order.customer.postalCode

String

The postal code of the customer’s address.

order.customer.phoneNumber

String

The phone number of the customer.

order.customer.extraAddressInfo

String

Additional information about the customer’s address.

order.customer.remark

String

Any remarks or comments from the customer.

order.deliveryCost

Object

An object containing details about the delivery cost.

order.deliveryCost.cost

Number

The cost of delivery.

order.totalPrice

Number

The total price of the order.

order.totalDiscount

Number

The total discount applied to the order.

order.payed

Boolean

Indicates whether the order has been paid.

order.tips

Number

The amount of tips given.

order.paymentFee

Number

The fee for the payment method used.

order.paymentMethod

String

The method of payment used for the order. Example: "ONLINE" or "CASH" or "EC_AT_DOORSTEP.

order.remark

String

Any additional remarks or instructions for the order.

order.items

Array of Objects

An array of items included in the order.

order.items[n].itemCode

String

A code for the item.

order.items[n].quantity

Number

The quantity of the item ordered.

order.items[n].price

Number

The price of the item.

order.items[n].initialPrice

Number

The initial price of the item (if different from the final price).

order.items[n].regularPrice

Number or Null

The regular price of the item (if applicable).

order.items[n].name

String

The name of the item.

order.items[n].itemType

String

The type of item. Example: "MAIN_DISH" or "TOPPING" or "BEVERAGE" or "BOTTLE_DEPOSIT".

order.items[n].remark

String

Any remarks or special instructions for the item.

order.items[n].category

String

The category of the item.

order.items[n].taxData

Object

An object containing tax data for the item.

order.items[n].taxData.type

String

The type of tax applied to the item. Example: "NORMAL" or "REDUCED".

order.items[n].taxData.rate

Number

The tax rate applied to the item.

order.items[n].items

Array

An array of sub-items (if applicable).

order.id

String

A unique identifier for the order, provided to them in the response when the order was created.

order.platformStatus

String

The current status of the order on the platform. Example: "ACCEPTED", "PROCESSING", "PROCESSED", "CANCELED", "PROCESSING_ERROR".

order.estimatedProcessTimestamp

String (DateTime)

The estimated timestamp for when the order will be processed.

order.createdDate

String (DateTime)

The date and time when the order was created.

order.modifiedDate

String (DateTime)

The date and time when the order was last modified.

order.createdBy

String

The name of the user who created the order.

order.modifiedBy

String

The email of the user who last modified the order.