0% found this document useful (0 votes)
88 views

Weborder API

The document summarizes the Revel Systems Web Ordering API, which includes endpoints organized into menu resources and cart resources groups. The menu resources endpoints return data like product categories, products, menus, and orders. The cart resources endpoints are used to validate, calculate, and submit carts. The API aims to simplify online ordering and provides helpful resources to minimize development effort.

Uploaded by

Satyam Sharma
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
88 views

Weborder API

The document summarizes the Revel Systems Web Ordering API, which includes endpoints organized into menu resources and cart resources groups. The menu resources endpoints return data like product categories, products, menus, and orders. The cart resources endpoints are used to validate, calculate, and submit carts. The API aims to simplify online ordering and provides helpful resources to minimize development effort.

Uploaded by

Satyam Sharma
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

Revel Systems

Web Ordering API - v2.17

Overview of the Weborder API

General structure of responses

Menu resources
Product Categories
Products
Menu
Recent Orders
Product Upcharge
Product Sets
Modifiers
Attributes
Order Items
Locations
API Version
Pre-Validate
Check Gift
Shipping Options
Shipping Taxes
Cart Totals

Settings

Authentication

Cart resources
Validate
Calculate
Submit

Cart resource request fields

Common error codes

Overview of the Weborder API


The Weborder API platform was specifically designed to replace our legacy online ordering solution
with a much more accessible suite of resources. While not all previously usable functionality was
carried over, the platform aims to simplify the process of placing an online order and includes many
additional helpful endpoints that should minimize the amount of development effort and API
requests required to successfully submit valid orders.
The aim of this document is to describe every endpoint part of the Weborder API platform and
provide examples of their usage. For the sake of convenience, we will group the endpoints by
namespace, as the platform uses two distinct ones for separate purposes. We will also be using the
following format to document each endpoint:

Endpoint Required parameters


endpointName parameterName
Purpose
Intended endpoint function.
Fields
Field Meaning
fieldName fieldValue
Example request
Target URL https://example.revelup.com/namespace/endpointName/?parameterNa
me=n
Request body -
Request headers -
Example response
{
"status": "OK",
"data": {}
}
Notes
Just a template

General structure of responses


The Weborder API uses the JSON format for all responses.
It also follows a general structure for successful and failed API requests.

Successful requests have the following fields:


status - Always equal to “OK” upon successful request
data - Response body in JSON format

Failed requests on the other hand generally have the following fields:
status - Always equal to “ERROR” upon failed request
errorMsg - Verbose error message, where exceptions are defined. Can be empty for
unexpected errors.

NOTE: API requests with a 403 and 404 response code will not follow the expected format, as they
are not processed by the Weborder API validators. Instead, they will return a HTML page with
the error description. See the Common error codes section for troubleshooting notes.

Menu resources
Our first group is called the “Menu resource” group, as most of the endpoints are dedicated to
fetching the location configuration and menu data. All of the resources in this group are part of the
/weborders/ namespace. Here is a list of endpoints part of this group:

Allowed
Name Endpoint Methods Required parameters
Product /weborders/product_categories
Categories / GET establishment
Products /weborders/products/ GET establishment
Menu /weborders/menu/ GET establishment
establishment,
Recent Orders /weborders/orders/recent/ GET customer

Product Upcharge /weborders/product_upcharge/ GET product


Product Sets /weborders/product_sets/ GET product
Modifiers /weborders/modifiers/ GET product
Attributes /weborders/attributes/ GET product
Order Items /weborders/order_items/ GET order
Locations /weborders/locations/ GET
API Version /weborders/api_version/ GET
Pre-Validate /weborders/pre_validate/ POST
Check Gift /weborders/check_gift/ POST
Shipping Options /weborders/shipping_options/ POST
Shipping Taxes /weborders/shipping_taxes/ POST
Cart Totals /weborders/cart_totals/ POST

None of the resources mentioned above require API authentication to access.


However, resources that require the “establishment” parameter will return an error if any of the
locations included in the query do not have Online Ordering enabled.

It is also important to note that Revel has a static menu structure:


Category > Sub-categories > Products

A category with no parent is a regular category. Sub-categories, consequently, are categories with a
parent category assigned to them. Products can only be assigned to sub-categories.

Generally, categories need to be added to the online menu before they are displayed as part of the
menu resources. This can be done by creating a Custom Menu of the “Online” type through the UI.
A Custom Menu should be created for each location that uses the weborder feature.

Moving on, let’s look at each endpoint individually.

Product Categories

Endpoint Required parameters


product_categories/ establishment
Purpose
Lists all product sub-categories and their timetables.
Fields
Field Meaning
Numeric value representing the sub-category sort order in the UI.
sort Does not have to be unique.
parent_name Name of the category this sub-category belongs to.
Array of JSON objects representing hours of availability for this
timetables sub-category.
name Sub-category name.
parent_id ID of the category this sub-category belongs to.
Numeric value representing the category sort order in the UI.
parent_sort Does not have to be unique.
image Sub-category icon image URL.
id Sub-category ID.
description Sub-category description.
Example request
Target URL https://example.revelup.com/weborders/product_categories/?esta
blishment=1
Request body -
Request headers -
Example response
{
"status":"OK",
"data":[
{
"sort":1,
"parent_name":"Main Category",
"timetables":[
{
"active":1,
"from_date":"Aug 01, 2019",
"timetable_data":{...},
"type":1,
"to_date":""
}
],
"name":"Main Subcategory",
"parent_id":7,
"parent_sort":2,
"image":null,
"id":8,
"description":null
}
]
}

Notes
Most of this information is already part of the /weborders/menu/ endpoint.

Products

Endpoint Required parameters


products/ establishment
Purpose
Lists all products part of the online ordering menu.
Fields
Field Meaning
Numeric value representing the product sort order in the UI. Does
sort not have to be unique.
id_category ID of the sub-category this product belongs to.
Flag. If set to True, product can be untaxed on takeout/delivery
is_cold
orders when the relevant tax settings are enabled (see Settings
section).
description Product description.
Flag. If set to True, product quantity field changes from integer to
sold_by_weight float.
Numeric value representing the product type. 0 - Regular, 1 -
attribute_type Parent, 2 - Child.
image Product icon image URL.
Product barcode. Can match across locations, but no duplicates
barcode can exist in the same one.
stock_amount Current inventory stock amount.
cost Inventory cost (how much the merchant pays for the product)
images Array of additional product image URLs.
Flag. If set to True, the product is considered a shipping package
is_shipping and is added to shipping orders automatically.
Flag. If set to True, enables the first attribute group which
determines the child product. Hidden by default unless the
attribute_1_enable attribute_type is 1.
Flag. If set to True, enables the second attribute group which
determines the child product. Hidden by default unless the
attribute_2_enable attribute_type is 1.
id Product ID. Always unique.
attribute_1_name Name of the first attribute group.
attribute_2_name Name of the second attribute group.
If the product is part of an upsell combo, this will be the price
upcharge_price displayed when it is added to the combo.
Product sku. Can match across locations, but no duplicates can
sku exist in the same one.
Flag. If set to True, the product is considered a gift card and will
is_gift add its’ price value to a specified customer gift card.
name Product name.
Array of JSON objects representing hours of availability for this
timetables product.
is_combo Flag. If set to True, the product has attached item sets.
has_upsell Flag. If set to True, the product has an upsell combo attached.
max_price Maximum price that can be charged for this product.
size_chart Product size chart image.
Reward point value awarded upon purchase. Only applicable if
point_value item rewards are enabled.
Item course number. Restaurant type locations use this to stage
course_number their kitchen receipts in a specific order.
created_date Product creation date.
Array of attribute choices for this product from attribute group 1.
attribute_1_values Attribute choice determines which child product is added.
Array of attribute choices for this product from attribute group 2.
attribute_2_values Attribute choice determines which child product is added.
price Product price.
uom Product unit of measurement.
Example request
Target URL https://example.revelup.com/weborders/products/?establishment=
1
Request body -
Request headers -
Example response
{
"status":"OK",
"data":[
{
"sort":15,
"id_category":8,
"is_cold":false,
"description":" ",
"sold_by_weight":false,
"attribute_type":1,
"image":"<REDACTED>",
"barcode":"100000000373",
"stock_amount":999,
"cost":0,
"images":[...],
"is_shipping":null,
"attribute_1_enable":true,
"id":85,
"attribute_1_name":"Book of Combos",
"upcharge_price":0,
"sku":"",
"is_gift":null,
"name":"Book of Combos",
"timetables":[...],
"is_combo":false,
"has_upsell":false,
"max_price":null,
"size_chart":null,
"point_value":null,
"course_number":null,
"created_date":"04/14/2017 03:02",
"attribute_1_values":[
"Book of Combos - 1",
"Book of Combos - 2",
"Book of Combos - 3",
"Book of Combos - 4",
"Book of Combos - 5"
],
"price":100,
"uom":"Unit"
}
]
}

Notes
Most of this information is already part of the /weborders/menu/ endpoint, but this may be useful if only
products are mapped.

Menu

Endpoint Required parameters


