POS Integration Module
Introduction
Connect your POS app or platform to Sinqro (consuming Sinqro APIs and listening Sinqro webhooks)
Target Developers
- Internal developers from a POS software company
- Developers from a restaurant chain or group having their own POS solution
Your company benefits
- Your clients (restaurants and food shops using your software), will be able to manage their own web/mobile apps and external marketplaces orders/reservations, delivery services and many other Sinqro connected solutions, directly FROM YOUR POS.
- You won’t have to integrate dozens of marketplaces or providers one by one. With one integration, your POS is connected to multiple external services.
- Your software will be listed in our site as Sinqro-ready POS and this will accelerate your sales.
Getting started
The developer account is automatically created when your company's account is created.
In order to create your POS, marketplace, app or any other platform account, please go to our main site, select your company type and follow the instructions.
If your company's account was already created and you have problems to access your account, contact us through the chat in this site or by email at integrations@sinqro.com
API Environments
As you are going to develop using test accounts, you can work directly in production:
https://api.sinqro.com/pos-app/v1
API Security
Authorization
All services of this API require an authorization token sent in headers ‘x-api-server-access-token’.
You can get your integration module assigned token in your developer panel.
Authentication
All this API services require an authentication token sent in headers 'x-api-user-access-token'.
How to get the authentication token?
The authentication token is generated automatically for each client's module setup.
In your developer panel you'll find listed all the module setups with its assigned token.
We will provide you a demo business with an authentication token to test your integration.
Guide & Examples
We show you some relevant use cases.
Understanding order types
Delivery orders (code: delivery)
A delivery order is just an order to be delivered to the consumer by the restaurant staff, an external marketplace with its own riders or by an on-demand delivery company.
Takeaway orders (code: collection)
A takeaway order is an order placed to be collected at the restaurant by the consumer.
Reservations (code: reservation)
A reservation is a simple table reservation without order lines, without products.
Reservations with pre-order (code: insitu)
Can be understood as a simple reservation + an order, or an order + a reservation.
Also known as 'eat-in preorders'.
In both cases, the consumer decides what's gonna consume in the restaurant during the reservation.
Table service orders (code: inside)
Is an order placed by the consumer being at the restaurant, normally from the table.
Creating products
PRODUCTS
Pushing products is the first service that normally a POS wants to integrate.
We suggest starting pushing the products without any menu/menuSection relation, and then evaluate the different strategies you have to link these products with menus.
Menus and menuSections will be explicitely explained in the next use case.
PRODUCT OPTION CATEGORIES AND PRODUCT OPTIONS
Example:
BBQ Burger 10€ (product)
- Choose a side (productOptionCategory)
- Extra Bacon +2€ (productOption)
- Extra Cheddar +1€ (productOption)
- How do you prefer the meat ? (productOptionCategory)
- Raw (productOption)
- Rare (productOption)
- Medium rare (productOption)
- Medium (productOption)
- Medium well (productOption)
- Well done (productOption)
PRODUCT VARIANT
A productVariant is a product itself, linked to a parent product:
BBQ Burger 10€ (product)
> XXL BBQ Burger 15€ (productVariant)
Creating menus
MENUS
We have two 'menu' types: setMenus and menus. Both menu types have menuSections and a menuSection has a collection of products.
A setMenu (not common in all countries), has a fixed price itself and the client must select normally only one product for each menuSection.
In a standard menu, the client has no limitations selecting products within the menuSections and the price is defined for each of the products, a not for the menu itself.
SIMPLIFYNG THE INTEGRATION
If you don't have the 'menu' concept in your POS, you have different options:
A. Ignore the menu concept, push only products and ask the restaurant user to create the menus directly in Sinqro, selecting the products you pushed manually.
B. Create a single online menu with menuSections (manually) in Sinqro and push your products to this single menu
C. Incorporate to your data model the concept of menu.
Managing new orders and reservations
Receive and manage new orders and reservations (using webhooks). If you provide a webhook endpoint, new orders webhooks will be thrown for a real-time connection
New order / reservation workflow
ACTION | DESCRIPTION |
---|---|
1. Place order | The client places the order |
2. API Post order | The marketplace posts the order to Sinqro |
3. Send order WEBHOOK | Sinqro sends the new order webhook to the POS |
4. Restaurant notification | The POS notifies the restaurant |
5. Get available order actions | The POS get the possible actions (accept, cancel, ...) for the order |
6. Show actions as buttons | The POS shows the possible actions selectable by the restaurant |
7. Select order action | The restaurant accepts or cancels the order selecting one of the order actions |
8. API Post order action | The POS changes the order status providing the order action selected by the restaurant |
9. New status WEBHOOK | Sinqro sends the new status webhook to the market |
10. Client notification | The marketplace notifies the client |
API SERVICES REFERENCE
BULK
Patch menu collection
body | body |
HTTP Code | Description | Body |
400 | Error/s | object ErrorResponse |
201 | Created | object PosMenuCollectionRaw |
Patch zones and tables
sellingPointId | integer | path | Selling point identifier |
PatchServiceZonesData | body | Service zones data |
HTTP Code | Description | Body |
PRODUCTS
Get products
Product variants can be treated as products but they are always inside parent products, so this method return only products at first level (no variants).
If you need the full product info, you must use the GET product service
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
onlyPublicProducts ( optional ) | boolean | query | Load only public products. False by default if the parameter is not send |
HTTP Code | Description | Body |
400 | Error/s | object ErrorResponse |
200 | Ok | array PosPartialProduct |
Post product
Understanding product properties:
prices
- price: Define the product price when the product is sold in menu.
- inMenuPrice: Define the menu increment when the product is sold in setmenu.
Product options identifiers which can be added to product.
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
body | body |
HTTP Code | Description | Body |
400 | Error/s | object ErrorResponse |
201 | Created | object PosProduct |
Get product
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
productId | integer | path | Product identifier |
HTTP Code | Description | Body |
400 | Error/s | object ErrorResponse |
200 | Ok | object PosProduct |
Patch product
Patch only modify send information, for example you can modify product options assigned to product only sending something like that:
{ "productOptionsIds": [ 1443, 2552, 1123 ] }
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
productId | integer | path | Product identifier |
body | body |
HTTP Code | Description | Body |
400 | Error/s | object ErrorResponse |
200 | Ok | object PosProduct |
Delete product
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
productId | integer | path | Product identifier |
HTTP Code | Description | Body |
200 | Ok | Empty body |
400 | Error/s | object ErrorResponse |
PRODUCT OPTIONS
Get product option categories
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
HTTP Code | Description | Body |
200 | Ok | array ProductOptionsCategory |
400 | Error/s | object ErrorResponse |
Post product options category
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
body | body |
HTTP Code | Description | Body |
201 | Created | object ProductOptionsCategory |
400 | Error/s | object ErrorResponse |
Get product options category
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
productOptionCategoryId | integer | path | Product Option Category identifier |
HTTP Code | Description | Body |
200 | Ok | object ProductOptionsCategory |
400 | Error/s | object ErrorResponse |
Patch product options category
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
productOptionCategoryId | integer | path | Product Option Category identifier |
body | body |
HTTP Code | Description | Body |
200 | Ok | object ProductOptionsCategory |
400 | Error/s | object ErrorResponse |
Delete product options category
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
productOptionCategoryId | integer | path | Product Option Category identifier |
HTTP Code | Description | Body |
200 | Ok | Empty body |
400 | Error/s | object ErrorResponse |
Delete product option
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
productOptionCategoryId | integer | path | Product Option Category identifier |
productOptionId | integer | path | Product Option identifier |
HTTP Code | Description | Body |
200 | Ok | Empty body |
400 | Error/s | object ErrorResponse |
MENUS
Post menus
body | body |
HTTP Code | Description | Body |
400 | Error/s | object ErrorResponse |
201 | Created | object PosMenu |
Patch menu
body | body |
HTTP Code | Description | Body |
400 | Error/s | object ErrorResponse |
200 | Ok | object PosMenu |
Get menu
type
- menu: Typical restaurant menu with pizzas or wines for example. This kind of menu doesn't have price, and are their products who has the price.
- setmenu: This menu has price and the consumer has to select a required number of products for each section. Some products can modify the menu final price.
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
menuId | integer | path | Menu identifier |
HTTP Code | Description | Body |
400 | Error/s | object ErrorResponse |
200 | Ok | object PosMenu |
Delete menu
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
menuId | integer | path | Menu identifier |
HTTP Code | Description | Body |
200 | Ok | Empty body |
400 | Error/s | object ErrorResponse |
Get menus
To get all menu information you can use getSellingPointMenu
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
HTTP Code | Description | Body |
200 | Ok | array Partial Menu |
400 | Error/s | object ErrorResponse |
ORDERS & RESERVATIONS
Get order
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
orderId | integer | path | Order identifier |
HTTP Code | Description | Body |
200 | Ok | object Order |
400 | Error/s | object ErrorResponse |
Get order actions (token)
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
orderId | integer | path | Order identifier |
delayMinutes ( optional ) | integer | query | Request order options using delay minutes |
HTTP Code | Description | Body |
200 | Ok | array OrderAction |
400 | Error/s | object ErrorResponse |
Change order status (using order action token)
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
orderId | integer | path | Order identifier |
token | string | formData | Order action token |
cancellationComment ( optional ) | string | formData | Required for type CANCEL actions |
HTTP Code | Description | Body |
200 | Ok | object Order |
400 | Error/s | object ErrorResponse |
Change order status (using order status type code)
Accepted values for orderStatusTypeCode
- accepted
- preparation
- ready
- delivering: Only allowed for delivery orders delivered by self drivers
- delivered: Only allowed for delivery orders delivered by self drivers
- finished
- cancelled_by_sp: In that case parameter "cancellationReason" is required
NewOrderStatus | body | Change order status using order status type |
HTTP Code | Description | Body |
200 | Ok | object Order |
Get orders
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
startDate ( optional ) | string | query | Start date to filter orders. Example: 2017-10-10 |
endDate ( optional ) | string | query | End date to filter orders. Example: 2017-10-10 |
orderType ( optional ) | string | query | Used to filter by order type code. More info in 'Understanding order types' section. |
globalStatusCode ( optional ) | string | query | Used to filter by order global status code |
HTTP Code | Description | Body |
200 | Ok | array Order |
400 | Error/s | object ErrorResponse |
Get active orders
Please, do not consume this service under a polling strategy (calling every X seconds or minutes), check the NOTIFICATIONS REFERENCE and you will see options to be notified when there is a new order or a new order status
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
HTTP Code | Description | Body |
200 | Ok | array Order |
400 | Error/s | object ErrorResponse |
CONSUMERS
Get consumers
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
loadAccount ( optional ) | boolean | query | Used to get consumer legal account data |
HTTP Code | Description | Body |
200 | Ok | array Consumer |
400 | Error/s | object ErrorResponse |
Get consumer orders
x-api-server-access-token | string | header | Authorization token |
x-api-user-access-token | string | header | Authentication token |
sellingPointId | integer | path | Selling point identifier |
consumerId | integer | path | Consumer identifier |
HTTP Code | Description | Body |
200 | Ok | array Order |
400 | Error/s | object ErrorResponse |
NOTIFICATIONS REFERENCE
Be careful, we'll process the response, reading ONLY the HTTP STATUS CODE of your server's response, and understanding any status code different than 2XX as an error.
You can set your webhook endpoint in your developer panel.
In your app, you need to implement a websocket client and listen the notifications following the instructions in this test tool
You can enable websocket notifications in your developer panel.
Notification Title | Notification Event Code | Model of the payload | Expected OK response |
---|---|---|---|
Order created | new_order | object PosNewOrderNotification | 200 - 299 HTTP Status |
Order status changed | order_status_changed | object PosNewOrderStatusNotification | 200 - 299 HTTP Status |
MODELS REFERENCE
We show the definition of all the models used in the previous API services and notifications:PosNewOrderStatusNotification
Despite this you can find the definition in other models in this document.
MODEL EXAMPLES
Example
{ "event": "order_status_changed", "data": { "id": 4912, "totalAmount": 29.9, "baseAmount": 27.18, "vatAmount": 2.72, "executionTimeLabel": "11/10 at 13:10h", "executionTime": "2017-10-11T13:10:00+0000", "comment": "Thank you", "cancellationComment": "", "consumer": { "id": 1003, "email": "john@example.com", "name": "John", "lastname": "Doe", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "phone": "+34600000000", "posClientId": "CCCC-CCCC-CCCC", "marketClientId": "MMMM-MMMM-MMMM", "notificationsChannel": "549d70d0e0851200d11229c16f8d38a8b" }, "status": { "code": "waiting_sp_validation", "name": "Waiting selling point validation", "color": "#f7981d", "isFinalStatus": false, "globalStatusCode": "processing" }, "type": "delivery", "sellingPoint": { "id": 3442, "name": "My restaurant", "address": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "phone": "+34600000000", "email": "myrestaurant@example.com", "logo": "http://mycdn.com/selling-point-logo.jpeg", "mainImage": "http://mycdn.com/selling-point-main-image.jpeg", "listImage": "http://mycdn.com/selling-point-list-image.jpeg", "mainImageLarge": "https://content.sinqro.com/selling-point-main-image-large.png", "listImageLarge": "https://content.sinqro.com/selling-point-list-image-large.png", "urlKey": "restaurant-name-city", "type": "Italian", "timezone": "Europe/Madrid" }, "payments": [ { "id": 5922, "amount": 29.9, "paymentMethodName": "Credit card", "prepaid": true, "methodCode": "CREDIT_CARD", "status": { "code": "DONE", "name": "Finalizado", "color": "#5AAC44", "callToAction": null } } ], "orderLines": [ { "totalAmount": 29.9, "unitPrice": 14.95, "baseAmount": 27.78, "vatAmount": 2.72, "vatValue": 10.0, "quantity": 2, "comment": "Order line comment", "label": "Pizza margherita", "type": "PRODUCT", "product": { "id": 1221, "externalId": "external_reference" }, "childrenOrderLines": [] }, { "totalAmount": 0.0, "unitPrice": 0, "quantity": 1, "comment": "", "label": "Shipping costs", "type": "DELIVERY", "distance": 1.13, "childrenOrderLines": [] } ], "deliveryAmount": 1.0, "deliveryAddress": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "deliveries": [ { "id": 1003, "deliveryAccountName": "DeliveryCompanyName", "deliveryAccountPhone": "600000001", "pickupAddress": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "deliveryAddress": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "pickupAgreedAt": "2017-02-09T12:00:00+0000", "pickupConfirmedAt": "2017-02-09T12:00:00+0000", "deliveryAgreedAt": "2017-02-09T12:15:00+0000", "deliveryConfirmedAt": "2017-02-09T12:15:00+0000", "deliveryInstructions": null, "linearDistance": "1.56", "realDistance": "1.97", "estimatedDeliveryDuration": "15", "forSenderInstructions": null, "trackingUrl": "https://tracking.sinqro.com/es-es/delivery?t=46e1f49e944a73081211442162fbee96b7d2f306", "status": { "code": "PICKING", "name": "Picking", "color": "blue", "isFinalStatus": false }, "destinationContactEmail": "jane@example.com", "destinationContactName": "Jane", "destinationContactPhone": "600000000", "route": "c_c{FmniKrBcBnAkA@QCMMg@_BbBoEzEEyD?GCQIKMAKB{DsDiBmBq@_A?EAKCICCtDqFtB}ChCwDPPxCrCj@h@", "driver": { "id": 1003, "email": "john@example.com", "name": "John", "lastname": "Doe", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "phone": "+34600000000", "transport": { "code": "SCOOTER", "name": "Scooter" }, "lastGeolocation": { "latitude": 41.308166, "longitude": 2.019725, "createdAt": "2018-03-015T12:15:00+0000" } }, "isSelfDelivery": false } ], "dinersNumber": 1, "isCancellable": true, "createdAt": "2017-10-11T12:30:00+0000", "preparationTime": "2017-10-11T13:00:00+0000", "isAsap": false, "market": { "name": "My Restaurant", "darkLogo": "http://mycdn.com/darkLogo.jpeg", "lightLogo": "http://mycdn.com/lightLogo.jpeg", "horizontalLogo": "http://mycdn.com/horizontalLogo.jpeg", "squareLogo": "http://mycdn.com/squareLogo.jpeg" }, "posOrderId": "XXXX-XXXX-XXXX", "marketOrderId": "ZZZZ-ZZZZ-ZZZZ", "marketOrderCode": "XYZ" }, "config": { "config_param_1": "config_param_1_value", "config_param_2": "config_param_2_value" }, "sellingPointId": 3442 }
Account
MODEL ATTRIBUTES
id | integer (int32) | Account identifier | |
name | string | Account name | |
balanceAmount | number (float) | Account balance amount |
MODEL EXAMPLES
Example
{ "id": "43", "name": "My account", "balanceAmount": 0 }
Address
MODEL ATTRIBUTES
id | integer (int64) | Address identifier | |
street | string | Address street with number | |
details | string | Extra address information | |
city | string | Address city name | |
province | string | Address province name | |
postalCode | string | Address postal code | |
latitude | number (float) | Address latitude | |
longitude | number (float) | Address longitude | |
googlePlaceId | string | Google place identifier | |
placeName | string | Place name |
MODEL EXAMPLES
Example
{ "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }
Address
MODEL ATTRIBUTES
id | integer (int64) | Address identifier | |
street | string | Address street with number | |
details | string | Extra address information | |
city | string | Address city name | |
province | string | Address province name | |
postalCode | string | Address postal code | |
latitude | number (float) | Address latitude | |
longitude | number (float) | Address longitude | |
googlePlaceId | string | Google place identifier | |
placeName | string | Place name |
MODEL EXAMPLES
Example
{ "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }
Address
MODEL ATTRIBUTES
id | integer (int64) | Address identifier | |
street | string | Address street with number | |
details | string | Extra address information | |
city | string | Address city name | |
province | string | Address province name | |
postalCode | string | Address postal code | |
latitude | number (float) | Address latitude | |
longitude | number (float) | Address longitude | |
googlePlaceId | string | Google place identifier | |
placeName | string | Place name |
MODEL EXAMPLES
Example
{ "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }
Consumer
MODEL ATTRIBUTES
id | integer (int64) | Consumer identifier | |
string | Consumer email | ||
name | string | Consumer name | |
lastname | string | Consumer last name | |
image | string | Consumer profile image url | |
phone | string | In international format. Ex. +34600000000 | |
posClientId | string | POS client identifier | |
marketClientId | string | Market client identifier | |
notificationsChannel | string | Consumer notifications channel token |
MODEL EXAMPLES
Example
{ "id": 1003, "email": "john@example.com", "name": "John", "lastname": "Doe", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "phone": "+34600000000", "posClientId": "CCCC-CCCC-CCCC", "marketClientId": "MMMM-MMMM-MMMM" }
Consumer
MODEL ATTRIBUTES
id | integer (int64) | Consumer identifier | |
string | Consumer email | ||
name | string | Consumer name | |
lastname | string | Consumer last name | |
image | string | Consumer profile image url | |
phone | string | In international format. Ex. +34600000000 | |
account | object Account | Consumer account |
MODEL EXAMPLES
Example
{ "id": 1003, "email": "john@example.com", "name": "John", "lastname": "Doe", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "phone": "+34600000000", "account": { "id": "43", "name": "My account", "balanceAmount": 0 } }
Coupon
MODEL ATTRIBUTES
code | string | Coupon code |
MODEL EXAMPLES
Example
{ "code": "first10" }
Currency
MODEL ATTRIBUTES
isoCode | string | Currency ISO code | |
symbol | string | Currency symbol |
MODEL EXAMPLES
Example
{ "isoCode": "EUR", "symbol": "€" }
Day
MODEL ATTRIBUTES
id | integer (int64) | Day identifier | |
name | string | Day name |
MODEL EXAMPLES
Example
{ "id": 1, "name": "Lunes" }
Day
MODEL ATTRIBUTES
id | integer (int64) | Day identifier | |
name | string | Day name |
MODEL EXAMPLES
Example
{ "id": 1, "name": "Lunes" }
Delivery address
MODEL ATTRIBUTES
id | integer (int64) | Address identifier | |
street | string | Address street with number | |
details | string | Extra address information | |
city | string | Address city name | |
province | string | Address province name | |
postalCode | string | Address postal code | |
latitude | number (float) | Address latitude | |
longitude | number (float) | Address longitude | |
googlePlaceId | string | Google place identifier | |
placeName | string | Place name |
MODEL EXAMPLES
Example
{ "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }
Delivery
MODEL ATTRIBUTES
id | integer (int64) | Delivery identifier | |
deliveryAccountName | string | Delivery company name | |
deliveryAccountPhone | string | Delivery company contact phone | |
pickupAddress | object Address | Delivery pickup address | |
deliveryAddress | object Address | Delivery address | |
pickupAgreedAt | string (date-time) | Pickup agreed time | |
pickupConfirmedAt | string (date-time) | Confirmed pickup time | |
deliveryAgreedAt | string (date-time) | Delivery agreed time | |
deliveryConfirmedAt | string (date-time) | Confirmed delivery time | |
deliveryInstructions | string | Driver instructions | |
linearDistance | number (float) | Linear distance between pickup and delivery points | |
realDistance | number (float) | Real distance between pickup and delivery points | |
estimatedDeliveryDuration | number (float) | Estimated delivery duration in minutes | |
status | object Status | Current delivery status | |
destinationContactEmail | string | Destination contact email | |
destinationContactName | string | Destination contact name | |
destinationContactPhone | string | Destination contact phone number | |
route | string | Polyline describing driver route | |
driver | object Driver | Delivery driver | |
isSelfDelivery | boolean | Return if delivery is done by selling point drivers | |
forSenderInstructions | string | Instructions for sender, for example pay the delivery | |
deliveryTrackingUrl | string | Delivery tracking url |
MODEL EXAMPLES
Example
{ "id": 1003, "deliveryAccountName": "DeliveryCompanyName", "deliveryAccountPhone": "600000001", "pickupAddress": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "deliveryAddress": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "pickupAgreedAt": "2017-02-09T12:00:00+0000", "pickupConfirmedAt": "2017-02-09T12:00:00+0000", "deliveryAgreedAt": "2017-02-09T12:15:00+0000", "deliveryConfirmedAt": "2017-02-09T12:15:00+0000", "deliveryInstructions": null, "linearDistance": "1.56", "realDistance": "1.97", "estimatedDeliveryDuration": "15", "status": { "code": "PICKING", "name": "Picking", "color": "blue", "isFinalStatus": false }, "destinationContactEmail": "jane@example.com", "destinationContactName": "Jane", "destinationContactPhone": "600000000", "route": "c_c{FmniKrBcBnAkA@QCMMg@_BbBoEzEEyD?GCQIKMAKB{DsDiBmBq@_A?EAKCICCtDqFtB}ChCwDPPxCrCj@h@", "driver": { "id": 1003, "email": "john@example.com", "name": "John", "lastname": "Doe", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "phone": "+34600000000", "transport": { "code": "SCOOTER", "name": "Scooter" }, "lastGeolocation": { "latitude": 41.308166, "longitude": 2.019725, "createdAt": "2018-03-015T12:15:00+0000" } }, "isSelfDelivery": false }
Discount
MODEL ATTRIBUTES
id | integer (int64) | Discount identifier |
MODEL EXAMPLES
Example
{ "id": "233" }
Driver
MODEL ATTRIBUTES
id | integer (int64) | Driver identifier | |
string | Driver email | ||
name | string | Driver name | |
lastname | string | Driver last name | |
image | string | Driver image url | |
phone | string | In international format. Ex. +34600000000 | |
transport | object TransportType | ||
lastGeolocation | object Geolocation | Driver last geolocation |
MODEL EXAMPLES
Example
{ "id": 1003, "email": "john@example.com", "name": "John", "lastname": "Doe", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "phone": "+34600000000", "transport": { "code": "SCOOTER", "name": "Scooter" }, "lastGeolocation": { "latitude": 41.308166, "longitude": 2.019725, "createdAt": "2018-03-015T12:15:00+0000" } }
Error
MODEL ATTRIBUTES
code | string | Error code identifier | |
message | string | Error description |
MODEL EXAMPLES
Example
{ "code": "ERROR_CODE_EXAMPLE", "message": "Error message" }
ErrorResponse
MODEL ATTRIBUTES
errors | array Error | Errors | |
code | string | Error code identifier | |
message | string | Error description | |
httpResponseCode | string | HTTP response code |
MODEL EXAMPLES
Example
{ "errors": [ { "code": "ERROR_CODE_EXAMPLE", "message": "Error message" } ], "code": "ERROR_CODE_EXAMPLE", "message": "Error message", "httpResponseCode": "400" }
Geolocation
MODEL ATTRIBUTES
latitude | number (float) | Geolocation latitude | |
longitude | number (float) | Geolocation longitude | |
createdAt | string (date-time) | Geolocation creation time |
MODEL EXAMPLES
Example
{ "latitude": 41.308166, "longitude": 2.019725, "createdAt": "2018-03-015T12:15:00+0000" }
Market
MODEL ATTRIBUTES
name | string | Market name | |
darkLogo | string | Dark logo url | |
lightLogo | string | Light logo url | |
horizontalLogo | string | Horizontal logo url | |
squareLogo | string | Square logo url |
MODEL EXAMPLES
Example
{ "name": "My Restaurant", "darkLogo": "http://mycdn.com/darkLogo.jpeg", "lightLogo": "http://mycdn.com/lightLogo.jpeg", "horizontalLogo": "http://mycdn.com/horizontalLogo.jpeg", "squareLogo": "http://mycdn.com/squareLogo.jpeg" }
Menu
MODEL ATTRIBUTES
id | integer (int64) | Menu identifier | |
name | string | Menu name | |
type | string | Menu type code Possible values menu setmenu |
|
position | integer (int32) | Menu position | |
allowedOrderTypes | array | Menu allowed order types code. More info in 'Understanding order types' section. | |
price | object PriceData | ||
shortDescription | string | Menu description | |
menuSections | array MenuSection | Menu sections information | |
urlKey | string | Encoded name for url | |
schedule | object Schedule | ||
public | boolean | Returns true if the menu is public and can be displayed for consumers | |
menuSelection | object MenuSelection | Last menu selection. Define which products are now available to sold in the menu and in which dates. | |
externalId | string | Custom identifier |
MODEL EXAMPLES
Example
{ "id": 543, "name": "Pizzas", "type": "menu", "position": 1, "allowedOrderTypes": [ "delivery", "collection", "insitu", "inside" ], "price": { "amount": 11.75, "vatValue": 10.0 }, "shortDescription": "Our best pizzas", "menuSections": [ { "id": "298", "name": "Gluten free", "shortDescription": "Gluten free pizzas", "position": 1, "minSelection": 0, "maxSelection": 0, "showProductImages": true, "selectionLabel": "One required", "products": [ { "id": "843", "name": "Neapolitan Pizza", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 11.5, "vatValue": 10.0 }, "public": true, "featured": false, "productVariants": [ { "id": "843", "name": "XXL size", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 14, "vatValue": 10.0 }, "public": true, "featured": false } ] } ] } ], "urlKey": "menu-name", "schedule": { "id": 2113, "ranges": [ { "startTime": "06:00:00", "endTime": "18:00:00", "timezone": "Europe/Madrid", "startDay": { "id": 1, "name": "Lunes" }, "endDay": { "id": 1, "name": "Lunes" } } ], "name": "Delivery schedule" }, "public": true, "menuSelection": { "startDate": "2017-02-12T21:30:00+0000", "endDate": "2017-02-15T21:30:00+0000", "menuSections": [ { "id": "298", "name": "Gluten free", "shortDescription": "Gluten free pizzas", "position": 1, "minSelection": 0, "maxSelection": 0, "showProductImages": true, "selectionLabel": "One required", "selectedProducts": [ { "id": "843", "name": "Neapolitan Pizza", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 11.5, "vatValue": 10.0 }, "public": true, "featured": false, "productVariants": [ { "id": "843", "name": "XXL size", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 14, "vatValue": 10.0 }, "public": true, "featured": false } ] } ] } ] }, "externalId": "external_reference" }
Menu
MODEL ATTRIBUTES
id | integer (int64) | Menu identifier | |
externalId | string | Custom identifier |
MODEL EXAMPLES
Example
{ "id": 543 }
MenuCollectionInputData
Despite this you can find the definition in other models in this document.
MODEL EXAMPLES
Example
[ { "name": "Set Menu name", "externalId": "ext_m1", "type": "setmenu", "position": 1, "public": true, "allowedOrderTypes": [ "delivery", "collection", "insitu" ], "availableFrom": "2019-01-01T00:00:00+0000", "availableTo": "2019-07-01T00:00:00+0000", "price": { "amount": 16.9, "vatValue": 10.0 }, "shortDescription": "Set menu description", "menuSections": [ { "externalId": "ext_ms_1", "name": "First set menu section name", "shortDescription": "First set menu section description", "position": 1, "minSelection": 1, "maxSelection": 1, "productsIds": [ 34332, 34333, 34334, 34335 ] }, { "externalId": "ext_ms_1", "name": "Second set menu section name", "shortDescription": "Second set menu section description", "position": 1, "minSelection": 1, "maxSelection": 1, "productsIds": [ 39371, 39372, 39373, 39374 ] } ], "scheduleId": null }, { "name": "Menu name", "externalId": "ext_m2", "type": "menu", "position": 2, "public": true, "allowedOrderTypes": [ "delivery", "collection", "insitu" ], "shortDescription": "Menu description", "menuSections": [ { "externalId": "ext_ms_3", "name": "First menu section name", "shortDescription": "First menu section description", "position": 1, "productsIds": [ 12391, 12392, 12393, 12394 ] }, { "externalId": "ext_ms_4", "name": "Second menu section name", "shortDescription": "Second menu section description", "position": 2, "productsIds": [ 99211, 99212, 99213, 99214 ] } ] } ]
MenuCollectionRawInputData
Despite this you can find the definition in other models in this document.
MODEL EXAMPLES
Example
{ "autoSelection": true, "menus": [ { "name": "Our menu", "type": "menu", "externalId": "XXX", "public": true, "allowedOrderTypes": [ "delivery", "collection", "insitu", "inside" ], "schedule": { "name": "Our menu schedule", "scheduleRanges": [ { "startDay": 1, "endDay": 1, "startTime": "07:00", "endTime": "10:30" }, { "startDay": 2, "endDay": 2, "startTime": "07:00", "endTime": "10:30" }, { "startDay": 3, "endDay": 3, "startTime": "07:00", "endTime": "10:30" }, { "startDay": 4, "endDay": 4, "startTime": "07:00", "endTime": "10:30" }, { "startDay": 5, "endDay": 5, "startTime": "07:00", "endTime": "10:30" }, { "startDay": 6, "endDay": 6, "startTime": "10:00", "endTime": "16:30" }, { "startDay": 6, "endDay": 6, "startTime": "20:00", "endTime": "23:59" }, { "startDay": 7, "endDay": 7, "startTime": "13:00", "endTime": "23:59" } ] }, "menuSections": [ { "externalId": "12-345", "name": "Maldito Tacos", "position": 11, "products": [ { "name": "MEADLE EAST GREEN", "externalId": "101-113-6-5", "price": { "amount": 10, "amountA": null, "amountB": null, "amountC": null, "amountD": null, "vatValue": 10 }, "public": true, "featured": false, "isAvailable": true, "addProductOptionsToVariants": false, "productVariants": [], "tags": [], "image": "https://xxxxx.com/sfsdf.png", "productOptionsCategories": [ { "externalId": null, "name": "Extras", "minSelection": 0, "maxSelection": 100, "maxSameOptionSelection": 100, "productOptions": [ { "externalId": "102-114--", "name": "EXTRA PAN", "price": { "amount": 1, "amountA": null, "amountB": null, "amountC": null, "amountD": null, "vatValue": 10 } }, { "externalId": "103-115--", "name": "EXTRA QUESO AZUL", "price": { "amount": 1, "amountA": null, "amountB": null, "amountC": null, "amountD": null, "vatValue": 10 } }, { "externalId": "104-116--", "name": "EXTRA QUESO FETA", "price": { "amount": 1, "amountA": null, "amountB": null, "amountC": null, "amountD": null, "vatValue": 10 } }, { "externalId": "105-117--", "name": "EXTRA TOSTADAS CEREALES", "price": { "amount": 1, "amountA": null, "amountB": null, "amountC": null, "amountD": null, "vatValue": 10 } }, { "externalId": "106-118--", "name": "EXTRA TOTOPOS", "price": { "amount": 1, "amountA": null, "amountB": null, "amountC": null, "amountD": null, "vatValue": 10 } }, { "externalId": "107-119--", "name": "EXTRA PESTO WHEATGRASS", "price": { "amount": 1, "amountA": null, "amountB": null, "amountC": null, "amountD": null, "vatValue": 10 } } ] } ] } ] } ] } ] }
MenuInputData
Despite this you can find the definition in other models in this document.
MODEL EXAMPLES
Example
{ "id": 77261, "name": "New menu name", "externalId": "new_set_menu_external_id", "type": "setmenu", "position": 3, "public": true, "allowedOrderTypes": [ "delivery", "collection" ], "availableFrom": "2017-02-01T00:00:00+0000", "availableTo": "2017-02-12T00:00:00+0000", "price": { "amount": 12.75, "vatValue": 10.0 }, "shortDescription": "New set menu description", "menuSections": [ { "id": 223991, "externalId": "new_menu_section_external_id", "name": "New menu section name", "shortDescription": "New menu section description", "position": 1, "minSelection": 1, "maxSelection": 1, "productsIds": [ 321212, 321213, 321214 ] }, { "id": 223992 }, { "externalId": "new_menu_section_created_external_id", "name": "New menu section created name", "shortDescription": "New menu section created description", "position": 2, "minSelection": 1, "maxSelection": 1, "productsIds": [ 55321, 55322, 55323 ] } ] }
MenuSection
MODEL ATTRIBUTES
id | integer (int64) | Menu section identifier | |
externalId | string | Custom identifier | |
name | string | Menu section name | |
shortDescription | string | Menu section short description. Used in checkout. | |
position | integer (int32) | Menu section position | |
minSelection | integer (int32) | Required minimum of products selected by consumer. Only apply to setmenu menus | |
maxSelection | integer (int32) | Maximum of products that can be selected by consumer. Only apply to setmenu menus | |
showProductImages | boolean | Indicates if product images has to be shown | |
selectionLabel | string | Text describing the minimum and maximum number of products can be selected by the consumer in this section. Only apply to setmenu menus | |
products | array PartialProduct | Menu section products |
MODEL EXAMPLES
Example
{ "id": "298", "name": "Gluten free", "shortDescription": "Gluten free pizzas", "position": 1, "minSelection": 0, "maxSelection": 0, "showProductImages": true, "selectionLabel": "One required", "products": [ { "id": "843", "name": "Neapolitan Pizza", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 11.5, "vatValue": 10.0 }, "public": true, "featured": false, "productVariants": [ { "id": "843", "name": "XXL size", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 14, "vatValue": 10.0 }, "public": true, "featured": false } ] } ] }
MenuSection
MODEL ATTRIBUTES
id | integer (int64) | Menu section identifier | |
externalId | string | Custom identifier | |
name | string | Menu section name | |
shortDescription | string | Menu section short description. Used in checkout. | |
position | integer (int32) | Menu section position | |
minSelection | integer (int32) | Required minimum of products selected by consumer. Only apply to setmenu menus | |
maxSelection | integer (int32) | Maximum of products that can be selected by consumer. Only apply to setmenu menus | |
showProductImages | boolean | Indicates if product images has to be shown | |
selectionLabel | string | Text describing the minimum and maximum number of products can be selected by the consumer in this section. Only apply to setmenu menus | |
selectedProducts | array PartialProduct | Menu selection section products |
MODEL EXAMPLES
Example
{ "id": "298", "name": "Gluten free", "shortDescription": "Gluten free pizzas", "position": 1, "minSelection": 0, "maxSelection": 0, "showProductImages": true, "selectionLabel": "One required", "selectedProducts": [ { "id": "843", "name": "Neapolitan Pizza", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 11.5, "vatValue": 10.0 }, "public": true, "featured": false, "productVariants": [ { "id": "843", "name": "XXL size", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 14, "vatValue": 10.0 }, "public": true, "featured": false } ] } ] }
MenuSection
MODEL ATTRIBUTES
id | integer (int64) | Menu section identifier | |
externalId | string | Custom identifier | |
name | string | Menu section name |
MODEL EXAMPLES
Example
{ "id": "298", "name": "Gluten free" }
MenuSelection
MODEL ATTRIBUTES
startDate | string (date-time) | Menu selection available from time | |
endDate | string (date-time) | Menu selection expiration time. If this value is null, menu selection doesn't expires | |
menuSections | array MenuSection | Menu sections included in menu selection |
MODEL EXAMPLES
Example
{ "startDate": "2017-02-12T21:30:00+0000", "endDate": "2017-02-15T21:30:00+0000", "menuSections": [ { "id": "298", "name": "Gluten free", "shortDescription": "Gluten free pizzas", "position": 1, "minSelection": 0, "maxSelection": 0, "showProductImages": true, "selectionLabel": "One required", "selectedProducts": [ { "id": "843", "name": "Neapolitan Pizza", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 11.5, "vatValue": 10.0 }, "public": true, "featured": false, "productVariants": [ { "id": "843", "name": "XXL size", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 14, "vatValue": 10.0 }, "public": true, "featured": false } ] } ] } ] }
NewOrderStatus
Despite this you can find the definition in other models in this document.
MODEL EXAMPLES
Example
{ "orderStatusTypeCode": "accepted", "cancellationReason": "", "delayMinutes": 10 }
Order
MODEL ATTRIBUTES
id | integer (int64) | Order identifier | |
totalAmount | number (float) | Total order amount VAT included | |
executionTimeLabel | string | Short text representing order execution time | |
executionTime | string | Order execution time | |
comment | string | Consumer order comment | |
cancellationComment | string | Only if order is cancelled | |
consumer | object Consumer | ||
status | object OrderStatus | Current order status | |
type | string | Order type code. More info in 'Understanding order types' section. Possible values delivery collection insitu reservation inside |
|
sellingPoint | object SellingPoint | Selling point data | |
payments | array Payment | Order payments | |
orderLines | array OrderLine | Order items | |
deliveryAmount | number (float) | Delivery amount. Only for delivery orders. | |
deliveryAddress | object Delivery address | Only for delivery orders | |
deliveries | array Delivery | Order deliveries | |
dinersNumber | integer (int64) | Number of diners. Only for reservations, insitu and inside orders. | |
isCancellable | boolean | Returns true if order can be cancelled | |
createdAt | string | Order creation time | |
preparationTime | string | Order preparation time | |
isAsap | boolean | Returns true if the consumer has selected ASAP execution time | |
market | object Market | Order Market | |
posOrderId | string | POS order identifier | |
marketOrderId | string | Market order identifier | |
marketOrderCode | string | Market order code | |
baseAmount | number (float) | Total order amount VAT excluded | |
currency | object Currency | Currency | |
isAcceptable | boolean | Shows if the order can be accepted through Sinqro system or the order needs to be accepted using an external device |
MODEL EXAMPLES
Delivery order example - POS
{ "id": 422429, "orderGroupId": null, "totalAmount": 58.85, "executionTimeLabel": "hoy 24/07 a las 07:05h", "preparationTimeLabel": "hoy 24/07 a las 06:55h", "comment": "This is the order comment!", "cancellationComment": null, "consumer": { "id": 19077, "name": "Client_99041", "lastname": "Lastname_99041", "email": null, "phone": "+34600000000", "image": null, "notificationsChannel": "d4788ad4deca6d07937eac0dbc96aef0", "chatToken": null, "posClientId": null, "marketClientId": null }, "status": { "code": "waiting_sp_validation", "name": "Esperando validación del negocio", "color": "#f7981d", "isFinalStatus": false, "globalStatusCode": "processing" }, "type": "delivery", "sellingPoint": { "id": 3961, "name": "SuperPizza", "address": { "id": 16187, "street": "Carrer de la Tecnologia, 17", "details": "", "city": "Viladecans", "province": "Barcelona", "postalCode": "08840", "latitude": 41.31372, "longitude": 2.031222, "googlePlaceId": "ChIJRQPl5lmcpBIRXpga-ZW5xvY", "placeName": "Carrer de la Tecnologia, 17, 08840 Viladecans, Barcelona, España", "autoGeolocated": true }, "phone": "+34900000000", "email": "superpizza@example.com", "logo": "https://content.sinqro.com/e4cd836538_f79efe5783_82291551976531iconImagesqd2mt.png", "mainImage": "https://content.sinqro.com/d770d57632_4e01533575_85091551975570baked-cheese-cherry-tomato-1552635.png", "mainImageLarge": "https://content.sinqro.com/1551975570_bab77d7d5bbcec5e64cd3c1ac22c56ee.png", "listImage": "https://content.sinqro.com/d770d57632_4e01533575_85091551975570baked-cheese-cherry-tomato-1552635.png", "listImageLarge": "https://content.sinqro.com/1551975570_bab77d7d5bbcec5e64cd3c1ac22c56ee.png", "type": "Pizzería", "urlKey": "superpizza-viladecans", "timezone": "Europe/Madrid" }, "payments": [ { "id": 55066, "amount": 58.85, "paymentMethodName": "Efectivo", "prepaid": false, "methodCode": "CASH", "status": { "code": "CREATED", "name": "Iniciado", "color": "#000000", "isFinalStatus": false } } ], "orderLines": [ { "type": "PRODUCT", "totalAmount": 11.5, "unitPrice": 11.5, "quantity": 1, "label": "Pizza de la huerta", "comment": "Comment 1", "childrenOrderLines": [ { "type": "PRODUCT_OPTION", "totalAmount": 0.5, "unitPrice": 0.5, "quantity": 1, "label": "Cebolla", "comment": null, "childrenOrderLines": [], "baseAmount": 0.45, "vatAmount": 0.05, "vatValue": 10, "productOption": { "id": 234820, "externalId": null } } ], "baseAmount": 10.45, "vatAmount": 1.05, "vatValue": 10, "product": { "id": 109838, "externalId": null } }, { "type": "PRODUCT", "totalAmount": 41.85, "unitPrice": 13.95, "quantity": 3, "label": "Pizza 4 estaciones", "comment": null, "childrenOrderLines": [ { "type": "PRODUCT_OPTION", "totalAmount": 1.0, "unitPrice": 1.0, "quantity": 1, "label": "Champiñones", "comment": null, "childrenOrderLines": [], "baseAmount": 0.91, "vatAmount": 0.09, "vatValue": 10, "productOption": { "id": 234818, "externalId": null } } ], "baseAmount": 38.05, "vatAmount": 3.8, "vatValue": 10, "product": { "id": 109839, "externalId": null } }, { "type": "PRODUCT", "totalAmount": 4.5, "unitPrice": 1.5, "quantity": 3, "label": "Agua 0.5L", "comment": null, "childrenOrderLines": [], "baseAmount": 4.09, "vatAmount": 0.41, "vatValue": 10, "product": { "id": 109841, "externalId": null } }, { "type": "DELIVERY", "totalAmount": 1.0, "unitPrice": 1.0, "quantity": 1, "label": "Delivery cost", "comment": null, "childrenOrderLines": [], "baseAmount": 0.83, "vatAmount": 0.17, "vatValue": 21, "distance": 0.0 } ], "isCancellable": true, "isAcceptable": true, "baseAmount": 53.42, "vatAmount": 5.43, "currency": { "isoCode": "EUR", "symbol": "€", "displayPattern": "{{ amount }}€" }, "market": { "id": 554, "name": "SuperMarketplace", "darkLogo": null, "lightLogo": null, "horizontalLogo": null, "squareLogo": null }, "createdAt": "2020-07-24T04:25:53+0000", "preparationTime": "2020-07-24T04:55:53+0000", "isAsap": false, "posOrderId": null, "marketOrderId": "99041", "marketOrderCode": "VLV3CW", "executionTime": "2020-07-24T05:05:53+0000", "deliveryAmount": 1.0, "deliveryAddress": { "id": 16343, "street": "Carrer de la Tecnologia, 17", "details": null, "city": "Viladecans", "province": "Barcelona", "postalCode": "08840", "latitude": 41.31372, "longitude": 2.031222, "googlePlaceId": "ChIJRQPl5lmcpBIRXpga-ZW5xvY", "placeName": "Carrer de la Tecnologia, 17, 08840 Viladecans, Barcelona, España", "autoGeolocated": true }, "deliveries": [ { "id": 285638, "status": { "code": "WAITING_SELLING_POINT_ACCEPTANCE", "name": "Esperando aceptación punto de venta", "color": "#f7981d", "isFinalStatus": false }, "driver": null, "deliveryAccountName": null, "deliveryAccountPhone": null, "pickupAddress": { "id": 16187, "street": "Carrer de la Tecnologia, 17", "details": "", "city": "Viladecans", "province": "Barcelona", "postalCode": "08840", "latitude": 41.31372, "longitude": 2.031222, "googlePlaceId": "ChIJRQPl5lmcpBIRXpga-ZW5xvY", "placeName": "Carrer de la Tecnologia, 17, 08840 Viladecans, Barcelona, España", "autoGeolocated": true }, "pickupAgreedAt": "2020-07-24T04:55:53+0000", "pickupConfirmedAt": "2020-07-24T04:55:53+0000", "deliveryAddress": { "id": 16343, "street": "Carrer de la Tecnologia, 17", "details": null, "city": "Viladecans", "province": "Barcelona", "postalCode": "08840", "latitude": 41.31372, "longitude": 2.031222, "googlePlaceId": "ChIJRQPl5lmcpBIRXpga-ZW5xvY", "placeName": "Carrer de la Tecnologia, 17, 08840 Viladecans, Barcelona, España", "autoGeolocated": true }, "deliveryAgreedAt": "2020-07-24T05:05:53+0000", "deliveryConfirmedAt": "2020-07-24T05:05:53+0000", "deliveryInstructions": null, "forSenderInstructions": null, "linearDistance": 0.0, "realDistance": null, "route": null, "estimatedDeliveryDuration": 0, "destinationContactEmail": null, "destinationContactName": "Client_99041 · Lastname_99041", "destinationContactPhone": "600000000", "isSelfDelivery": true, "trackingUrl": "https://tracking.sinqro.com/es-es/delivery?t=023899da0799c34864fe3d8a939f3a58" } ] }
Collection order example - POS
{ "id": 422446, "orderGroupId": null, "totalAmount": 59.9, "executionTimeLabel": "hoy 24/07 a las 06:55h", "preparationTimeLabel": "hoy 24/07 a las 06:55h", "comment": "This is the order comment!", "cancellationComment": null, "consumer": { "id": 19078, "name": "Client_52038", "lastname": "Lastname_52038", "email": null, "phone": "+34600000000", "image": null, "notificationsChannel": "df760cc7f3b59af7f522d89cf95a46ed", "chatToken": null, "posClientId": null, "marketClientId": null }, "status": { "code": "waiting_sp_validation", "name": "Esperando validación del negocio", "color": "#f7981d", "isFinalStatus": false, "globalStatusCode": "processing" }, "type": "collection", "sellingPoint": { "id": 3961, "name": "SuperPizza", "address": { "id": 16187, "street": "Carrer de la Tecnologia, 17", "details": "", "city": "Viladecans", "province": "Barcelona", "postalCode": "08840", "latitude": 41.31372, "longitude": 2.031222, "googlePlaceId": "ChIJRQPl5lmcpBIRXpga-ZW5xvY", "placeName": "Carrer de la Tecnologia, 17, 08840 Viladecans, Barcelona, España", "autoGeolocated": true }, "phone": "+34900000000", "email": "superpizza@example.com", "logo": "https://content.sinqro.com/e4cd836538_f79efe5783_82291551976531iconImagesqd2mt.png", "mainImage": "https://content.sinqro.com/d770d57632_4e01533575_85091551975570baked-cheese-cherry-tomato-1552635.png", "mainImageLarge": "https://content.sinqro.com/1551975570_bab77d7d5bbcec5e64cd3c1ac22c56ee.png", "listImage": "https://content.sinqro.com/d770d57632_4e01533575_85091551975570baked-cheese-cherry-tomato-1552635.png", "listImageLarge": "https://content.sinqro.com/1551975570_bab77d7d5bbcec5e64cd3c1ac22c56ee.png", "type": "Pizzería", "urlKey": "superpizza-viladecans", "timezone": "Europe/Madrid" }, "payments": [ { "id": 55067, "amount": 59.9, "paymentMethodName": "Efectivo", "prepaid": false, "methodCode": "CASH", "status": { "code": "DONE", "name": "Finalizado", "color": "#5aac44", "isFinalStatus": false } } ], "orderLines": [ { "type": "PRODUCT", "totalAmount": 25.0, "unitPrice": 12.5, "quantity": 2, "label": "Pizza de la huerta", "comment": "Comment 1", "childrenOrderLines": [ { "type": "PRODUCT_OPTION", "totalAmount": 1.5, "unitPrice": 1.5, "quantity": 1, "label": "Jamón Serrano", "comment": null, "childrenOrderLines": [], "baseAmount": 1.36, "vatAmount": 0.14, "vatValue": 10, "productOption": { "id": 234817, "externalId": null } } ], "baseAmount": 22.73, "vatAmount": 2.27, "vatValue": 10, "product": { "id": 109838, "externalId": null } }, { "type": "PRODUCT", "totalAmount": 28.9, "unitPrice": 14.45, "quantity": 2, "label": "Pizza 4 estaciones", "comment": "Comment 2", "childrenOrderLines": [ { "type": "PRODUCT_OPTION", "totalAmount": 1.5, "unitPrice": 1.5, "quantity": 1, "label": "Jamón Serrano", "comment": null, "childrenOrderLines": [], "baseAmount": 1.36, "vatAmount": 0.14, "vatValue": 10, "productOption": { "id": 234817, "externalId": null } } ], "baseAmount": 26.27, "vatAmount": 2.63, "vatValue": 10, "product": { "id": 109839, "externalId": null } }, { "type": "PRODUCT", "totalAmount": 6.0, "unitPrice": 2.0, "quantity": 3, "label": "Refresco limón", "comment": null, "childrenOrderLines": [], "baseAmount": 5.45, "vatAmount": 0.55, "vatValue": 10, "product": { "id": 109843, "externalId": null } } ], "isCancellable": true, "isAcceptable": true, "baseAmount": 54.45, "vatAmount": 5.45, "currency": { "isoCode": "EUR", "symbol": "€", "displayPattern": "{{ amount }}€" }, "market": { "id": 554, "name": "SuperMarketplace", "darkLogo": null, "lightLogo": null, "horizontalLogo": null, "squareLogo": null }, "createdAt": "2020-07-24T04:25:55+0000", "preparationTime": "2020-07-24T04:55:55+0000", "isAsap": false, "posOrderId": null, "marketOrderId": "52038", "marketOrderCode": "KDL9BH", "executionTime": "2020-07-24T04:55:55+0000" }
Reservation example - POS
{ "id": 422480, "orderGroupId": null, "totalAmount": 0.0, "executionTimeLabel": "hoy 24/07 a las 06:56h", "preparationTimeLabel": "hoy 24/07 a las 06:56h", "comment": "This is the order comment!", "cancellationComment": null, "consumer": { "id": 19080, "name": "Client_80706", "lastname": "Lastname_80706", "email": null, "phone": "+34600000000", "image": null, "notificationsChannel": "8d0b561206d10c355de0de1a73689615", "chatToken": null, "posClientId": null, "marketClientId": null }, "status": { "code": "waiting_sp_validation", "name": "Esperando validación del negocio", "color": "#f7981d", "isFinalStatus": false, "globalStatusCode": "processing" }, "type": "reservation", "sellingPoint": { "id": 3961, "name": "SuperPizza", "address": { "id": 16187, "street": "Carrer de la Tecnologia, 17", "details": "", "city": "Viladecans", "province": "Barcelona", "postalCode": "08840", "latitude": 41.31372, "longitude": 2.031222, "googlePlaceId": "ChIJRQPl5lmcpBIRXpga-ZW5xvY", "placeName": "Carrer de la Tecnologia, 17, 08840 Viladecans, Barcelona, España", "autoGeolocated": true }, "phone": "+34900000000", "email": "superpizza@example.com", "logo": "https://content.sinqro.com/e4cd836538_f79efe5783_82291551976531iconImagesqd2mt.png", "mainImage": "https://content.sinqro.com/d770d57632_4e01533575_85091551975570baked-cheese-cherry-tomato-1552635.png", "mainImageLarge": "https://content.sinqro.com/1551975570_bab77d7d5bbcec5e64cd3c1ac22c56ee.png", "listImage": "https://content.sinqro.com/d770d57632_4e01533575_85091551975570baked-cheese-cherry-tomato-1552635.png", "listImageLarge": "https://content.sinqro.com/1551975570_bab77d7d5bbcec5e64cd3c1ac22c56ee.png", "type": "Pizzería", "urlKey": "superpizza-viladecans", "timezone": "Europe/Madrid" }, "payments": [], "orderLines": [], "isCancellable": true, "isAcceptable": true, "baseAmount": 0.0, "vatAmount": 0.0, "currency": { "isoCode": "EUR", "symbol": "€", "displayPattern": "{{ amount }}€" }, "market": { "id": 554, "name": "SuperMarketplace", "darkLogo": null, "lightLogo": null, "horizontalLogo": null, "squareLogo": null }, "createdAt": "2020-07-24T04:26:03+0000", "preparationTime": "2020-07-24T04:56:02+0000", "isAsap": false, "posOrderId": null, "marketOrderId": "80706", "marketOrderCode": "76LQHT", "executionTime": "2020-07-24T04:56:02+0000", "dinersNumber": 4 }
Insitu order (pre-order with reservation) example - POS
{ "id": 422463, "orderGroupId": null, "totalAmount": 53.95, "executionTimeLabel": "hoy 24/07 a las 06:55h", "preparationTimeLabel": "hoy 24/07 a las 06:55h", "comment": "This is the order comment!", "cancellationComment": null, "consumer": { "id": 19079, "name": "Client_95274", "lastname": "Lastname_95274", "email": null, "phone": "+34600000000", "image": null, "notificationsChannel": "c88edfea49667e1bb7cc9a72efc445b9", "chatToken": null, "posClientId": null, "marketClientId": null }, "status": { "code": "waiting_sp_validation", "name": "Esperando validación del negocio", "color": "#f7981d", "isFinalStatus": false, "globalStatusCode": "processing" }, "type": "insitu", "sellingPoint": { "id": 3961, "name": "SuperPizza", "address": { "id": 16187, "street": "Carrer de la Tecnologia, 17", "details": "", "city": "Viladecans", "province": "Barcelona", "postalCode": "08840", "latitude": 41.31372, "longitude": 2.031222, "googlePlaceId": "ChIJRQPl5lmcpBIRXpga-ZW5xvY", "placeName": "Carrer de la Tecnologia, 17, 08840 Viladecans, Barcelona, España", "autoGeolocated": true }, "phone": "+34900000000", "email": "superpizza@example.com", "logo": "https://content.sinqro.com/e4cd836538_f79efe5783_82291551976531iconImagesqd2mt.png", "mainImage": "https://content.sinqro.com/d770d57632_4e01533575_85091551975570baked-cheese-cherry-tomato-1552635.png", "mainImageLarge": "https://content.sinqro.com/1551975570_bab77d7d5bbcec5e64cd3c1ac22c56ee.png", "listImage": "https://content.sinqro.com/d770d57632_4e01533575_85091551975570baked-cheese-cherry-tomato-1552635.png", "listImageLarge": "https://content.sinqro.com/1551975570_bab77d7d5bbcec5e64cd3c1ac22c56ee.png", "type": "Pizzería", "urlKey": "superpizza-viladecans", "timezone": "Europe/Madrid" }, "payments": [ { "id": 55068, "amount": 53.95, "paymentMethodName": "Efectivo", "prepaid": false, "methodCode": "CASH", "status": { "code": "DONE", "name": "Finalizado", "color": "#5aac44", "isFinalStatus": false } } ], "orderLines": [ { "type": "PRODUCT", "totalAmount": 36.0, "unitPrice": 12.0, "quantity": 3, "label": "Pizza de la huerta", "comment": null, "childrenOrderLines": [ { "type": "PRODUCT_OPTION", "totalAmount": 1.0, "unitPrice": 1.0, "quantity": 1, "label": "Bacon", "comment": null, "childrenOrderLines": [], "baseAmount": 0.91, "vatAmount": 0.09, "vatValue": 10, "productOption": { "id": 234816, "externalId": null } } ], "baseAmount": 32.73, "vatAmount": 3.27, "vatValue": 10, "product": { "id": 109838, "externalId": null } }, { "type": "PRODUCT", "totalAmount": 13.95, "unitPrice": 13.95, "quantity": 1, "label": "Pizza 4 estaciones", "comment": null, "childrenOrderLines": [ { "type": "PRODUCT_OPTION", "totalAmount": 1.0, "unitPrice": 1.0, "quantity": 1, "label": "Champiñones", "comment": null, "childrenOrderLines": [], "baseAmount": 0.91, "vatAmount": 0.09, "vatValue": 10, "productOption": { "id": 234818, "externalId": null } } ], "baseAmount": 12.68, "vatAmount": 1.27, "vatValue": 10, "product": { "id": 109839, "externalId": null } }, { "type": "PRODUCT", "totalAmount": 4.0, "unitPrice": 2.0, "quantity": 2, "label": "Cerveza 33cl", "comment": null, "childrenOrderLines": [], "baseAmount": 3.64, "vatAmount": 0.36, "vatValue": 10, "product": { "id": 109842, "externalId": null } } ], "isCancellable": true, "isAcceptable": true, "baseAmount": 49.05, "vatAmount": 4.9, "currency": { "isoCode": "EUR", "symbol": "€", "displayPattern": "{{ amount }}€" }, "market": { "id": 554, "name": "SuperMarketplace", "darkLogo": null, "lightLogo": null, "horizontalLogo": null, "squareLogo": null }, "createdAt": "2020-07-24T04:25:57+0000", "preparationTime": "2020-07-24T04:55:57+0000", "isAsap": false, "posOrderId": null, "marketOrderId": "95274", "marketOrderCode": "OGWANU", "executionTime": "2020-07-24T04:55:57+0000", "dinersNumber": 2 }
Inside order (table service) example - POS
{ "id": 422497, "orderGroupId": 8546, "totalAmount": 42.35, "executionTimeLabel": "hoy 24/07 a las 06:56h", "preparationTimeLabel": "hoy 24/07 a las 06:56h", "comment": "This is the order comment!", "cancellationComment": null, "consumer": { "id": 19081, "name": "Client_67736", "lastname": "Lastname_67736", "email": null, "phone": "+34600000000", "image": null, "notificationsChannel": "a8132bb7c96acdbb11e8ac196640a6a3", "chatToken": null, "posClientId": null, "marketClientId": null }, "status": { "code": "waiting_sp_validation", "name": "Esperando validación del negocio", "color": "#f7981d", "isFinalStatus": false, "globalStatusCode": "processing" }, "type": "inside", "sellingPoint": { "id": 3961, "name": "SuperPizza", "address": { "id": 16187, "street": "Carrer de la Tecnologia, 17", "details": "", "city": "Viladecans", "province": "Barcelona", "postalCode": "08840", "latitude": 41.31372, "longitude": 2.031222, "googlePlaceId": "ChIJRQPl5lmcpBIRXpga-ZW5xvY", "placeName": "Carrer de la Tecnologia, 17, 08840 Viladecans, Barcelona, España", "autoGeolocated": true }, "phone": "+34900000000", "email": "superpizza@example.com", "logo": "https://content.sinqro.com/e4cd836538_f79efe5783_82291551976531iconImagesqd2mt.png", "mainImage": "https://content.sinqro.com/d770d57632_4e01533575_85091551975570baked-cheese-cherry-tomato-1552635.png", "mainImageLarge": "https://content.sinqro.com/1551975570_bab77d7d5bbcec5e64cd3c1ac22c56ee.png", "listImage": "https://content.sinqro.com/d770d57632_4e01533575_85091551975570baked-cheese-cherry-tomato-1552635.png", "listImageLarge": "https://content.sinqro.com/1551975570_bab77d7d5bbcec5e64cd3c1ac22c56ee.png", "type": "Pizzería", "urlKey": "superpizza-viladecans", "timezone": "Europe/Madrid" }, "payments": [ { "id": 55069, "amount": 42.35, "paymentMethodName": "Efectivo", "prepaid": false, "methodCode": "CASH", "status": { "code": "DONE", "name": "Finalizado", "color": "#5aac44", "isFinalStatus": false } } ], "orderLines": [ { "type": "PRODUCT", "totalAmount": 12.95, "unitPrice": 12.95, "quantity": 1, "label": "Pizza 4 quesos", "comment": "Comment 1", "childrenOrderLines": [ { "type": "PRODUCT_OPTION", "totalAmount": 1.0, "unitPrice": 1.0, "quantity": 1, "label": "Champiñones", "comment": null, "childrenOrderLines": [], "baseAmount": 0.91, "vatAmount": 0.09, "vatValue": 10, "productOption": { "id": 234818, "externalId": null } } ], "baseAmount": 11.77, "vatAmount": 1.18, "vatValue": 10, "product": { "id": 109837, "externalId": null } }, { "type": "PRODUCT", "totalAmount": 27.9, "unitPrice": 13.95, "quantity": 2, "label": "Pizza 4 estaciones", "comment": null, "childrenOrderLines": [ { "type": "PRODUCT_OPTION", "totalAmount": 1.0, "unitPrice": 1.0, "quantity": 1, "label": "Champiñones", "comment": null, "childrenOrderLines": [], "baseAmount": 0.91, "vatAmount": 0.09, "vatValue": 10, "productOption": { "id": 234818, "externalId": null } } ], "baseAmount": 25.36, "vatAmount": 2.54, "vatValue": 10, "product": { "id": 109839, "externalId": null } }, { "type": "PRODUCT", "totalAmount": 1.5, "unitPrice": 1.5, "quantity": 1, "label": "Agua 0.5L", "comment": "Comment 2", "childrenOrderLines": [], "baseAmount": 1.36, "vatAmount": 0.14, "vatValue": 10, "product": { "id": 109841, "externalId": null } } ], "isCancellable": true, "isAcceptable": true, "baseAmount": 38.49, "vatAmount": 3.86, "currency": { "isoCode": "EUR", "symbol": "€", "displayPattern": "{{ amount }}€" }, "market": { "id": 554, "name": "SuperMarketplace", "darkLogo": null, "lightLogo": null, "horizontalLogo": null, "squareLogo": null }, "createdAt": "2020-07-24T04:26:05+0000", "preparationTime": "2020-07-24T04:56:05+0000", "isAsap": false, "posOrderId": null, "marketOrderId": "67736", "marketOrderCode": "VBGQCX", "executionTime": "2020-07-24T04:56:05+0000", "dinersNumber": 2, "serviceLocation": { "code": "TZ10", "name": "Mesa 10", "serviceZone": { "code": "TZ", "name": "Terraza" } } }
OrderAction
MODEL ATTRIBUTES
token | string | Action identifier | |
callToAction | string | Call to action | |
color | string | HEX color code for the action | |
actionType | string | Order action type Possible values ACCEPT CANCEL |
|
orderType | string | Order type code. More info in 'Understanding order types' section. Possible values delivery collection insitu reservation inside |
|
executionTime | string | Order execution time | |
businessCost | number (float) | Delivery business cost. Only used in delivery orders | |
delayMinutes | number (float) | Delay minutes from original execution time | |
pickupTime | string | Driver pickup time. Only used in delivery orders | |
transportType | string | Transport type name. Only used in delivery orders Possible values Bicicleta Scooter Motocicleta Coche Furgoneta Caminando |
MODEL EXAMPLES
Example
{ "token": "NzY0MHxyZWFkeXwtMXwtMXwtMXwtMQ,,", "callToAction": "Aceptar", "color": "#5aac44", "actionType": "ACCEPT", "orderType": "collection", "executionTime": "2017-10-12T10:10:00+0000", "businessCost": null, "delayMinutes": null, "pickupTime": null, "transportType": null }
OrderLine
MODEL ATTRIBUTES
totalAmount | number (float) | Order line total amount VAT included | |
unitPrice | number (float) | Order line total amount VAT included | |
quantity | integer (int64) | Order line quantity | |
comment | string | Order line comment | |
label | string | Order line label | |
type | string | Type code Possible values PRODUCT MENU PRODUCT_OPTION DISCOUNT DELIVERY CUSTOM POS_ITEM |
|
distance | number (float) | Only used in delivery order lines | |
product | object Product | Only for orderLine type PRODUCT | |
menu | object Menu | Only for orderLine type MENU | |
productOption | object ProductOption | Only for orderLine type PRODUCT_OPTION | |
discount | object Discount | Only for orderLine type DISCOUNT | |
coupon | object Coupon | Only for orderLine type DISCOUNT | |
childrenOrderLines | array SELF | Children order line has same schema as OrderLine | |
baseAmount | number (float) | Total order line amount VAT excluded | |
vatAmount | number (float) | Total order line VAT amount | |
vatValue | number (float) | Applied order line VAT value |
MODEL EXAMPLES
Example
{ "totalAmount": 29.9, "unitPrice": 14.95, "quantity": 2, "comment": "Order line comment", "label": "Pizza margherita", "type": "PRODUCT", "distance": null, "product": { "id": "843" }, "menu": { "id": 543 }, "productOption": { "id": "233" }, "discount": { "id": "233" }, "coupon": { "code": "first10" }, "childrenOrderLines": [ null ] }
OrderStatus
MODEL ATTRIBUTES
code | string | Status identifier code Possible values waiting_sp_validation accepted preparation ready delivering delivered incident cancelled finished reservation_accepted cancelled_by_sp cancelled_by_client cancelled_by_driver cancelled_by_team payment_authorisation_failed |
|
name | string | Status name | |
color | string | HEX color code for the status | |
isFinalStatus | boolean | Return if status is final status and doesn't require interaction | |
globalStatusCode | string | Order global status identifier code |
MODEL EXAMPLES
Example
{ "code": "waiting_sp_validation", "name": "Waiting selling point validation", "color": "#f7981d", "isFinalStatus": false, "globalStatusCode": "processing" }
Partial Menu
MODEL ATTRIBUTES
MODEL EXAMPLES
Example
{ "id": 543, "name": "Pizzas", "type": "menu", "position": 1, "allowedOrderTypes": [ "delivery", "collection", "insitu", "inside" ], "price": null, "public": true, "externalId": "external_reference" }
PartialProduct
MODEL ATTRIBUTES
id | integer (int64) | Product identifier | |
externalId | string | Custom identifier | |
name | string | Product name | |
image | string | Product image url | |
price | object PriceData | ||
public | boolean | Returns true if the product is public and can be displayed for consumers | |
featured | boolean | Returns true if the product is featured | |
productVariants | array PartialProduct | Product variants |
MODEL EXAMPLES
Example
{ "id": "843", "name": "Neapolitan Pizza", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 11.5, "vatValue": 10.0 }, "public": true, "featured": false, "productVariants": [ { "id": "843", "name": "XXL size", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 14, "vatValue": 10.0 }, "public": true, "featured": false } ] }
PartialProduct
MODEL ATTRIBUTES
id | integer (int64) | Product identifier | |
externalId | string | Custom identifier | |
name | string | Product name | |
image | string | Product image url | |
price | object PriceData | ||
public | boolean | Returns true if the product is public and can be displayed for consumers | |
featured | boolean | Returns true if the product is featured |
MODEL EXAMPLES
Example
{ "id": "843", "name": "XXL size", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 14, "vatValue": 10.0 }, "public": true, "featured": false }
PartialProduct
MODEL ATTRIBUTES
id | integer (int64) | Product identifier | |
externalId | string | Custom identifier | |
name | string | Product name | |
image | string | Product image url | |
price | object PriceData | ||
public | boolean | Returns true if the product is public and can be displayed for consumers | |
featured | boolean | Returns true if the product is featured | |
productVariants | array PartialProduct | Product variants |
MODEL EXAMPLES
Example
{ "id": "843", "name": "Neapolitan Pizza", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 11.5, "vatValue": 10.0 }, "public": true, "featured": false, "productVariants": [ { "id": "843", "name": "XXL size", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 14, "vatValue": 10.0 }, "public": true, "featured": false } ] }
PatchServiceZonesData
Despite this you can find the definition in other models in this document.
MODEL EXAMPLES
Example
[ { "code": "BAR", "externalId": 1, "name": "Barra", "serviceLocations": [ { "code": "B1", "externalId": "B1", "maxDiners": 0, "minDiners": 0, "name": "B1", "securityCode": null }, { "code": "B2", "externalId": "B2", "maxDiners": 0, "minDiners": 0, "name": "B2", "securityCode": null }, { "code": "B3", "externalId": "B3", "maxDiners": 0, "minDiners": 0, "name": "B3", "securityCode": null }, { "code": "B4", "externalId": "B4", "maxDiners": 0, "minDiners": 0, "name": "B4", "securityCode": null }, { "code": "B5", "externalId": "B5", "maxDiners": 0, "minDiners": 0, "name": "B5", "securityCode": null }, { "code": "B6", "externalId": "B6", "maxDiners": 0, "minDiners": 0, "name": "B6", "securityCode": null }, { "code": "B7", "externalId": "B7", "maxDiners": 0, "minDiners": 0, "name": "B7", "securityCode": null }, { "code": "B8", "externalId": "B8", "maxDiners": 0, "minDiners": 0, "name": "B8", "securityCode": null }, { "code": "B9", "externalId": "B9", "maxDiners": 0, "minDiners": 0, "name": "B9", "securityCode": null }, { "code": "B10", "externalId": "B10", "maxDiners": 0, "minDiners": 0, "name": "B10", "securityCode": null } ] }, { "code": "TER", "externalId": 2, "name": "Terraza", "serviceLocations": [ { "code": "T1", "externalId": "T1", "maxDiners": 0, "minDiners": 0, "name": "T1", "securityCode": null }, { "code": "T2", "externalId": "T2", "maxDiners": 0, "minDiners": 0, "name": "T2", "securityCode": null }, { "code": "T3", "externalId": "T3", "maxDiners": 0, "minDiners": 0, "name": "T3", "securityCode": null }, { "code": "T4", "externalId": "T4", "maxDiners": 0, "minDiners": 0, "name": "T4", "securityCode": null }, { "code": "T5", "externalId": "T5", "maxDiners": 0, "minDiners": 0, "name": "T5", "securityCode": null }, { "code": "T6", "externalId": "T6", "maxDiners": 0, "minDiners": 0, "name": "T6", "securityCode": null }, { "code": "T7", "externalId": "T7", "maxDiners": 0, "minDiners": 0, "name": "T7", "securityCode": null }, { "code": "T8", "externalId": "T8", "maxDiners": 0, "minDiners": 0, "name": "T8", "securityCode": null } ] }, { "code": "SAL", "externalId": 3, "name": "Salón", "serviceLocations": [ { "code": "S1", "externalId": "S1", "maxDiners": 0, "minDiners": 0, "name": "S1", "securityCode": null }, { "code": "S2", "externalId": "S2", "maxDiners": 0, "minDiners": 0, "name": "S2", "securityCode": null }, { "code": "S3", "externalId": "S3", "maxDiners": 0, "minDiners": 0, "name": "S3", "securityCode": null }, { "code": "S4", "externalId": "S4", "maxDiners": 0, "minDiners": 0, "name": "S4", "securityCode": null }, { "code": "S5", "externalId": "S5", "maxDiners": 0, "minDiners": 0, "name": "S5", "securityCode": null }, { "code": "S6", "externalId": "S6", "maxDiners": 0, "minDiners": 0, "name": "S6", "securityCode": null }, { "code": "S7", "externalId": "S7", "maxDiners": 0, "minDiners": 0, "name": "S7", "securityCode": null }, { "code": "S8", "externalId": "S8", "maxDiners": 0, "minDiners": 0, "name": "S8", "securityCode": null }, { "code": "S9", "externalId": "S9", "maxDiners": 0, "minDiners": 0, "name": "S9", "securityCode": null } ] } ]
Payment
MODEL ATTRIBUTES
id | integer (int64) | Order payment identifier | |
amount | number (float) | Payment amount | |
paymentMethodName | string | Payment method name | |
prepaid | boolean | True if the payment has already been paid | |
methodCode | string | Payment method identifier code | |
status | object PaymentStatus | Payment status |
MODEL EXAMPLES
Example
{ "id": 5922, "amount": 29.9, "paymentMethodName": "Credit card", "prepaid": true, "methodCode": "CREDIT_CARD", "status": { "code": "DONE", "name": "Finalizado", "color": "#5AAC44", "callToAction": null } }
PaymentStatus
MODEL ATTRIBUTES
code | string | Status identifier code Possible values DONE FAILED CANCELLED |
|
name | string | Status name | |
color | string | HEX color code for the status | |
callToAction | string | Call to action if is needed |
MODEL EXAMPLES
Example
{ "code": "DONE", "name": "Finalizado", "color": "#5AAC44", "callToAction": null }
PosMenu
Despite this you can find the definition in other models in this document.
MODEL EXAMPLES
Example
PosMenuCollectionRaw
Despite this you can find the definition in other models in this document.
PosNewOrderNotification
Despite this you can find the definition in other models in this document.
MODEL EXAMPLES
Example
{ "event": "new_order", "data": { "id": 4912, "totalAmount": 29.9, "baseAmount": 27.18, "vatAmount": 2.72, "executionTimeLabel": "11/10 at 13:10h", "executionTime": "2017-10-11T13:10:00+0000", "comment": "Thank you", "cancellationComment": "", "consumer": { "id": 1003, "email": "john@example.com", "name": "John", "lastname": "Doe", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "phone": "+34600000000", "posClientId": "CCCC-CCCC-CCCC", "marketClientId": "MMMM-MMMM-MMMM", "notificationsChannel": "549d70d0e0851200d11229c16f8d38a8b" }, "status": { "code": "waiting_sp_validation", "name": "Waiting selling point validation", "color": "#f7981d", "isFinalStatus": false, "globalStatusCode": "processing" }, "type": "delivery", "sellingPoint": { "id": 3442, "name": "My restaurant", "address": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "phone": "+34600000000", "email": "myrestaurant@example.com", "logo": "http://mycdn.com/selling-point-logo.jpeg", "mainImage": "http://mycdn.com/selling-point-main-image.jpeg", "listImage": "http://mycdn.com/selling-point-list-image.jpeg", "mainImageLarge": "https://content.sinqro.com/selling-point-main-image-large.png", "listImageLarge": "https://content.sinqro.com/selling-point-list-image-large.png", "urlKey": "restaurant-name-city", "type": "Italian", "timezone": "Europe/Madrid" }, "payments": [ { "id": 5922, "amount": 29.9, "paymentMethodName": "Credit card", "prepaid": true, "methodCode": "CREDIT_CARD", "status": { "code": "DONE", "name": "Finalizado", "color": "#5AAC44", "callToAction": null } } ], "orderLines": [ { "totalAmount": 29.9, "unitPrice": 14.95, "baseAmount": 27.78, "vatAmount": 2.72, "vatValue": 10.0, "quantity": 2, "comment": "Order line comment", "label": "Pizza margherita", "type": "PRODUCT", "product": { "id": 1221, "externalId": "external_reference" }, "childrenOrderLines": [] }, { "totalAmount": 0.0, "unitPrice": 0, "quantity": 1, "comment": "", "label": "Shipping costs", "type": "DELIVERY", "distance": 1.13, "childrenOrderLines": [] } ], "deliveryAmount": 1.0, "deliveryAddress": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "deliveries": [ { "id": 1003, "deliveryAccountName": "DeliveryCompanyName", "deliveryAccountPhone": "600000001", "pickupAddress": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "deliveryAddress": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "pickupAgreedAt": "2017-02-09T12:00:00+0000", "pickupConfirmedAt": "2017-02-09T12:00:00+0000", "deliveryAgreedAt": "2017-02-09T12:15:00+0000", "deliveryConfirmedAt": "2017-02-09T12:15:00+0000", "deliveryInstructions": null, "linearDistance": "1.56", "realDistance": "1.97", "estimatedDeliveryDuration": "15", "forSenderInstructions": null, "trackingUrl": "https://tracking.sinqro.com/es-es/delivery?t=46e1f49e944a73081211442162fbee96b7d2f306", "status": { "code": "PICKING", "name": "Picking", "color": "blue", "isFinalStatus": false }, "destinationContactEmail": "jane@example.com", "destinationContactName": "Jane", "destinationContactPhone": "600000000", "route": "c_c{FmniKrBcBnAkA@QCMMg@_BbBoEzEEyD?GCQIKMAKB{DsDiBmBq@_A?EAKCICCtDqFtB}ChCwDPPxCrCj@h@", "driver": { "id": 1003, "email": "john@example.com", "name": "John", "lastname": "Doe", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "phone": "+34600000000", "transport": { "code": "SCOOTER", "name": "Scooter" }, "lastGeolocation": { "latitude": 41.308166, "longitude": 2.019725, "createdAt": "2018-03-015T12:15:00+0000" } }, "isSelfDelivery": false } ], "dinersNumber": 1, "isCancellable": true, "createdAt": "2017-10-11T12:30:00+0000", "preparationTime": "2017-10-11T13:00:00+0000", "isAsap": false, "market": { "name": "My Restaurant", "darkLogo": "http://mycdn.com/darkLogo.jpeg", "lightLogo": "http://mycdn.com/lightLogo.jpeg", "horizontalLogo": "http://mycdn.com/horizontalLogo.jpeg", "squareLogo": "http://mycdn.com/squareLogo.jpeg" }, "posOrderId": "XXXX-XXXX-XXXX", "marketOrderId": "ZZZZ-ZZZZ-ZZZZ", "marketOrderCode": "XYZ" }, "config": { "config_param_1": "config_param_1_value", "config_param_2": "config_param_2_value" }, "sellingPointId": 3442 }
PosPartialProduct
Despite this you can find the definition in other models in this document.
MODEL EXAMPLES
Example
{ "id": 23211, "externalId": null, "name": "First Product Name", "image": null, "price": { "amount": 6.5, "vatValue": 10.0 }, "inMenuPrice": null, "public": false, "featured": false }
PosProduct
Despite this you can find the definition in other models in this document.
MODEL EXAMPLES
Example
PriceData
MODEL ATTRIBUTES
amount | number (float) | Price amount VAT included | |
vatValue | number (float) | Vat value |
MODEL EXAMPLES
Example
{ "amount": 11.75, "vatValue": 10.0 }
PriceData
MODEL ATTRIBUTES
amount | number (float) | Price amount VAT included | |
vatValue | number (float) | Vat value |
MODEL EXAMPLES
Example
{ "amount": 11.75, "vatValue": 10.0 }
PriceData
MODEL ATTRIBUTES
amount | number (float) | Price amount VAT included | |
vatValue | number (float) | Vat value |
MODEL EXAMPLES
Example
{ "amount": 14, "vatValue": 10.0 }
PriceData
MODEL ATTRIBUTES
amount | number (float) | Price amount VAT included | |
vatValue | number (float) | Vat value |
MODEL EXAMPLES
Example
{ "amount": 0.75, "vatValue": 10.0 }
PriceData
MODEL ATTRIBUTES
amount | number (float) | Price amount VAT included | |
vatValue | number (float) | Vat value | |
amountA | number (float) | Price amount for the price list A (VAT included) | |
amountB | number (float) | Price amount for the price list B (VAT included) | |
amountC | number (float) | Price amount for the price list C (VAT included) | |
amountD | number (float) | Price amount for the price list D (VAT included) |
MODEL EXAMPLES
Example
{ "amount": 1.5, "amountA": 1.5, "amountB": 1.5, "amountC": 1.5, "amountD": 1.5, "vatValue": 10.0 }
Product
MODEL ATTRIBUTES
id | integer (int64) | Product identifier | |
externalId | string | Custom identifier | |
name | string | Product name | |
image | string | Product image url | |
price | object PriceData | ||
public | boolean | Returns true if the product is public and can be displayed for consumers | |
featured | boolean | Returns true if the product is featured | |
shortDescription | string | Product short description | |
description | string | Product description | |
parentName | string | Parent product name, used in product variants | |
isAvailable | boolean | Returns true if the product can be purchased | |
tags | array | Array with product tags | |
productOptionsCategories | array ProductOptionsCategory | Product options categories | |
urlKey | string | Encoded name for url | |
productVariants | array Product | Product variants | |
menuSections | array MenuSection | Product variants |
MODEL EXAMPLES
Example
{ "id": "843", "name": "Neapolitan Pizza", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 11.5, "vatValue": 10.0 }, "public": true, "featured": false, "shortDescription": "Tomatoes, cheese, oil, and garlic", "description": "It was our first pizza ...", "parentName": null, "isAvailable": true, "tags": [ null ], "productOptionsCategories": [ { "id": "102", "name": "Our ingredients", "shortDescription": "What do you put on your pizza?", "position": 1, "maxSelection": 10, "minSelection": null, "maxSameOptionSelection": 2, "selectionLabel": "Max. 10", "productOptions": [ { "id": "233", "name": "Cheddar", "shortDescription": "Add cheddar to your pizza", "position": 1, "isAvailable": true, "price": { "amount": 0.75, "vatValue": 10.0 } } ] } ], "urlKey": "product-name", "productVariants": [ { "id": "843", "name": "XXL size", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 14, "vatValue": 10.0 }, "public": true, "featured": false, "shortDescription": "Tomatoes, cheese, oil, and garlic", "description": "It was our first pizza ...", "parentName": null, "isAvailable": true, "tags": [ null ], "productOptionsCategories": [ { "id": "102", "name": "Our ingredients", "shortDescription": "What do you put on your pizza?", "position": 1, "maxSelection": 10, "minSelection": null, "maxSameOptionSelection": 2, "selectionLabel": "Max. 10", "productOptions": [ { "id": "233", "name": "Cheddar", "shortDescription": "Add cheddar to your pizza", "position": 1, "isAvailable": true, "price": { "amount": 0.75, "vatValue": 10.0 } } ] } ], "urlKey": "product-name" } ], "menuSections": [ { "id": "298", "name": "Gluten free" } ] }
Product
MODEL ATTRIBUTES
id | integer (int64) | Product identifier | |
externalId | string | Custom identifier | |
name | string | Product name | |
image | string | Product image url | |
price | object PriceData | ||
public | boolean | Returns true if the product is public and can be displayed for consumers | |
featured | boolean | Returns true if the product is featured | |
shortDescription | string | Product short description | |
description | string | Product description | |
parentName | string | Parent product name, used in product variants | |
isAvailable | boolean | Returns true if the product can be purchased | |
tags | array | Array with product tags | |
productOptionsCategories | array ProductOptionsCategory | Product options categories | |
urlKey | string | Encoded name for url |
MODEL EXAMPLES
Example
{ "id": "843", "name": "XXL size", "image": "https://cdn.sinqro.com/assets/images/placeholder_image.jpg", "price": { "amount": 14, "vatValue": 10.0 }, "public": true, "featured": false, "shortDescription": "Tomatoes, cheese, oil, and garlic", "description": "It was our first pizza ...", "parentName": null, "isAvailable": true, "tags": [ null ], "productOptionsCategories": [ { "id": "102", "name": "Our ingredients", "shortDescription": "What do you put on your pizza?", "position": 1, "maxSelection": 10, "minSelection": null, "maxSameOptionSelection": 2, "selectionLabel": "Max. 10", "productOptions": [ { "id": "233", "name": "Cheddar", "shortDescription": "Add cheddar to your pizza", "position": 1, "isAvailable": true, "price": { "amount": 0.75, "vatValue": 10.0 } } ] } ], "urlKey": "product-name" }
Product
MODEL ATTRIBUTES
id | integer (int64) | Product identifier | |
externalId | string | Custom identifier |
MODEL EXAMPLES
Example
{ "id": "843" }
ProductInputData
Despite this you can find the definition in other models in this document.
MODEL EXAMPLES
Example
{ "name": "Cheese Burger", "externalId": "{YOUR POS REFERENCE}", "price": { "amount": 11.75, "amountA": 11.75, "amountB": 11.75, "amountC": 11.75, "amountD": 11.75, "vatValue": "10" }, "inMenuPrice": { "amount": 3.2, "amountA": 3.2, "amountB": 3.2, "amountC": 3.2, "amountD": 3.2, "vatValue": "10" }, "shortDescription": "Burger with cheddar", "description": "Using our best bread...", "image": "https://example.com/image.jpg", "public": true, "featured": false, "isAvailable": true, "addProductOptionsToVariants": false, "productVariants": [ { "name": "King Size", "externalId": "external_reference", "shortDescription": "Biggest size", "price": { "amount": 14.45, "amountA": 14.45, "amountB": 14.45, "amountC": 14.45, "amountD": 14.45, "vatValue": 10.0 } } ], "tags": [ "Cheddar", "Premium" ], "productOptionsIds": [ 1443, 2552, 1123 ] }
ProductOption
MODEL ATTRIBUTES
id | integer (int64) | Product option identifier | |
externalId | string | Custom identifier | |
name | string | Product option name | |
shortDescription | string | Product option short description | |
position | integer (int32) | Product option position | |
isAvailable | boolean | Returns true if the product option can be purchased | |
price | object PriceData | Product option price |
MODEL EXAMPLES
Example
{ "id": "233", "name": "Cheddar", "shortDescription": "Add cheddar to your pizza", "position": 1, "isAvailable": true, "price": { "amount": 0.75, "vatValue": 10.0 } }
ProductOption
MODEL ATTRIBUTES
name | string | Product option name | |
externalId | string | Custom identifier | |
shortDescription | string | Product option short description | |
price | object PriceData | ||
position | integer | Product option position | |
isAvailable | boolean | True if the product option is available and can be purchased |
MODEL EXAMPLES
Example
{ "name": "Extra bacon", "externalId": "external_reference", "shortDescription": "Fried bacon", "price": { "amount": 1.5, "vatValue": 10.0 }, "position": 1, "isAvailable": true }
ProductOption
MODEL ATTRIBUTES
name | string | Product option name | |
externalId | string | Custom identifier | |
shortDescription | string | Product option short description | |
price | object PriceData | ||
position | integer | Product option position | |
isAvailable | boolean | True if the product option is available and can be purchased | |
id | integer | Existing product option identifier |
MODEL EXAMPLES
Example
{ "name": "Extra bacon", "externalId": "external_reference", "shortDescription": "Fried bacon", "price": { "amount": 1.5, "vatValue": 10.0 }, "position": 1, "isAvailable": true, "id": 6621 }
ProductOption
MODEL ATTRIBUTES
id | integer (int64) | Product option identifier | |
externalId | string | Custom identifier |
MODEL EXAMPLES
Example
{ "id": "233" }
ProductOptionsCategory
MODEL ATTRIBUTES
id | integer (int64) | Product option category identifier | |
externalId | string | Custom identifier | |
name | string | Product option category name | |
shortDescription | string | Product option category description | |
position | integer (int32) | Product option category position | |
maxSelection | integer (int32) | Maximum of options selected for product option category | |
minSelection | integer (int32) | Required minimum of product options selected by consumer. If this value is NULL the consumer may not select any option in this category | |
maxSameOptionSelection | integer (int32) | Maximum times wich the same product option can be selected by consumer. If this value is NULL the consumer can select the same option as many times as he want limited by maxOptions value | |
selectionLabel | string | Text describing minimum and maximum selection options | |
productOptions | array ProductOption | Product options for product option category |
MODEL EXAMPLES
Example
{ "id": "102", "name": "Our ingredients", "shortDescription": "What do you put on your pizza?", "position": 1, "maxSelection": 10, "minSelection": null, "maxSameOptionSelection": 2, "selectionLabel": "Max. 10", "productOptions": [ { "id": "233", "name": "Cheddar", "shortDescription": "Add cheddar to your pizza", "position": 1, "isAvailable": true, "price": { "amount": 0.75, "vatValue": 10.0 } } ] }
ProductOptionsCategory
MODEL ATTRIBUTES
id | integer (int64) | Product option category identifier | |
externalId | string | Custom identifier | |
name | string | Product option category name | |
shortDescription | string | Product option category description | |
position | integer (int32) | Product option category position | |
maxSelection | integer (int32) | Maximum of options selected for product option category | |
minSelection | integer (int32) | Required minimum of product options selected by consumer. If this value is NULL the consumer may not select any option in this category | |
maxSameOptionSelection | integer (int32) | Maximum times wich the same product option can be selected by consumer. If this value is NULL the consumer can select the same option as many times as he want limited by maxOptions value | |
selectionLabel | string | Text describing minimum and maximum selection options | |
productOptions | array ProductOption | Product options for product option category |
MODEL EXAMPLES
Example
{ "id": "102", "name": "Our ingredients", "shortDescription": "What do you put on your pizza?", "position": 1, "maxSelection": 10, "minSelection": null, "maxSameOptionSelection": 2, "selectionLabel": "Max. 10", "productOptions": [ { "id": "233", "name": "Cheddar", "shortDescription": "Add cheddar to your pizza", "position": 1, "isAvailable": true, "price": { "amount": 0.75, "vatValue": 10.0 } } ] }
ProductOptionsCategoryInputData
MODEL ATTRIBUTES
name | string | Product options category name | |
externalId | string | Custom identifier | |
shortDescription | string | Product option category short description | |
minOptions | integer | Required minimum of product options selected by consumer. If this value is NULL the consumer may not select any option in this category. | |
maxOptions | integer | Maximum of product options that can be selected by consumer. If this value is NULL the consumer can select options as many times as he want. | |
maxSameOptionSelection | integer | Maximum times wich the same product option can be selected by consumer. If this value is NULL the consumer can select the same option as many times as he want limited by maxOptions value. | |
position | integer | Product option category position | |
productOptions | array ProductOption |
MODEL EXAMPLES
Example
{ "name": "Extras", "externalId": "external_reference", "shortDescription": "Using our best bread...", "minOptions": 2, "maxOptions": 3, "maxSameOptionSelection": 2, "position": 1, "productOptions": [ { "name": "Extra bacon", "externalId": "external_reference", "shortDescription": "Fried bacon", "price": { "amount": 1.5, "amountA": null, "amountB": null, "amountC": null, "amountD": null, "vatValue": 10.0 }, "position": 1, "isAvailable": true } ] }
ProductOptionsCategoryInputDataPatch
MODEL ATTRIBUTES
name | string | Product options category name | |
externalId | string | Custom identifier | |
shortDescription | string | Product option category short description | |
minOptions | integer | Required minimum of product options selected by consumer. If this value is NULL the consumer may not select any option in this category. | |
maxOptions | integer | Maximum of product options that can be selected by consumer. If this value is NULL the consumer can select options as many times as he want. | |
maxSameOptionSelection | integer | Maximum times wich the same product option can be selected by consumer. If this value is NULL the consumer can select the same option as many times as he want limited by maxOptions value. | |
position | integer | Product option category position | |
productOptions | array ProductOption |
MODEL EXAMPLES
Example
{ "name": "Extras", "externalId": "external_reference", "shortDescription": "Using our best bread...", "minOptions": 2, "maxOptions": 3, "maxSameOptionSelection": 2, "position": 1, "productOptions": [ { "name": "Extra bacon", "externalId": "external_reference", "shortDescription": "Fried bacon", "price": { "amount": 1.5, "vatValue": 10.0 }, "position": 1, "isAvailable": true, "id": 6621 } ] }
Schedule
MODEL ATTRIBUTES
id | integer (int64) | Schedule identifier | |
ranges | array ScheduleRange | Schedule ranges |
MODEL EXAMPLES
Example
{ "id": 2113, "ranges": [ { "startTime": "06:00:00", "endTime": "18:00:00", "timezone": "Europe/Madrid", "startDay": { "id": 1, "name": "Lunes" }, "endDay": { "id": 1, "name": "Lunes" } } ] }
Schedule
MODEL ATTRIBUTES
id | integer (int64) | Schedule identifier | |
ranges | array ScheduleRange | Schedule ranges | |
name | string | Schedule for delivery service |
MODEL EXAMPLES
Example
{ "id": 2113, "ranges": [ { "startTime": "06:00:00", "endTime": "18:00:00", "timezone": "Europe/Madrid", "startDay": { "id": 1, "name": "Lunes" }, "endDay": { "id": 1, "name": "Lunes" } } ], "name": "Delivery schedule" }
ScheduleRange
MODEL ATTRIBUTES
MODEL EXAMPLES
Example
{ "startTime": "06:00:00", "endTime": "18:00:00", "timezone": "Europe/Madrid", "startDay": { "id": 1, "name": "Lunes" }, "endDay": { "id": 1, "name": "Lunes" } }
SellingPoint
MODEL ATTRIBUTES
id | integer (int64) | Selling point identifier | |
name | string | Selling point name | |
address | object Address | Selling point address | |
phone | string | Selling point phone | |
string | Selling point contact email | ||
logo | string | Selling point logo url | |
mainImage | string | Selling point main image | |
listImage | string | Selling point list image | |
urlKey | string | Encoded name for url | |
type | string | Type of selling point | |
timezone | string | Selling point time zone | |
description | string | Selling point description | |
schedule | object Schedule | ||
allowedOrderTypes | array | Codes of the allowed order types. More info in 'Understanding order types' section. | |
tags | array Tag | Array with selling point tags |
MODEL EXAMPLES
Example
{ "id": 3442, "name": "My restaurant", "address": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "phone": "+34600000000", "email": "myrestaurant@example.com", "logo": "http://mycdn.com/selling-point-logo.jpeg", "mainImage": "http://mycdn.com/selling-point-main-image.jpeg", "listImage": "http://mycdn.com/selling-point-list-image.jpeg", "urlKey": "restaurant-name-city", "type": "Italian", "timezone": "Europe/Madrid", "description": "This restaurant...", "schedule": { "id": 2113, "ranges": [ { "startTime": "06:00:00", "endTime": "18:00:00", "timezone": "Europe/Madrid", "startDay": { "id": 1, "name": "Lunes" }, "endDay": { "id": 1, "name": "Lunes" } } ] }, "allowedOrderTypes": [ null ], "tags": [ { "name": "Veggie", "code": "veggie" } ] }
SellingPoint
MODEL ATTRIBUTES
id | integer (int64) | Selling point identifier | |
name | string | Selling point name | |
address | object Address | Selling point address | |
phone | string | Selling point phone | |
string | Selling point contact email | ||
logo | string | Selling point logo url | |
mainImage | string | Selling point main image | |
listImage | string | Selling point list image | |
urlKey | string | Encoded name for url | |
type | string | Type of selling point | |
timezone | string | Selling point time zone | |
mainImageLarge | string | Selling point main image large | |
listImageLarge | string | Selling point list image large |
MODEL EXAMPLES
Example
{ "id": 3442, "name": "My restaurant", "address": { "id": 1003, "street": "C/ Example, 23", "details": "Canada building", "city": "City name", "province": "Province name", "postalCode": "12345", "latitude": 41.308166, "longitude": 2.019725, "googlePlaceId": "xxxxxxxxxxxx", "placeName": "C/ Example, 23, City name" }, "phone": "+34600000000", "email": "myrestaurant@example.com", "logo": "http://mycdn.com/selling-point-logo.jpeg", "mainImage": "http://mycdn.com/selling-point-main-image.jpeg", "listImage": "http://mycdn.com/selling-point-list-image.jpeg", "urlKey": "restaurant-name-city", "type": "Italian", "timezone": "Europe/Madrid" }
Status
MODEL ATTRIBUTES
code | string | Delivery status identifier code Possible values WAITING_DRIVER_ACCEPTANCE PICKING WAITING_SELLING_POINT_ACCEPTANCE WAITING_SELLING_POINT_PREPARATION DELIVERING WAITING_CUSTOMER DELIVERED CANCELLED INCIDENT ACCEPTED_BY_DRIVER |
|
name | string | Delivery status name | |
color | string | HEX color code for the status | |
isFinalStatus | boolean | Return if is the last possible status |
MODEL EXAMPLES
Example
{ "code": "PICKING", "name": "Picking", "color": "blue", "isFinalStatus": false }
Tag
MODEL ATTRIBUTES
name | string | Tag name | |
code | string | Tag identifier code |
MODEL EXAMPLES
Example
{ "name": "Veggie", "code": "veggie" }
TransportType
MODEL ATTRIBUTES
code | string | Transport type identifier code Possible values BIKE SCOOTER MOTORBIKE CAR VAN WALKING |
|
name | string | Transport type name |
MODEL EXAMPLES
Example
{ "code": "SCOOTER", "name": "Scooter" }