menu/ establishment
Purpose
Lists the entire online ordering menu for a given location.
Fields
Field Meaning
Numeric value representing the sub-category sort order in the UI.
sort Does not have to be unique.
parent_name Name of the category this sub-category belongs to.
Array of JSON objects representing hours of availability for this
timetables sub-category.
Array of JSON objects representing products that are part of this
menu. Similar format to the Products endpoint, but also includes a
products modifierclasses array for every product.
name Sub-category name.
parent_id ID of the category this sub-category belongs to.
Numeric value representing the category sort order in the UI.
parent_sort Does not have to be unique.
image Sub-category icon image URL.
id Sub-category ID.
description Sub-category description.
Target URL https://example.revelup.com/weborders/menu/?establishment=1
Request body -
Request headers -
Example response
{
"status":"OK",
"data":{
"categories":[
{
"sort":1,
"parent_name":"Main Category",
"timetables":[
{
"active":1,
"from_date":"Aug 01, 2019",
"timetable_data":{...},
"type":1,
"to_date":""
}
],
"products":[
{
"sort":3,
"id_category":8,
"is_cold":false,
"description":"",
"modifier_classes":[...],
"sold_by_weight":false,
"attribute_type":0,
"image":"<REDACTED>",
"barcode":"4008400203829",
"stock_amount":-35,
"cost":10,
"images":[...],
"is_shipping":false,
"id":50,
"upcharge_price":0,
"sku":"100000000304",
"is_gift":false,
"name":"Hot Drink",
"timetables":[
{
"active":1,
"from_date":"Aug 01, 2019",
"timetable_data":{...},
"type":1,
"to_date":""
}
],
"is_combo":false,
"has_upsell":false,
"max_price":null,
"size_chart":null,
"point_value":null,
"course_number":null,
"created_date":"08/03/2016 04:31",
"price":25,
"uom":"Unit"
}
],
"name":"Main Subcategory",
"parent_id":7,
"parent_sort":2,
"image":null,
"id":8,
"description":null
}
]
}
}

Notes
Extremely useful endpoint that combines the data of Product Categories, Products and Modifiers into
one nested resource.

Recent Orders

Endpoint Required parameters


orders/recent/ establishment, customer
Purpose
Lists customer orders from the past 7 days. Not limited to online orders.
Fields
Field Meaning
prevailing_tax Order tax rate (percentage).
prevailing_surcharge Order surcharge taken from location configuration (percentage).
pickup_time Order pickup time. Field hidden if ASAP pickup time was selected.
tax Order tax amount.
tax_country Order tax country.
name Sub-category name.
Order dining option. 0 - Takeout, 1 - Eat in, 2 - Delivery, 3 -
dining_option Catering, 4 - Drive Through, 6 - Other, 7 - Shipping.
call_name Customer call name.
subtotal Order item total
id Order ID.
surcharge Individual order surcharge.
customer JSON object containing basic customer details.
final_total Order total after taxes, discounts, surcharges, etc.
tip Payment tip total.
discounts Order discount total
closed Flag. If set to True, order is finalized.
created_date Order created date.
remaining_due Outstanding order balance to be paid by the customer.
Target URL ample.revelup.com/weborders/orders/recent/?establishment=1&cus
Request body -
Request headers -
Example response
{
"status":"OK",
"data":[
{
"prevailing_tax":10,
"prevailing_surcharge":0,
"pickup_time":"09/16/2019 00:09",
"tax":53.1,
"tax_country":"usa",
"dining_option":0,
"call_name":"Revel Test / Sep 16, 12:09am / 4157441433",
"subtotal":531,
"id":45687,
"surcharge":0,
"customer":{
"phone":"4157441433",
"first_name":"Revel",
"last_name":"Test",
"id":"158"
},
"final_total":584.1,
"tip":0,
"discounts":0,
"closed":false,
"created_date":"09/15/2019 23:54",
"remaining_due":0
}
]
}

Notes
Very useful for loyalty integrations as it enables recent customer order lookup without expending any API
calls. Can be paired with data from Order Items if more granular data is needed.

Product Upcharge

Endpoint Required parameters


product_upcharge/ product
Purpose
If the specified product has a linked upsell combo, this will list all the combo selections.
Fields
Field Meaning
Array of combo slot groups. Every slot can have a different list of
slots item choices and is not limited to a single item.
slots/sort Numeral value representing the slot display order in the UI.
slots/name Slot name displayed in the UI.
Array of product resource URIs representing the default choices
slots/default_products for each slot.
Array of product resource URIs representing the list of products
slots/products that can be added to this slot.
slots/id Slot ID for internal reference.
Amount of items to be selected from the available choices.
slots/quantity Multiples of the same item are allowed.
Extra amount to be added to the product price total when the
price upsell is selected.
Product price override when upsell is selected. If set to 0, the
upsell_combo_price price value is added to the product total instead.
name Combo name
Target URL https://example.revelup.com/weborders/product_upcharge/?produ
ct=39
Request body -
Request headers -
Example response
{
"status":"OK",
"data":{
"slots":[
{
"sort":1,
"name":"Side",
"default_products":[...],
"products":[...],
"id":4,
"quantity":1
},
{
"sort":2,
"name":"Drink",
"default_products":[...],
"products":[...],
"id":6,
"quantity":1
}
],
"price":3.5,
"upsell_combo_price":0,
"name":"Meal Deal"
}
}

Notes
Invaluable resource that should be checked when an item in the menu has “is_upsell” set to True.
Contains all the possible upsell choices to allow for easier mapping of combo products.

Product Sets
Endpoint Required parameters
product_sets/ product
Purpose
If the specified product is a combo, this will list all the combo selections.
Fields
Field Meaning
sort Numeral value representing the set display order in the UI.
name Combo set name displayed in the UI.
Array of product resource URIs representing the list of products
products that can be added to this set.
Amount of items to be selected from the available choices.
quantity Multiples of the same item are allowed.
id Set ID for internal reference.
Flag. If set to True, products selected in this set will be repriced to
is_combo_saving achieve the desired combo price.
Target URL https://example.revelup.com/weborders/product_sets/?product=39
Request body -
Request headers -
Example response
{
"status":"OK",
"data":[
{
"sort":1,
"name":"Drink",
"products":[...],
"quantity":2,
"id":3,
"is_combo_saving":false
},
{
"sort":2,
"name":"Meal",
"products":[...],
"quantity":1,
"id":4,
"is_combo_saving":true
}
]
}

Notes
Similar to the Product Upcharge resource, but applies to products with the "is_combo" flag set to True
instead.

Modifiers

Endpoint Required parameters


modifiers/ product
Purpose
Lists all modifiers available for a given product.
Fields
Field Meaning
Numeral value representing the modifier class display order in the
sort UI.
Maximum total quantity of modifiers added to an order item from
maximum_amount this class.
Flag. If set to True, this modifier class has special properties such
admin_modifier as product repricing or negative prices.
Flag. If set to False, modifiers from this class can not be added to
active the product.
id Deprecated.
Modifier class reference ID. Links to the ModifierClass API
modifier_class_id resource.
forced Flag. If set to True, minimum_amount is greater than zero.
Flag. If set to True, the amount_free field represents price, not
amount_free_is_dollars quantity.
modifiers Array of JSON objects representing possible modifier choices.
modifiers/sort Numeral value representing the modifier display order in the UI.
Modifier SKU. Can be used as a reference to add the modifier to
modifiers/sku an order item.
modifiers/cost Modifier inventory cost (what the merchant pays for it).
modifiers/name Modifier name.
Modifier barcode. Can be used as a reference to add the modifier
modifiers/barcode to an order item.
Flag. If set to False, this modifier can not be added to the order
modifiers/active item.
modifiers/price Modifier price.
modifiers/selected Flag. If set to True, the modifier is added to the product by default.
Flag. If set to True, the modifier is available for all products in the
modifiers/is_quick online ordering menu.
modifiers/id Modifier reference ID. Links to the Modifier API resource.
name Modifier name to be displayed in the UI.
amount_free Quantity of modifiers that can be added for free.
If is_admin is set to True, the type of admin class will be specified
here. SIZE modifiers override product prices, DISCOUNT
modifiers allow negative prices, SPECIAL modifiers are treated as
admin_mod_key special requests.
Flag. If set to True, the modifier can be split in halves. Requires a
setting to be enabled before this is allowed (see Settings
split resource).
Minimum total quantity of modifiers added to the order item from
minimum_amount this class.
Target URL https://example.revelup.com/weborders/modifiers/?product=57
Request body -
Request headers -
Example response
{
"status":"OK",
"data":[
{
"sort":5,
"maximum_amount":1,
"admin_modifier":false,
"active":true,
"id":13,
"modifier_class_id":13,
"forced":true,
"amount_free_is_dollars":null,
"modifiers":[
{
"sort":1,
"sku":"I12/CF-CC",
"cost":0,
"name":"Red Bean Paste",
"barcode":"",
"active":true,
"price":6,
"selected":false,
"is_quick":false,
"id":5
},
{...},
{...}
],
"name":"Toppings",
"amount_free":0,
"admin_mod_key":null,
"split":false,
"minimum_amount":1
}
]
}

Notes
This is already included in the Menu resource, but may be useful for a lightweight modifier price checking
tool.

Attributes

Endpoint Required parameters


attributes/ product
Purpose
Lists all attributes available for a parent product.
Fields
Field Meaning
JSON object containing attribute details, such as name, position
attributes and ID.
JSON object describing the child product that would be added if
product this attribute is selected. Same data as the Product endpoint.
Array of JSON objects containing the modifier classes and their
modifiers applicable to the child product. Same data as the
modifiers Modifiers endpoint.
Target URL https://example.revelup.com/weborders/attributes/?product=85
Request body -
Request headers -
Example response
{
"status":"OK",
"data":[
{
"attributes":{
"attribute_value_1_name":"Book of Combos - 1",
"attribute_value_1_sort":1,
"attribute_value_1":4
},
"product":{
"sort":15,
"id_category":8,
"is_cold":false,
"description":"",
"sold_by_weight":false,
"attribute_type":2,
"image":"<>",
"barcode":"100000001004",
"stock_amount":999,
"sold_amount":117,
"cost":null,
"images":[...],
"is_shipping":false,
"id":683,
"upcharge_price":0,
"sku":"100000000946",
"is_gift":false,
"name":"Book of Combos - 1",
"timetables":[
{
"active":1,
"from_date":"Aug 01, 2019",
"timetable_data":{...},
"type":1,
"to_date":""
}
],
"is_combo":false,
"has_upsell":false,
"max_price":null,
"size_chart":null,
"point_value":null,
"course_number":null,
"created_date":"12/10/2017 06:28",
"price":100,
"uom":"Unit"
},
"modifiers":[...]
},
{...},
{...},
{...},
{...}
]
}

Notes
Very useful for finding all child products under a parent product.

Order Items

Endpoint Required parameters


order_items/ order
Purpose
Lists all items sold under a particular order. Not limited to online orders.
Fields
Field Meaning
product JSON object describing the product details
product/sort Numeral value representing the item position on the receipt.
product/id_category ID of the sub-category the product is listed under.
Flag. If set to True, the product may be untaxed on
takeout/delivery orders, depending on the tax configuration (see
product/is_cold Settings section)
product/description Product description.
Flag. If set to True, changes quantity data type from integer to
product/sold_by_weight float.
JSON object containing the latest values of this product for
comparison (in case the product is no longer active or has a
product/actual_data different price)
product/attribute_type Product type. 0 - Regular, 1 - Parent, 2 - Child.
product/image Product image URL.
product/barcode Product barcode at the time of sale.
product/tax Product tax rate (percentage) at the time of sale
product/stock_amount Product stock amount at the time of sale
product/sold_amount Deprecated field.
product/upcharge_price Amount added to the product price to turn it into an upsell combo.
product/sku Product SKU at the time of sale.
Flag. If set to True, the product added a gift card balance equal to
product/is_gift its' price to the customer's gift card.
product/name Product name at the time of the sale.
Flag. If set to True, the product was a combo at the time of the
product/is_combo sale.
Flag. If set to True, the product used to have an upsell combo
product/has_upsell linked at the time of the sale.
product/max_price Maximum price the product could be sold at.
product/size_chart Size chart image URL.
Amount of item points rewarded to the customer at the time of
product/point_value purchase (if the Item Reward system is enabled).
Product course number, which determines the kitchen print order
product/course_number on locations of the Restaurant type.
product/created_date Product creation date.
product/price Product price at the time of sale.
product/uom Product inventory unit of measurement at the time of sale.
JSON object describing the item modifier details. Same data
modifiers format as the Modifier endpoint.
tax_amount Order item tax amount.
modifier_amount Modifier price total.
Order item dining option. 0 - Takeout, 1 - Eat in, 2 - Delivery, 3 -
dining_option Catering, 4 - Drive Through, 6 - Other, 7 - Shipping.
service_fee_amount Applied service fee amount.
quantity Order item quantity.
Target URL https://example.revelup.com/weborders/order_items/?order=4569
8
Request body -
Request headers -
Example response
{
"status":"OK",
"data":[
{
"product":{
"sort":6,
"id_category":8,
"is_cold":false,
"description":"",
"sold_by_weight":false,
"actual_data":{
"available":true,
"is_cold":false,
"cost":3,
"is_shipping":false,
"sold_by_weight":false,
"price":3,
"is_gift":false,
"uom":"Unit"
},
"attribute_type":0,
"image":"<REDACTED>",
"barcode":"100000000007",
"tax":10,
"stock_amount":4751,
"sold_amount":515,
"cost":3,
"images":[...],
"is_shipping":false,
"id":48,
"upcharge_price":0,
"sku":"100000000298",
"is_gift":false,
"name":"Rare Steak",
"is_combo":false,
"has_upsell":false,
"max_price":null,
"size_chart":null,
"point_value":null,
"course_number":null,
"created_date":"08/03/2016 17:44",
"price":3,
"uom":""
},
"modifiers":[...],
"tax_amount":0.3,
"modifier_amount":0,
"dining_option":0,
"service_fee_amount":0,
"quantity":1
},
{...},
{...},
{...},
{...},
{...}
]
}

Notes
Invaluable resource for loading order data without using any API calls. Can be used to create a simple
re-order feature.

Locations

Endpoint Required parameters


locations/ -
Purpose
Lists all locations for a given instance.
Fields
Field Meaning
dns Array of URLs this instance can be reached at.
short_name Canonical instance name.
estabs Array of JSON objects representing business locations.
estabs/province Location province.
estabs/time_zone_offset Timezone offset from UTC.
estabs/logo_url Location logo image URL.
estabs/server_time Current server time in the form of a UNIX timestamp.
estabs/name Internal location name.
estabs/country Location country code.
estabs/timetables Array of JSON objects representing business opening hours.
estabs/zipcode Location post code.
estabs/longitude Location geographical longitude.
Array of JSON objects containing timetable exceptions. Online
estabs/holidays orders can not be placed on days specified in this array.
estabs/latitude Location geographical latitude.
estabs/state Location state. If the location is non-US, this will likely be "---".
estabs/city_name Location city name.
estabs/line_1 Location address line 1.
Location name as it appears in the online ordering page. Does
estabs/business_name not have to be unique.
JSON object containing a few settings related to online ordering
estabs/system_settings configuration.
estabs/system_settings/online_dining_ Array of available dining options. 0 - Takeout, 1 - Eat in, 2 -
options Delivery, 3 - Catering, 4 - Drive Through, 6 - Other, 7 - Shipping.
estabs/system_settings/time_format Location time format - 12h or 24h.
estabs/system_settings/day_start Location business day start.
estabs/system_settings/online_and_ap Flag. If set to True, the location has the weborder API platform
p_orders enabled.
estabs/system_settings/min_delivery_
amount Minimum order total before delivery is allowed
estabs/system_settings/keywords Deprecated.
estabs/system_settings/promo_messa
ge Deprecated.
estabs/system_settings/delivery_charg
e Flat surcharge on all delivery orders.
Flag. If set to True, the location will accept online orders outside
estabs/system_settings/accept_online of opening hours. Pickup time must still adhere to location
_orders_when_store_is_closed timetables.
line_2 Location address line 2.
type Location type. Internal use only.
Location ID. Can be referenced in the Establishment API
id resource.
has_campaigns Flag. If set to True, enables the internal campaigns feature.
Target URL https://example.revelup.com/weborders/locations/
Request body -
Request headers -
Example response
[
{
"dns":[
"example.revelup.com"
],
"short_name":"example",
"brand_name":"example",
"estabs":[
{
"province":"",
"time_zone_offset":10800,
"logo_url":"<REDACTED>",
"server_time":1568687794156,
"name":"example",
"country":"US",
"timetables":[
{
"active":1,
"from_date":"Apr 24, 2019",
"timetable_data":{
"monday":[...],
"tuesday":[...],
"friday":[...],
"wednesday":[...],
"thursday":[...],
"sunday":[...],
"saturday":[...]
},
"type":0,
"to_date":""
}
],
"zipcode":"94131",
"longitude":-122.4450872,
"holidays":[...],
"latitude":37.7522548,
"state":"CA",
"city_name":"San Francisco",
"line_1":"44 Gardenside Dr",
"business_name":"example",
"system_settings":{
"online_dining_options":[...],
"time_format":"12 hour",
"day_start":"05:00",
"online_and_app_orders":true,
"min_delivery_amount":"0",
"keywords":null,
"promo_message":null,
"delivery_charge":0,
"accept_online_orders_when_store_is_closed":true
},
"line_2":"",
"type":2,
"id":3,
"has_campaigns":false
}
]
}
]

Notes
If error 403 is received when making requests to a particular location, this is a great resource for
checking whether the location has online ordering enabled.

API Version

Endpoint Required parameters


api_version/ -
Purpose
Lists the current API version
Fields
Field Meaning
version Current API version.
Target URL https://example.revelup.com/weborders/api_version/
Request body -
Request headers -
Example response
{
"status":"OK",
"data":{
"version":"2.17"
}
}

Notes
-

Pre-Validate

Endpoint Required parameters


pre_validate -
Purpose
Order validation
Fields
Field Meaning
final_total Order total after discounts, taxes, service fees, etc.
items Array of JSON objects representing order items.
items/product Product ID.
items/tax_amount Item tax amount, calculated by applying all applicable tax rates.
items/product_name_override Current product name.
items/price Current product price.
items/discounts Array of JSON objects representing applied discounts.
Flag. If set to False, the tax amount will be calculated from the full
items/discounts/taxed product price.
items/discounts/sum Discount amount.
Discount type. 0 - Flat amount, 1 - Percentage, 2 - Reprice, 3 -
items/discounts/type Alt. Price
items/discounts/name Discount name as it would appear on the receipt.
items/discount JSON object representing the applied discount total.
Flag. If set to True, indicates that the item is a combo and will
items/is_combo contain other product sets.
items/tax_rate Applied tax rate (percentage).
Array of JSON objects representing products added as part of the
items/combo_items combo.
Array of JSON objects representing modifiers added to the order
items/modifieritems item.
Modifier split status. 0 - Unsplit, 1 - Apply to first half, 2 - Apply to
second half.
items/modifieritems/qty_type Split status can affect modifier pricing with the right settings.
items/modifieritems/product_id ID of the product that the modifier is applying to.
items/modifieritems/modifier_cost Modifier cost (what the merchant pays to make it).
items/modifieritems/qty Applied modifier quantity.
items/modifieritems/modifier Modifier ID.
items/modifieritems/modifier_price Current modifier price per unit.
price_overrides Deprecated.
tax Total order tax amount.
discounts Sum of all discounts part of the order.
discounts_list Deprecated.
subtotal Order total before tax, discounts, service fees, etc.
surcharge Order surcharge total.
Example request
Target URL https://example.revelup.com/weborders/pre_validate/
Request body {
"establishment":3,
"items":[
{
"price":3,
"product":48,
"quantity":1
},
{
"modifieritems":[
{
"modifier":9,
"modifier_price":8,
"qty":1,
"qty_type":0
}
],
"price":0,
"product":58,
"quantity":1
},
{
"price":100,
"product":683,
"quantity":1
},
{
"special_request":"Wrap separately",
"price":200,
"product":243,
"quantity":1,
"is_combo":true,
"products_sets":[
{
"id":3,
"name":"Meal",
"products":[
{
"price":2,
"product":60,
"quantity":2
}
]
},
{
"id":4,
"name":"Side",
"products":[
{
"price":48,
"product":82,
"quantity":3
}
]
}
]
}
],
"orderInfo":{
"created_date":"2019-09-18T01:20:39",
"pickup_time":"2019-09-18T01:45:00",
"dining_option":0,
"notes":"Add utensils",
"asap":false,
"customer":{
"phone":"4157441433",
"email":"[email protected]",
"first_name":"Revel",
"last_name":"Test"
},
"call_name":"Revel Test / Sep 18, 4:45am /
4157441433"
},
"paymentInfo":{
"tip":7.7,
"amount":333.3,
"transaction_id":"cn12saFj1lasTI22",
"type":7
},
"discount_code":"a"
}

Request headers Content-Type: application/json

Example response
{
"status":"OK",
"data":{
"final_total":333.3,
"items":[
{
"product":48,
"product_name_override":"Rare Steak",
"price":3.0,
"discounts":[
{
"taxed":true,
"sum":3.0,
"type":0,
"name":"Item Reward"
}
],
"is_combo":false,
"discount":{
"taxed":true,
"sum":3.0,
"type":0,
"name":"Item Reward"
}
},
{
"product":58,
"tax_amount":0.3,
"product_name_override":"Bugnet",
"price":0.0,
"discounts":[
{
"taxed":true,
"sum":5.0,
"type":0,
"name":"Item Reward"
}
],
"is_combo":false,
"tax_rate":10.0,
"discount":{
"taxed":true,
"sum":5.0,
"type":0,
"name":"Item Reward"
},
"modifieritems":[
{
"qty_type":0,
"product_id":58,
"modifier_cost":0,
"qty":1,
"modifier":9,
"modifier_price":8.0
}
]
},
{
"product":683,
"tax_amount":10.0,
"product_name_override":"Book of Combos - 1",
"price":100.0,
"discounts":[],
"is_combo":false,
"tax_rate":10.0
},
{
"product":243,
"tax_amount":20.0,
"product_name_override":"Survival Pack",
"price":200.0,
"discounts":[],
"is_combo":true,
"tax_rate":10.0,
"combo_items":[
{
"product_name_override":"Rare Fish",
"product":60,
"price":0.0,
"quantity":2
},
{
"product_name_override":"Potato Slices w/ Garlic Oil",
"product":82,
"price":48.0,
"quantity":3
}
]
}
],
"price_overrides":null,
"tax":30.30,
"discounts":8.0,
"discounts_list":[],
"subtotal":303.00,
"surcharge":0.0
}
}

Notes
Great replacement for /specialresources/cart/validate/, as it uses no API calls and serves the same
function.

Check Gift

Endpoint Required parameters


check_gift/ -
Purpose
Checks whether a gift card exists in a given location.
Fields
Field Meaning
status OK - Gift card exists, ERROR - Gift card does not exist
Target URL https://example.revelup.com/weborders/check_gift/
Request body card=111264&establishment=3

Request headers -
Example response
{
"status":"OK"
}

Notes

Shipping Options

Endpoint Required parameters


shipping_options/ -
Purpose
Returns available shipping options.
Fields
Field Meaning
service_name Shipping method name.
shipment_company Shipping company. 1 - UPS, 2 - FedEx.
shipping_and_handling_charge Total shipping charge with handling fee added.
shipping_charge Price of selected shipping method.
Shipping service code. Used as an identifier for the integration
service_code partner.
Target URL https://example.revelup.com/weborders/shipping_options/
Request body {
"establishment":3,
"address":{
"street_1":"1 Telegraph Hill Blvd",
"street_2":" ",
"city":"San Francisco",
"state":"CA",
"zipcode":"94133",
"country":"US"
},
"items":[
{
"product":61,
"quantity":41
}
]
}

Request headers Content-type: application/json

Example response
{
"status":"OK",
"data":[
{
"service_name":"FedEx Ground\u00ae",
"shipment_company":2,
"shipping_and_handling_charge":10.970999999999998,
"shipping_charge":9.54,
"service_code":"FEDEX_GROUND"
},
{
"service_name":"FedEx Express Saver\u00ae",
"shipment_company":2,
"shipping_and_handling_charge":21.804,
"shipping_charge":18.96,
"service_code":"FEDEX_EXPRESS_SAVER"
}
]
}

Notes
Can be used to check for possible shipping options when submitting shipping orders. Requires a UPS or
FedEx integration.

Shipping Taxes

Endpoint Required parameters


shipping_taxes/ -
Purpose
Calculates order taxes through an external service.
Fields
Field Meaning
Same array as the one submitted in the request body, but with
items tax_amount added
items/tax_amount Calculated tax rate of the individual product
tax Total order tax
Target URL https://example.revelup.com/weborders/shipping_taxes/
Request body {
"establishment":3,
"items":[
{
"price":1,
"product":61,
"quantity":40
}
],
"address":{
"street_1":"1455 Galindo St",
"street_2":"",
"city":"Concord",
"state":"CA",
"country":"US",
"zipcode":"94133"
}
}

Request headers Content-type: application/json

Example response
{
"status":"OK",
"data":{
"items":[
{
"price":1,
"tax_amount":3.5,
"product":61,
"quantity":40
}
],
"tax":3.5
}
}

Notes
Requires an Avalara or TaxCloud integration.

Cart Totals

The ‘/weborders/cart_totals/’ endpoint functionality is identical to the Pre Validate resource. See that
section for definition.

Settings
This should be the first request that you issue to the Revel server. All settings are configurable in the
Revel backend application.
Endpoint Required parameters
system_settings/ establishment
Purpose
Lists the configuration for a specified location.

Fields
Field Meaning
recaptcha_site_key Key for reCaptcha integration
server_time Current server time in UNIX format
Flag. If set to True, customers will be asked to enter their details
enable_upfront before entering the online ordering page.
scales Scale configuration
Flag. If set to True, products that contain attributes will be
show_matrix_products displayed in the online ordering page.
First day of the week. Value ranges from 0-6 with Monday being
week_start 0 and Sunday being 6.
Estimated order preparation time in minutes. Arrival time
couldn’t be too close to store opening or closure time and it is
estimated_order_preparation_time validated taking in account this setting
Array containing a boolean value and two strings. First value
determines if the setting is used, the other two values display
editable_dining_options the current name of the two dining options that can be renamed.
brand_name Location brand.
day_start The beginning of the reporting day.
has_campaigns Flag. If set to True, the internal campaigns feature is active.
currency_name Currency alias
Flag. If set to True, items with the "is_cold" flag enabled will not
delivery_cold_untaxed be taxed on delivery orders.
about_access_to_location User defined instructions on how to find the location.
Flag. If set to True, special requests can be added to order
special_requests_online items.
min_items Minimum items per order
custom_menus List of CustomMenu resources where mode = 0.
auto_bag_charge Deprecated.
Flag. If set to True, items with inventory quantity less than or
cannot_order_with_empty_inventory equal to zero can not be sold.
estimated_delivery_time Estimated delivery time in minutes
JSON string allowing to configure additional input fields for the
other_dining_option_details Other dining option.
favicon_image Online ordering favicon image
Delivery area data in GeoJSON format. Empty means no
delivery_geojson restrictions.
Online customers may submit orders starting xx minutes after
online_order_start_time_offset the business opens
about_images Array of location images to be used in the online ordering page
about_description Location description to be used in the online ordering page
accept_online_orders_when_store_is_ Flag. If set to True, online orders can be placed while the store
closed is closed. Order pickup time must still be during open hours.
timetables Array containing location opening hours
allow_multiple_reward_redemptions_p Flag. If set to True, multiple discounts can be redeemed with a
er_order single rewards card.
delivery_for_online_orders Flag. If set to True, delivery orders can be placed online
Array of ZIP codes where delivery is allowed. Empty means no
delivery_post_code_lookup restrictions.
Business name. Will be displayed in the About section of the
about_title Revel Online Ordering page.
use_custom_menus Deprecated.
Flag. If set to True, orders can be sent under the Eat In dining
eat_in_for_online_orders option.
payment_processor Array of boolean values that lists valid methods of payment.
tax_country Tax calculation preset.
Flag. If set to True, product descriptions will not be shown in the
hide_products_description online ordering page
Flag. If set to True, product images will not be displayed in the
hide_images online ordering page
pre_tip_label Label for the pre-tip field for online orders
The About tab will display this Email contact to users of the
online applications. If this is left blank, no email contact will be
email displayed
api_version Weborder API version
prevailing_surcharge Automatic surcharge value (percentage).
Location service type. 0 - Restaurant, 1 - Quick Service, 2 -
type_of_service Retail.
distance_mearsure Unit of measure for delivery distance.
enable_split_modifiers_full_price_char Flag. If set to True, modifiers split in half will still charge full
ge price.
date_format Date format mask for the online ordering page.
layout_style Revel online ordering layout style. 0 - Standard, 1 - Retail.
Flag. If set to True, allows notes to be added to the order
order_notes_allow details.
brand Deprecated.
delivery_charges Array of service fees to be applied on delivery.
holidays Array of holidays when online ordering will not be available.
time_format Time format (12h/24h)
phone Location contact phone number.
online_orders Flag. If set to True, online orders are allowed.
default_country Default country code to be used delivery addresses.
logo_img Location logo to be used in the online ordering page.
address JSON object containing the location address.
business_name Location name
enable_marketing_opt_in_out Flag. If set to True, enables additional privacy features for users
Flag. If set to True, discount codes can be used to add
accept_discount_code discounts to the order
enable_split_modifiers Flag. If set to True, modifiers can be split into halves.
online_order_date_range Max date window for online ordering
Flag. If set to True, allows tips to be added to online order
accept_tips_online payments.
Flag. If set to True, ASAP can be used instead of a specific
enable_asap_due_time pickup time.
online_order_end_time_offset Online orders accepted until xx minutes before close
API key to be used for Google Maps authentication. Internal use
google_maps_api_key only.
suppress_student_identifier_popup Internal setting.
enable_reward_cards_collecting Flag. If set to True, allows the usage of reward cards.
online_order_time_slot Online order time slot interval
min_delivery_amount Minimum order total before delivery can be selected
time_zone Server timezone in pytz format
shipping Flag. If set to True, shipping orders can be placed online
color_scheme Revel online ordering page color scheme name.
fb_app_id Deprecated.
List of credit card provider icons to be displayed during
online_credit_card_types checkout.
currency_symbol Currency symbol.
promo_message Deprecated.
enable_quantity_modifiers Flag. If set to True, modifier quantities can be adjusted.
Flag. If set to True, modifier descriptions will be displayed in the
show_modifiers_description online ordering page.
Array of possible dining options. 0 - Takeout, 1 - Eat in, 2 -
dining_options Delivery, 3 - Catering, 4 - Drive Through, 6 - Other, 7 - Shipping.
time_zone_offset Time zone offset from UTC.
Example request
Target URL https://example.revelup.com/weborders/system_settings/?establ
ishment=1
Request body -
Request headers -
Example response
{
"status":"OK",
"data":{
"recaptcha_site_key":"",
"server_time":1568604511339,
"enable_upfront":false,
"scales":{...},
"show_matrix_products":false,
"week_start":"0",
"estimated_order_preparation_time":15,
"editable_dining_options":[...],
"brand_name":"LBMH",
"day_start":"05:00",
"has_campaigns":false,
"currency_name":"z",
"delivery_cold_untaxed":false,
"about_access_to_location":"",
"special_requests_online":true,
"min_items":0,
"custom_menus":[...],
"auto_bag_charge":0,
"cannot_order_with_empty_inventory":false,
"estimated_delivery_time":30,
"other_dining_option_details":null,
"favicon_image":"<REDACTED>",
"delivery_geojson":[...],
"online_order_start_time_offset":30,
"about_images":[...],
"about_description":"",
"accept_online_orders_when_store_is_closed":true,
"timetables":[...],
"allow_multiple_reward_redemptions_per_order":true,
"delivery_for_online_orders":true,
"delivery_post_code_lookup":[...],
"about_title":" ",
"use_custom_menus":true,
"eat_in_for_online_orders":true,
"payment_processor":{...},
"tax_country":"usa",
"hide_products_description":false,
"hide_images":false,
"pre_tip_label":"Online Tip",
"email":null,
"api_version":"2.17",
"prevailing_surcharge":0,
"type_of_service":2,
"distance_mearsure":"mi",
"enable_split_modifiers_full_price_charge":false,
"date_format":null,
"layout_style":0,
"order_notes_allow":true,
"brand":0,
"delivery_charges":[...],
"holidays":[...],
"time_format":"12 hour",
"phone":" ",
"online_orders":true,
"default_country":"LT",
"logo_img":"<REDACTED>",
"address":{...},
"max_delivery_distance":0,
"business_name":"Large Boar Meathouse",
"enable_marketing_opt_in_out":false,
"accept_discount_code":true,
"enable_split_modifiers":true,
"online_order_date_range":365,
"accept_tips_online":false,
"enable_asap_due_time":false,
"online_order_end_time_offset":30,
"google_maps_api_key":"<REDACTED>",
"suppress_student_identifier_popup":false,
"enable_reward_cards_collecting":true,
"online_order_time_slot":15,
"min_delivery_amount":0,
"time_zone":"Europe/Vilnius",
"shipping":true,
"color_scheme":"Blue & White",
"fb_app_id":"",
"online_credit_card_types":null,
"currency_symbol":"z",
"promo_message":null,
"enable_quantity_modifiers":null,
"show_modifiers_description":false,
"dining_options":[...],
"time_zone_offset":10800
}
}

Notes
Can be used to fetch opening hours, holidays and certain settings that impact the API ordering process.

Authentication
Before moving on to the next section, it is important to mention API authentication.
While endpoints in the /weborders/ namespace do not require any authentication methods, the
resources under the /specialresources/cart/ namespace do.

Unlike our regular API, the Weborder API does not allow authentication via URL parameters (i.e.
api_key & api_secret appended to the URL).
Instead, the API-AUTHENTICATION header is required. Here is how that looks like:
API-AUTHENTICATION: $API_KEY:$API_SECRET

When replacing the $API_KEY and $API_SECRET values with your own credentials, be mindful of
whitespace characters. Both “API-AUTHENTICATION” and “$API_KEY:$API_SECRET” are
uninterrupted strings with no whitespace characters.

Cart resources
Now, the other group of resources. This group is known as the “Cart resources” and it is focused
entirely on handling and submitting the cart you provide. Here is a list of endpoints part of this group:

Name Endpoint
Validate /specialresources/cart/validate/
Calculate /specialresources/cart/calculate/
Submit /specialresources/cart/submit/

NOTE: Both /validate/ and /calculate/ use near-identical functions and should be considered
functionally the same. There is no need to run the cart through both endpoints before
checkout.

Validate

Endpoint Required parameters


validate/ -
Purpose
Order validation
Fields
Field Meaning
final_total Order total after discounts, taxes, service fees, etc.
items Array of JSON objects representing order items.
items/product Product ID.
items/tax_amount Item tax amount, calculated by applying all applicable tax rates.
items/product_name_override Current product name.
items/price Current product price.
items/discounts Array of JSON objects representing applied discounts.
Flag. If set to False, the tax amount will be calculated from the full
items/discounts/taxed product price.
items/discounts/sum Discount amount.
Discount type. 0 - Flat amount, 1 - Percentage, 2 - Reprice, 3 -
items/discounts/type Alt. Price
items/discounts/name Discount name as it would appear on the receipt.
items/discount JSON object representing the applied discount total.
Flag. If set to True, indicates that the item is a combo and will
items/is_combo contain other product sets.
items/tax_rate Applied tax rate (percentage).
Array of JSON objects representing products added as part of the
items/combo_items combo.
Array of JSON objects representing modifiers added to the order
items/modifieritems item.
Modifier split status. 0 - Unsplit, 1 - Apply to first half, 2 - Apply to
second half.
items/modifieritems/qty_type Split status can affect modifier pricing with the right settings.
items/modifieritems/product_id ID of the product that the modifier is applying to.
items/modifieritems/modifier_cost Modifier cost (what the merchant pays to make it).
items/modifieritems/qty Applied modifier quantity.
items/modifieritems/modifier Modifier ID.
items/modifieritems/modifier_price Current modifier price per unit.
price_overrides Deprecated.
tax Total order tax amount.
discounts Sum of all discounts part of the order.
discounts_list Deprecated.
subtotal Order total before tax, discounts, service fees, etc.
surcharge Order surcharge total.
Example request
Target URL https://example.revelup.com/specialresources/cart/validate/
Request body {
"establishment":3,
"items":[
{
"price":3,
"product":48,
"quantity":1
},
{
"modifieritems":[
{
"modifier":9,
"modifier_price":8,
"qty":1,
"qty_type":0
}
],
"price":0,
"product":58,
"quantity":1
},
{
"price":100,
"product":683,
"quantity":1
},
{
"special_request":"Wrap separately",
"price":200,
"product":243,
"quantity":1,
"is_combo":true,
"products_sets":[
{
"id":3,
"name":"Meal",
"products":[
{
"price":2,
"product":60,
"quantity":2
}
]
},
{
"id":4,
"name":"Side",
"products":[
{
"price":48,
"product":82,
"quantity":3
}
]
}
]
}
],
"orderInfo":{
"created_date":"2019-09-18T01:20:39",
"pickup_time":"2019-09-18T01:45:00",
"dining_option":0,
"notes":"Add utensils",
"asap":false,
"customer":{
"phone":"4157441433",
"email":"[email protected]",
"first_name":"Revel",
"last_name":"Test"
},
"call_name":"Revel Test / Sep 18, 4:45am /
4157441433"
},
"paymentInfo":{
"tip":7.7,
"amount":333.3,
"transaction_id":"cn12saFj1lasTI22",
"type":7
},
"discount_code":"a"
}

Request headers Content-Type: application/json


API-AUTHENTICATION:
5h6j7k8l9a:q1w2e3r4t5y8o9p0a1s2d3f4g5h6j

Example response
{
"status":"OK",
"data":{
"final_total":333.3,
"items":[
{
"product":48,
"product_name_override":"Rare Steak",
"price":3.0,
"discounts":[
{
"taxed":true,
"sum":3.0,
"type":0,
"name":"Item Reward"
}
],
"is_combo":false,
"discount":{
"taxed":true,
"sum":3.0,
"type":0,
"name":"Item Reward"
}
},
{
"product":58,
"tax_amount":0.3,
"product_name_override":"Bugnet",
"price":0.0,
"discounts":[
{
"taxed":true,
"sum":5.0,
"type":0,
"name":"Item Reward"
}
],
"is_combo":false,
"tax_rate":10.0,
"discount":{
"taxed":true,
"sum":5.0,
"type":0,
"name":"Item Reward"
},
"modifieritems":[
{
"qty_type":0,
"product_id":58,
"modifier_cost":0,
"qty":1,
"modifier":9,
"modifier_price":8.0
}
]
},
{
"product":683,
"tax_amount":10.0,
"product_name_override":"Book of Combos - 1",
"price":100.0,
"discounts":[],
"is_combo":false,
"tax_rate":10.0
},
{
"product":243,
"tax_amount":20.0,
"product_name_override":"Survival Pack",
"price":200.0,
"discounts":[],
"is_combo":true,
"tax_rate":10.0,
"combo_items":[
{
"product_name_override":"Rare Fish",
"product":60,
"price":0.0,
"quantity":2
},
{
"product_name_override":"Potato Slices w/ Garlic Oil",
"product":82,
"price":48.0,
"quantity":3
}
]
}
],
"price_overrides":null,
"tax":30.30,
"discounts":8.0,
"discounts_list":[],
"subtotal":303.00,
"surcharge":0.0
}
}

Notes
This is essentially the same as /weborders/pre_validate/, though it requires authentication

Calculate

The ‘/specialresources/cart/calculate/’ endpoint functionality is identical to the Validate resource.


See that section for definition.

Submit

Endpoint Required parameters


submit/ -
Purpose
Order creation
Fields
Field Meaning
orderId ID of the submitted order in the Revel reports.
pickup_time Submitted order pickup time in the server timezone.
Value of current_points in the RewardsCard resource linked
reward_points to the customer.
balances/rewards/0 Current balance of purchase points in the linked reward card.
balances/rewards/1 Current balance of item points in the linked reward card.
balances/rewards/2 Current balance of visit points in the linked reward card.
balances/rewards_info/0/required Purchase points required for nearest loyalty discount.
balances/rewards_info/0/earned Purchase points earned for this order.
balances/rewards_info/1/required Item points required for nearest loyalty discount.
balances/rewards_info/1/earned Item points earned for this order.
balances/rewards_info/2/required Visit points required for nearest loyalty discount.
balances/rewards_info/2/earned Visit points earned for this order.
customer/phone Phone number of the customer linked to the order.
customer/first_name First name of the customer linked to the order.
customer/last_name Last name of the customer linked to the order.
customer/email Email of the customer linked to the order.
created_date Server-side order creation timestamp.
checkout/notes Order notes.
checkout/dining_option Order dining option.
checkout/asap Flag that shows if the order was submitted as ASAP.
Example request
Target URL https://example.revelup.com/specialresources/cart/submit/
Request body {
"establishment":3,
"items":[
{
"price":3,
"product":48,
"quantity":1
},
{
"modifieritems":[
{
"modifier":9,
"modifier_price":8,
"qty":1,
"qty_type":0
}
],
"price":0,
"product":58,
"quantity":1
},
{
"price":100,
"product":683,
"quantity":1
},
{
"special_request":"Wrap separately",
"price":200,
"product":243,
"quantity":1,
"is_combo":true,
"products_sets":[
{
"id":3,
"name":"Meal",
"products":[
{
"price":2,
"product":60,
"quantity":2
}
]
},
{
"id":4,
"name":"Side",
"products":[
{
"price":48,
"product":82,
"quantity":3
}
]
}
]
}
],
"orderInfo":{
"created_date":"2019-09-18T01:20:39",
"pickup_time":"2019-09-18T01:45:00",
"dining_option":0,
"notes":"Add utensils",
"asap":false,
"customer":{
"phone":"4157441433",
"email":"[email protected]",
"first_name":"Revel",
"last_name":"Test"
},
"call_name":"Revel Test / Sep 18, 4:45am /
4157441433"
},
"paymentInfo":{
"tip":7.7,
"amount":333.3,
"transaction_id":"cn12saFj1lasTI22",
"type":7
},
"discount_code":"a"
}

Request headers Content-Type: application/json


API-AUTHENTICATION:
5h6j7k8l9a:q1w2e3r4t5y8o9p0a1s2d3f4g5h6j

Example response
{
"status":"OK",
"orderId":45788,
"pickup_time":"11/11/2019 06:23",
"reward_points":0.0,
"balances":{ },
"customer":{
"phone":"4157441433",
"first_name":"Revel",
"last_name":"Test",
"email":"[email protected]"
},
"created_date":"11/11/2019 06:08",
"total":113.3,
"checkout":{
"notes":"Add utensils",
"dining_option":0,
"asap":true
}
}

Notes
-

Cart resource request fields


Here is a list of fields accepted by the cart validator:
Field name (* - required) Type Description
Location identifier. Will determine which location the
establishment* Integer order will be submitted to.
items* Array Array of order items to be added to the order.
Array of modifiers to add to an order item. Optional,
items/modifieritems Array unless minimum modifier quantities are enforced.
Modifier identification by resource ID. Mandatory if no
items/modifieritems/modifier Integer barcode or sku fields present.
Modifier identification by sku field. Mandatory if no
items/modifieritems/sku String barcode or modifier fields present.
Modifier identification by barcode field. Mandatory if
items/modifieritems/barcode String no sku or modifier fields present.
Full modifier price per unit. Must always match the
items/modifieritems/modifier_price* Float menu price.
Full modifier cost per unit. Must always match the
items/modifieritems/modifier_cost Float menu cost.
Modifier quantity. Must adhere to minimum and
items/modifieritems/qty* Integer maximum values set in menu configuration.
Modifier split type. 0 - No split, 1 - Apply only to first
half, 2 - Apply only to second half. Halved modifiers
items/modifieritems/qty_type Integer charge half price.
Modifier price threshold for which the customer will
items/modifieritems/free_mod_price Integer not be charged.
Adjustable text that appears on the POS and the
items/special_request String kitchen receipt.
Product identification by resource ID. Mandatory if no
items/product Integer barcode or sku fields present.
Product identification by SKU. Mandatory if no
items/sku String barcode or product fields present.
Product identification by barcode. Mandatory if no
items/barcode String product or sku fields present.
items/price* Float Order item price per unit. Must match full menu price.
items/quantity* Integer Order item quantity.
Item weight. Used as a quantity field for weighted
items. When using this field, quantity should not be
items/weight Float provided.
Combo type enumerator. 0/null - Not a combo, 1 -
items/is_combo Integer Group combo, 2 - Split combo.
Upsell combo flag. If set to True, the products_sets
array may be added to turn the item into an upsell
items/has_upsell Boolean combo.
Array of items to be added to the combo. Only parsed
if is_combo is > 0 or has_upsell is true.
All combos must be pre-configured before items can
items/products_sets Array be added to the sets.
Product set ID. Matches a unique identifier of either a
DynamicComboUpsellSlot or a ComboProductSet
items/products_sets/id* Integer resource, depending on the type of combo.
items/products_sets/name* String Product set name. Must match the name of the
combo set provided in the ID.
Array of products to be included in the combo set.
Has the same properties as the items array and
items/products_sets/products* Array accepts the same fields.
Flag used to differentiate shipping items. Items with
this flag will have the “Shipping” dining option applied
items/is_shipping Boolean regardless of the order dining option.
If the product being sold is under the special Gift
class, the full product price will be added to the
specified gift card total. Only existing gift cards can be
items/gift_card_number String provided here.
orderInfo* Object Object that contains most of the order-level data.
Order dining option. Determines how the order will be
printed on the POS and which discounts/service fees
the order qualifies for.
Values are as follows:
0 - To Go
1 - Eat In
2 - Delivery
3 - Catering Delivery
4 - Drive Through (Editable)
5 - Online
6 - Other (Editable)
orderInfo/dining_option* Integer 7 - Shipping
ISO8601 timestamp that specifies when the order is
orderInfo/pickup_time String to be picked up by the customer.
Flag that overrides the pickup_time with an
automatically generated timestamp. The timestamp is
set to the current time, plus the estimated order
preparation time specified in the online ordering
orderInfo/asap Boolean configuration.
The customer object that helps the system link a
Customer resource to the order. In case no match is
found, a new customer is created. Required for
orderInfo/customer Object certain dining options.
orderInfo/customer/first_name String Customer’s first name.
orderInfo/customer/last_name String Customer’s last name.
Customer’s phone number (can contain symbols and
orderInfo/customer/phone String letters).
orderInfo/customer/email String Customer’s email.
Customer’s address object. Used in delivery and
orderInfo/customer/address Object shipping validation.
orderInfo/customer/address/street_1 String The first line of the customer’s address.
The second line of the customer’s address (not
validated, can be used to store superficial information
orderInfo/customer/address/street_2 String about the area)
orderInfo/customer/address/city String The city where the customer is located.
orderInfo/customer/address/state String The state where the customer is located.
orderInfo/customer/address/country String The country where the customer is located.
orderInfo/customer/address/zipcode String The postal code of the customer’s location.
Free text field used to store the customer’s alias. Can
be used to provide other useful information to the
orderInfo/call_name String cashiers, such as the order pickup time.
orderInfo/notes String Order notes to be printed in the kitchen.
Designated order call number. Used only if the call
orderInfo/call_number String number feature is enabled and set up.
Arbitrary order ID field. Typically used to store the
order ID from the integration side for easier
orderInfo/local_id String cross-platform lookup.
Object containing reward card data for point collection
orderInfo/rewards_card Object and redemption.
Number that determines the type of reward points
used.
1 - Item points
2 - Visit points
orderInfo/rewards_card/redemption Integer 3 - Purchase points
orderInfo/rewards_card/number String Number of the reward card to link to the order.
orderInfo/shipping Object Object that specifies the shipping service.
Code of the shipping service to be used. Each
orderInfo/shipping/service_code String shipment company has their own unique codes.
Shipping company to be used.
0 - Unknown
1 - UPS
2 - FedEx
3 - ShipCompliance
orderInfo/shipping/shipment_company String 4 - Revel Shipping (not implemented)
Object that contains the payment information. If not
included, the order is considered “Pay at store” by
paymentInfo Object default.
Payment type. Most types make certain fields
mandatory.
1 - PayPal Mobile (deprecated)
2 - Credit (Integrated CC payment)
3 - PayPal (deprecated)
4 - Pay at store
5 - Gift Card
6 - Stanford Student Card
7 - CreditPlus (Non-integrated CC payment)
8 - Stripe ApplePay (deprecated)
paymentInfo/type* Integer 200 and up - Custom payments
Payment amount. It is recommended to
validate/calculate the order before submitting so that
this field could be accurately populated. Mandatory
paymentInfo/amount Float for payment types 5, 7 & 200+
Tip to be included with the payment.
Tip is applied on top of the amount. Mandatory for
paymentInfo/tip Float payment types 7 & 200+
Free text field used for providing a unique identifier to
the payment. Unique values are recommended to
prevent reporting issues. Mandatory for payment
paymentInfo/transaction_id String types 7 & 200+
paymentInfo/cardInfo Object Object containing all the credit card info. If at least
one property (except cardNumber) is included, all
other properties must be provided as well.
Intended to hold the full (masked) credit card number.
This is also where the gift card number should be
paymentInfo/cardInfo/cardNumber String specified when payment type 5 is used.
First four digits of the credit card. If payment type is 2
paymentInfo/cardInfo/firstDigits String or 7, this is used to identify the card BIN.
paymentInfo/cardInfo/lastDigits String Last four digits of the credit card.
paymentInfo/cardInfo/firstName String Card holder first name.
paymentInfo/cardInfo/lastName String Card holder last name
Field for providing a discount code. Orders with a
discount code should be submitted to the
validate/calculate endpoint first to ensure the total is
discount_code String correct.
serviceFees Array Array of dynamic service fees to apply to the order.
ID of the ServiceFee resource. Will apply the
serviceFees/id Integer specified fee to the order.
serviceFees/alias String Name of the service fee, as it appears in Revel.
Flat amount that should be charged by the applied
serviceFees/amount Float service fee.
discounts Array Array of dynamic discounts to be applied to the order.
Values provided here will be looked up in the discount
list for to apply a discount with a matching barcode.
discounts/barcode String Works similar to discount_code.
discounts/amount Integer Flat amount to be discounted from the order total.
Array of recipients for the online ordering receipt.
notifications Array Receipt can be customized with a custom template.
Platform from which the order was submitted.
Determines the layout of the receipt.
“weborder” - default online ordering page
“retail” - retail-oriented online ordering page
notifications/skin String “mobile” - mobile online ordering page
Type of notification to send.
“email” - E-mail receipt
“sms” - SMS notification (requires Twilio integration)
notifications/type String SMS notifications only work for failed orders.
Free text field that determines where the notification
will be sent. If type is “email”, this should be an email
address. Likewise, if type is “sms”, this should be an
notifications/destination String unformatted phone number.

Note that all fields that contain timestamps use the default server timezone.
To specify a custom timezone, the X-Use-TZ header should be used (e.g. X-Use-TZ: UTC).
Only valid timezones from the tz database are accepted.

Common error codes


While the Weborder API does have traditional HTTP error codes, most error handling is done by
internal cart validators. All errors handled by the internal cart validators will return HTTP status 200
(OK), despite not successfully creating an order. Therefore, the “status” property in the response
body should be trusted instead of the HTTP status code itself.
Here is a list of HTTP error codes not handled by the internal cart validators:

401 (Unauthorized) - Usually caused by a failure to authenticate (missing or invalid


API-AUTHENTICATION header).

403 (Forbidden) - Returned when accessing online ordering resources for a location that
does not have online ordering enabled.

404 (Not Found) - Returned when the specified URL could not be found. Typically involves a
malformed URL.

429 (Unknown Status Code) - Returned when the daily API request counter exceeds the
pre-set limit. All further API requests should be halted until the next day.

Below is a table of status codes thrown by the internal Weborder API validators, along with a verbose
description of what the error may be. Some codes will have additional notes added where the error
message may not be sufficient:

“errorMsg” (‘$’ indicates


“status” variables) Notes
Unfortunately all time slots
are busy for today. Please
ALL_TIME_SLOTS_BUSY select different day. -
If ASAP pickup time is
selected and the time slot has
reached the maximum amount
of orders, this status code is
provided. Try setting "asap" to
false and providing a pickup
ASAP_TIME_SLOT_BUSY - time further in the future.
This is usually displayed when
a variable service fee is
BAD_REQUEST Bad Request applied with an invalid amount.
Following billing address
BILLING_ADDRESS_FIELDS_EM mandatory fields are empty:
PTY $missed -
Quantity of items in the
CART_ITEM_MAX_QTY_EXCEEDE cart exceeds maximum of
D 499500 items per order. -
Product set with the specified
ID does not exist. Try checking
the /product_sets/ endpoint to
COMBO_PRODUCT_SET_NOT_FOU Combo Product Set confirm the available sets for
ND ($set_name) does not exist. the chosen product.
Product set with the specified
barcode does not exist. Try
checking the /product_sets/
Combo Product Set endpoint to confirm the
COMBO_PRODUCT_SET_WITH_BA ($set_name) with barcode () available sets for the chosen
RCODE_NOT_FOUND does not exist. product.
Product set with the specified
ID does not exist. Try checking
the /product_upcharge/
endpoint to confirm the
Combo Slot ($slot_name) does available slots for the chosen
COMBO_SLOT_NOT_FOUND not exist. product.
Product set with the specified
barcode does not exist. Try
checking the
Combo Slot ($slot_name) with /product_upcharge/ endpoint
COMBO_SLOT_WITH_BARCODE_N barcode ($barcode) does not to confirm the available slots
OT_FOUND exist. for the chosen product.
Dining option can not be Missing "dining_option"
DINING_OPTION_BLANK blank. property under "orderInfo".
If no discount code should be
added to the order, the
property should be excluded
from the request body. Empty
DISCOUNT_CODE_IS_EMPTY - strings will cause this error.
DISCOUNT_CODE_IS_NOT_ALLO "discount_code" property is not
WED_WITH_VARIABLE_DISCOUN allowed in request body if the
T - "discounts" array is present.
Discount stacking rules should
DISCOUNT_CODE_NOT_APPLICA be checked to ensure no
BLE - discounts overlap.
If the discount code is
single-use, the code may
DISCOUNT_CODE_NOT_FOUND - already have been redeemed.
Discount ID could not be
matched to an existing
Discount resource. Make sure
DISCOUNT_ID_IS_INCORRECT - the correct ID is used.
Discount array is empty. If no
variable discount should be
applied, please exclude the
DISCOUNT_IS_EMPTY - array from the request body.
Discount configuration is
invalid. Please review variable
discount documentation to
DISCOUNT_IS_NOT_VARIABLE - make sure the setup is correct.
DYNAMIC_DISCOUNT_AMOUNT_I Dynamic discount amount
S_NOT_A_NUMBER '$amount' is not a number. -
Dynamic discount with
barcode
'$dynamic_discount.barcode'
applied amount
DYNAMIC_DISCOUNT_AMOUNT_M '$applied_amount' different
ISMATCHES_APPLIED_DISCOUN than expected amount
T_AMOUNT '$expected_amount'. -
DYNAMIC_DISCOUNT_AMOUNT_M Dynamic discount amount
UST_BE_AT_MOST_TWO_DECIMA '$amount' must be at most 2
L_PLACES decimal places. -
DYNAMIC_DISCOUNT_AMOUNT_M Dynamic discount amount
UST_BE_POSITIVE '$amount' must be positive. -
DYNAMIC_DISCOUNT_AMOUNT_M Dynamic discount amount must
UST_BE_PROVIDED be provided. -
DYNAMIC_DISCOUNT_BARCODE_ Dynamic discount barcode
MUST_BE_A_STRING must be a string. -
DYNAMIC_DISCOUNT_BARCODE_ Dynamic discount barcode not
NOT_PROVIDED provided. -
Dynamic discount for barcode
'$discount.barcode' provided
DYNAMIC_DISCOUNT_DISCOUNT amount must be the
_AMOUNT_MUST_MATCH_CONFIG same as configured discount
URED_DISCOUNT_AMOUNT amount. -
Dynamic discount for barcode
'$discount.barcode' must be
DYNAMIC_DISCOUNT_DISCOUNT configured to have 'Auto
_CANT_BE_AUTO_APPLY Apply': Unchecked. -
Dynamic discount for barcode
'$discount.barcode' must be
DYNAMIC_DISCOUNT_DISCOUNT configured to have 'Discount
_TYPE_MUST_BE_AMOUNT Type': Amount. -
Dynamic discount for barcode
'$discount.barcode' must be
DYNAMIC_DISCOUNT_MUST_BE_ configured as an order level
ORDER_LEVEL discount. -
DYNAMIC_DISCOUNT_NOT_FOUN Dynamic discount for barcode
D '$barcode' not found. -
Provided dynamic discounts
DYNAMIC_DISCOUNTS_MUST_BE must be iterable or not
_ITERABLE provided. -
Generic message usually
returned when a required
ERROR $entity_name property is missing.
Establishment is not found
ESTABLISHMENT_NOT_FOUND or inactive. -
Make sure the "establishment"
ESTABLISHMENT_NOT_SPECIFI property is included in the
ED Establishment is required. request body.
Generic message that
indicates a missing property.
$entity_name "$field_name" See required fields in the Cart
FIELD_IS_REQUIRED field is required. resource request fields table.
Generic message that
indicates an incorrect value
$entity_name "$field_type" type. Make sure the correct
FIELD_TYPE_INVALID field type invalid. data format is provided.
Gift card $card_number does
GIFT_CARD_NOT_FOUND not exist! -
$product_name - Required modifier class is
$modifier_class_name missing from the
INCORRECT_MODIFIER_QTY modifier class is required. "modifieritems" array.
$product_name -
$modifier_class_name
modifier class quantity
should be not less than
INCORRECT_MODIFIER_QTY $minimum_amount. -
$product_name -
INCORRECT_MODIFIER_QTY $modifier_class_name -
modifier class quantity
should be not greater than
$maximum_amount.
Incorrect number of products
INCORRECT_PRODUCT_NUMBER_ ($num_of_prods) selected Not enough products selected
SELECTED_FROM_SET from ($slot.name) set from group combo set.
Incorrect number of products
INCORRECT_QTY_OF_PRODUCTS ($num_of_prods) selected Not enough products selected
_SELECTED_FROM_SET from ($set_name) set from upsell combo set.
Wrong customer data:
INVALID_CUSTOMER_DATA $customer_form.errors -
Error is exclusive to payment
INVALID_PAYMENT_METHOD Invalid payment method type 8.
This pickup/delivery/due
INVALID_PICK_UP_TIME time is not available. -
Invalid cardinal dollar
reload amount. Amount cannot Error is exclusive to payment
INVALID_RELOAD_AMOUNT include cents type 8.
Item Check the online ordering
($product_name_override) custom menu to make sure the
ITEM_IN_ORDER_NOT_AVAILAB from selected order is not item availability is configured
LE available now correctly.
Order item quantity should not
exceed 999. Restriction does
$product_name quantity not apply to item weight, so
exceeds maximum of 999 items higher volume items should
ITEM_MAX_QTY_EXCEEDED per item. use weight instead.
MANUALLY_APPLIED_DISCOUNT
_COULD_NOT_BE_APPLIED - -
We apologize. The maximum
value per order is
$settings.max_transaction_va
lue.
Please adjust your
MAX_VALUE_PER_ORDER_EXCEE selections and resubmit the
DED order. -
Please add
$(min_delivery_amount -
MIN_DELIVERY_AMOUNT subtotal) more for delivery -
You must select at least
$min_items items to place an Restriction only applies to
MIN_ITEMS_LIMIT order! dining option 5.
Modifier
MODIFIER_IDENTIFIER_REQUI modifier/barcode/sku field
RED is required. -
Following product modifiers
are not available, please do
MODIFIER_NOT_AVAILABLE a re-order: $validation_msg -
Modifier is not found or
MODIFIER_NOT_FOUND inactive. -
Modifier ($search) does not Modifier lookup by ID, SKU or
MODIFIER_NOT_FOUND exist. barcode failed.
Modifier can't be No "modifier", "barcode" or
identified. Please provide "sku" field was provided in the
MODIFIER_NOT_IDENTIFIED either id, barcode or sku. "modifieritems" object.
MORE_THAN_ONE_DYNAMIC_DIS More than one dynamic Duplicate discount barcodes
COUNT_PROVIDED_FOR_SINGLE discount provided for single exist. Please re-configure the
_BARCODE barcode '$barcode'. discounts in question.
Error shown when Pay at store
is disabled and no other
NO_PAYMENT_DATA No payment data. payment type is provided.
Error shown when Pay at store
is disabled and the
"paymentInfo" object is
NO_PAYMENT_INFO_PROVIDED paymentInfo is required missing.
Product ($product.name) is
NO_SELECTED_PRODUCTS_IN_C combo, but has no selected Item is missing the
OMBO products inside "product_sets" array.
Maximum number of orders has
been placed for this time.
Please select a different
ORDERS_PICK_UP_TIME_LIMIT time. -
PRODUCT_BARCODE_SKU_NOT_P Product/Barcode/SKU is
ROVIDED required. -
Only specific products can be
Product ($set_item.name) selected in a given product set,
PRODUCT_DOES_NOT_BELONG_T does not belong to defined in the combo
O_SET ($set_name) set configuration.
PRODUCT_IDENTIFIER_REQUIR Product product/barcode/sku
ED field is required. -
PRODUCT_MODIFIER_NOT_FOUN Product Modifier for
D $modifier not found -
Should never be applicable, as
product name is now a
Product name can not be mandatory field during product
PRODUCT_NAME_EMPTY empty configuration.
The "is_combo" property
Product ($product.name) is should be set to false for the
PRODUCT_NOT_COMBO not combo specified product.
Product ($product_id) does
PRODUCT_NOT_FOUND not exist. -
PRODUCT_NOT_FOUND_OR_INAC Product is not found or
TIVE inactive. -
Only specific products can be
Product ($upsell_item.name) selected in a given combo slot,
does not belong to defined in the upsell combo
PRODUCT_NOT_IN_SET ($slot_name) set configuration.
Quantity for products cannot
be negative, please do a
PRODUCT_QTY_NEGATIVE reorder. -
Quantity for products cannot
PRODUCT_QTY_ZERO be 0, please do a reorder. -
PRODUCT_QUANTITY_VALUE_NO Quantity value is required. -
T_PROVIDED
Weight for products cannot
be negative, please do a Only applicable to weighted
PRODUCT_WEIGHT_NEGATIVE reorder. products.
PRODUCT_WEIGHT_VALUE_NOT_ Only applicable to weighted
PROVIDED Weight value is required. products.
Weight for products cannot Only applicable to weighted
PRODUCT_WEIGHT_ZERO be 0, please do a reorder. products.
Product with barcode
PRODUCT_WITH_BARCODE_NOT_ ($product_barcode) does not
FOUND exist. -
PRODUCTS_INSUFFICIENT_STO
CK - Insufficient product inventory.
PRODUCTS_NOT_AVAILABLE_FO $product.name is not
R_SELECTED_TIME available for selected time. -
PROVIDED_DYNAMIC_DISCOUNT Provided dynamic discount
_MUST_BE_AN_OBJECT must be an object. -
Only applicable if reward
REDEMPTION_MULTI_REWARDS_ Redemption of multiple redemption is limited in the
NOT_SUPPORTED rewards is not supported settings.
Service fee amount cannot be
SERVICE_FEE_INVALID_AMOUN negative or bigger than
T 10000 -
Invalid set ID specified. Try
checking the /product_sets/
SET_DOES_NOT_BELONG_TO_PR Set ($set_name) does not endpoint to see available
ODUCT belong to product ($product) product sets.
SEVERAL_OVERRIDES_FOUND_F Several overrides found for
OR_SERVICE_FEE service fee [id = $sf_id]. -
Shipping orders require a
No address for shipping customer address to be
SHIPPING_NO_ADDRESS order. attached.
Shipping charge could not be
SHIPPING_NO_CHARGE Shipping charge not found calculated.
No customer for shipping The "customer" object is
SHIPPING_NO_CUSTOMER order. mandatory for shipping orders.
No shipping info provided Shipping orders require a
SHIPPING_NO_INFO for shipping order. "shipping_info" object.
No service_code provided for Shipping info objects require a
SHIPPING_NO_SERVICE_CODE shipping order. service code to be specified.
Shipping service provider must
SHIPPING_NO_SERVICE_SELEC No shipping service be provided under shipping
TED selected. info.
SHIPPING_OPTION_NOT_SUPPO This establishment does not
RTED support shipping option. -
Invalid slot ID specified. Try
Slot ($slot.name) does not checking the
SLOT_DOES_NOT_BELONG_TO_C belong to combo /product_upcharge/ endpoint
OMBO ($dynamic_combo.name) to see available product slots.
We're sorry, your order Location timetable
cannot be processed because configuration may be invalid or
STORE_IS_CLOSED the store is closed out of date.
The location does not have
This establishment does not any POS stations. At least one
WEB_ORDERING_NOT_SUPPORTE support Web ordering. No POS station is required to take
D stations associated. online orders.
Wrong address data: Customer address validation
WRONG_ADDRESS_DATA $address_form.errors failure.

You might also like