Skip to main content

POSRequest Actions

DATABASE

The DATABASE action returns the current database for the site. Errors are not possible for this request.

Note

This request may take up to six (6) minutes to process.

DATABASE Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="DATABASE" terminal="50" vendor="Kiosk"> </POSRequest>

DATABASE Elements

The POSResponse element for a DATABASE action includes following elements:

Products

Summary

The Products element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

plu

number

The product number

name

13 character limit

The product name

price

number

The product price in cents

category

number

The product category number used to group and validate items, for meals and substitution items.

Category 60 is reserved for non-food items such as promotional items or toys.

misc-flag

bitmap field

The available options are as follows:

  • Bit2 - non-discountable item

  • Bit4 - print receipt if item included

qualifier_requirements

number

The value of qualifiers needed before an item can be included in the order. The item amount/limit 2 qualifiers must be included with this item to equal this value. For example, an 8 piece chicken needs 2 small sides.

The qualifier_value of the qualifiers must equal this value before the item can be included in the order.

qualifier_value

number

The default qualifier value

reference1

number

The price look up (PLU) number of the associated value meal. Allows a selected item to be made into a specific meal. For example, make it a meal.

recipe

number, 1-500

The recipe number linked to item. A recipe may link to other recipes.

long_name

30 character limit

The alternate product name

kiosk_name

20 character limit

The kiosk name. The default name.

unavailable

number, 0 or 1

The available options are as follows:

  • 0 - item available for sale

  • 1 - item not available for sale

has_button

number, 0 or 1

The available options are as follows:

  • 0 - item not available for sale, button removed

  • 1 - item available for sale, button assigned to item

Product Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSResponse Type="DATABASE" POSVersion="3.01" time="1141155423"> <DataBase>    <Products>       <Product plu="1164" name="SM CHZ TATER" price="179" category="30"  misc_flag="0" qualifier_requirements="0" qualifier_value="0"  reference1="0" recipe="43" long_name="SM CHEESE TATER TOT"  kiosk_name="" unavailable="0" has_button="1"/>       <Product plu="1180" name="COOKED WIENER" price="50" category="1"  misc_flag="0" qualifier_requirements="0" qualifier_value="0"  reference1="0" recipe="48" long_name="" kiosk_name=""  unavailable="0" has_button="1"/> ...    </Products>

Qualifiers

Summary

The Qualifiers element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

plu

number

The product number

name

13 character limit

The product name

price

number

The product price in cents

category

number

The product category number used to group and validate items, for meals and substitution items.

Category 60 is reserved for non-food items such as promotional items or toys.

misc-flag

bitmap field

  • Bit2 - non-discountable item

  • Bit4 - print receipt if item included

qualifier_type

number

For more information, see qualifier_type

qualifier_value

number

The default qualifier value

reference1

number

The price look up (PLU) number of the associated value meal. Allows a selected item to be made into a specific meal. For example, make it a meal.

long_name

30 character limit

The alternate product name

kiosk_name

20 character limit

The kiosk name. The default name.

unavailable

number, 0 or 1

The available options are as follows:

  • 0 - item available for sale

  • 1 - item not available for sale

has_button

number, 0 or 1

The available options are as follows:

  • 0 - item not available for sale, button removed

  • 1 - item available for sale, button assigned to item

qualifier_type

Type

Description

20

Non-inventory

21

Plain

22

Only

23

No/Minus

24

Light

25

Light All

26

Heavy/Extra

27

Heavy All

28

Plus/With/Extra

32

Only (Recipe)

33

No (Recipe)

34

Light (Recipe)

36

Heavy/Extra (Recipe)

38

Plus/With (Recipe)

Qualifiers Example

. . . <Qualifiers>    <Qualifier plu="9025200" name=" xtra salt" price="0" category="55"  misc_flag="0" qualifier_type="0" qualifier_value="0" reference1="274"  long_name="" kiosk_name="" unavailable="0"  has_button="1"/>    <Qualifier plu="9000000" name=" plain" price="0" category="55"  misc_flag="0" qualifier_type="0"  qualifier_value="0" reference1="0"  long_name="" kiosk_name="" unavailable="0" has_button="1"/> . . . </Qualifiers>

Discounts

Summary

The Discounts element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

plu

number

The product number

name

13 character limit

The discount name

price

number

The product price in cents

misc-flag

bitmap field

Bit4. The point-of-sale (POS) device prints the receipt if the item is included.

upper_limit

number

Type 15 (cents off discount) discounts. The maximum amount in United States (US) dollars.

lower_limit

number

Type 15 (cents off discount) discounts. The minimum amount in US dollars.

discount_type

number

Indicates the type of discount. The valid types are as follows:

  • 3 = Value Meal Discount - Applies to Type 18 Value Meal only with the order (% or $)

  • 4 = Item Discount (% or $)

  • 9 = Order Discount - Applies to all items within the order (% or $). A Type 18 item cannot be discounted.

  • 15 = Cents Off Discount

long_name

30 character limit

The alternate product name

kiosk_name

20 character limit

The kiosk name. The default name.

unavailable

number, 0 or 1

The available options are as follows:

  • 0 - item available for sale

  • 1 - item not available for sale

has_button

number, 0 or 1

The available options are as follows:

  • 0 - item not available for sale, button removed

  • 1 - item available for sale, button assigned to item

Discounts Example

<Discounts> <Discount plu="30000002" name="SENIOR 10%" price="10" misc_flag="0" upper_limit="0" lower_limit="0" discount_type="0" long_name="" kiosk_name=" " unavailable="0" has_button="1"/> <Discount plu="30000011" name="PROMO" price="100" misc_flag="0" upper_limit="0" lower_limit="0" discount_type="0" long_name="" kiosk_name=" " unavailable="0" has_button="1"/> <Discount plu="30000005" name="50% CREW" price="50" misc_flag="0" upper_limit="0" lower_limit="0" discount_type="0" long_name="" kiosk_name=" " unavailable="0" has_button="1"/> . . . </Discounts>

OrderPercentDiscounts

Summary

The OrderPercentDiscounts element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

plu

number

The product number

name

13 character limit

The order percent discount name

value

number

The percentage (%) discount to apply

misc-flag

bitmap field

Bit4. The point-of-sale (POS) device prints the receipt if the item is included.

long_name

30 character limit

The alternate product name

kiosk_name

20 character limit

The kiosk name. The default name.

unavailable

number, 0 or 1

The available options are as follows:

  • 0 - item available for sale

  • 1 - item not available for sale

has_button

number, 0 or 1

The available options are as follows:

  • 0 - item not available for sale, button removed

  • 1 - item available for sale, button assigned to item

OrderPercentDiscounts Example

<OrderPercentDiscounts> <OrderPercentDiscount plu="30000006" name="100% MANAGER" value="100" misc_flag="0" long_name="" kiosk_name="" unavailable="0" has_button="1"/> . . . </OrderPercentDiscounts>

Tenders

Summary

The Tenders element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

plu

number

The product number

name

13 character limit

The product name

value

number

The percentage (%) discount to apply

reference

Not used

class_code

number

The price look up (PLU) number of tender from which to give change.

For example, the order is $3.50 and $5.00 is tendered in cash. If giving cash as change, the PLU for cash would be in this field. If the same order is paid with a credit card (and cash back is permitted), the PLU for cash would also be in this field. $5.00 would go into the credit bucket and $1.50 would be removed from the cash bucket.

long_name

30 character limit

The alternate product name

kiosk_name

20 character limit

The kiosk name. The default name.

Tenders Example

<Tenders> <Tender plu="30000000" name="CASH" value="0" reference="0" class_code="1" long_name="" kiosk_name=""/> <Tender plu="30004000" name="Credit" value="0" reference="48" class_code="15" long_name="Credit Card (SICOM)" kiosk_name=""/> <Tender plu="30004002" name="MasterCard" value="0" reference="0" class_code="0" long_name="MasterCard" kiosk_name=""/> <Tender plu="30000030" name="Credit Card" value="0" reference="0" class_code="15" long_name="" kiosk_name=""/> <Tender plu="30000003" name="Gift Cert Red" value="1" reference="0" class_code="4" long_name="" kiosk_name=""/> <Tender plu="30004001" name="Visa" value="0" class_code="0" long_name="Visa" kiosk_name=""/> <Tender plu="30004003" name="Discover" value="0" reference="0" class_code="0" long_name="Discover" kiosk_name=""/> <Tender plu="30004004" name="American Expr" value="0" reference="0" class_code="0" long_name="American Express kiosk_name=""/> <Tender plu="40001000" name="GC CASHOUT" value="0" reference="0" class_code="4" long_name="" kiosk_name=""/> <Tender plu="40001001" name="GC ISSUE" value="0" reference="0" class_code="10" long_name="" kiosk_name=""/> <Tender plu="40001002" name="GC REDEEM" value="0" reference="0" class_code="4" long_name="" kiosk_name=""/> <Tender plu="40001003" name="GC RECHARGE" value="0" reference="0" class_code="10" long_name="" kiosk_name=""/> </Tenders>

Destinations

Summary

The Destinations element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

name

13 character limit

The destination name

abbreviation

2 character limit

The destination's abbreviated name

number

number

The destination number, which is used when placing an order

plu

number

The product number

Destinations Example

<Destinations> <Destination name="EAT IN" abbreviation="EI" number="1" plu="20000002"/> <Destination name="TAKE OUT" abbreviation="TO" number="2" plu="20000003"/> <Destination name="DRIVE THRU" abbreviation="DT" number="3" plu="20000004"/> <Destination name="DELIVERY" abbreviation="DL" number="4" plu="19999998"/> <Destination name="MOBILE PICK UP" abbreviation="PU" number="5" plu="19999997"/> </Destinations>

ValueMeals

Summary

The ValueMeals element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

name

13 character limit

The value meal name

price

number

The amount of the meal with included items

category

number

The value meal category number

coupon_required

number, 0 or 1

If 1, a coupon is required to obtain this meal

class_code

Not used

long_name

30 character limit

The alternate product name

kiosk_name

20 character limit

The kiosk name. The default name.

unavailable

number, 0 or 1

The available options are as follows:

  • 0 - item available for sale

  • 1 - item not available for sale

has_button

number, 0 or 1

The available options are as follows:

  • 0 - item not available for sale, button removed

  • 1 - item available for sale, button assigned to item

qty

number

The quantity of the price look up (PLU) to include in the meal

substitution_flag

number

For more information, see substitution_flag

substitution_restriction

number

If 1, the substitution cannot be any item priced more than the PLU listed. A substitution may be permissible with an item at a lower price.

plu

number

The product number of item included in the meal

substitution_flag

Type

Description

0

Item can be substituted

1

Item may not be substituted. It must be the PLU listed below

2/8

The item must be substituted. For example, the item may be "select drink." It is a placeholder for the meal but must be replaced with an item in the same sales category.

3

Optional side, suppress if not substituted

4

Allow substitution, cannot be upsized

5/9

Must substitute, cannot be upsized

6

Allow substitution, can be upsized only if the whole meal is upsized

7/10

Must substitute, can be upsized only if the whole meal is upsized

ValueMeals Example

<ValueMeals> <ValueMeal plu="30001078" name="COMBO-KID CHI" price="299" category="18" coupon_required="0" class_code="0" long_name="" kiosk_name"" unavailable="0" has_button="1"> <ValueMealItem qty="1" substitution_flag="1" substitution_restriction="0" plu="1078"/> <ValueMealItem qty="1" substitution_flag="1" substitution_restriction="1" plu="1500"/> <ValueMealItem qty="1" substitution_flag="0" substitution_restriction="1" plu="70500"/> </ValueMeal> <ValueMeal plu="30001127" name="#4 LARGE" price="568" category="18" coupon_required="0" class_code="0" long_name="#4 LARGE WJUMBO ALL BEEF" kiosk_name"" unavailable="0" has_button="1"> <ValueMealItem qty="1" substitution_flag="1" substitution_restriction="0" plu="1005"/> <ValueMealItem qty="1" substitution_flag="0" substitution_restriction="0" plu="1502"/> <ValueMealItem qty="1" substitution_flag="0"substitution_restriction="0" plu="70503"/> </ValueMeal> </ValueMeals>

TaxPLUs

Summary

It is important to scan for Tax PLUs. For each Tax PLU, look up the tax_bucket[x] it references. The accumulated value of the bucket is run against the referenced tax_table.

The TaxPLUs element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

plu

number

The product number

name

13 character limit

The tax name

value

number

Not used

tax_bucket

number

The bucket on which to calculate the tax

tax_table

number

The tax table algorithm to use.

special_instructions

number

If 1 and the destination is 2 or 3, use tax bucket 1.

If 98 and the destination is 2 or 3, do not calculate tax.

If 99 and the destination is 1, do not calculate tax.

long_name

30 character limit

The alternate product name

kiosk_name

20 character limit

The kiosk name. The default name.

TaxPLUs Example

<TaxPLUs> <Tax plu="20000006" name="TAX" value="0" tax_bucket="0" tax_table="1" special_instructions="0" long_name="" kiosk_name=""/> </TaxPLUs>

TaxTables

Summary

The TaxTables element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

table

number

The table data (1-3)

repeat

number

The dollar amount difference between repeating increments

percent

number

Also known as the sales rate. Used in conjunction with the repeat amount.

This is the amount of tax to be applied to the repeat amount. It shows how much tax per dollars is defined in the repeat amount.

non-repeat

number

The number of tax table elements or brackets until, but not including, the beginning of the repeat

number

number

0-98 sequential listing of elements or brackets

increment

number

The amount of sale in this bracket subject to tax

amount

number

The amount of tax to apply

TaxTables Example

<TaxTables> <TaxTable table="1" repeat="100" percent="6000" non_repeat="1"> <Bracket number="0" increment="8" amount="0"/> <Bracket number="1" increment="16" amount="1"/> <Bracket number="2" increment="17" amount="1"/> <Bracket number="3" increment="17" amount="1"/> <Bracket number="4" increment="17" amount="1"/> <Bracket number="5" increment="17" amount="1"/> <Bracket number="6" increment="16" amount="1"/> <Bracket number="7" increment="0" amount="0"/> <Bracket number="8" increment="0" amount="0"/> . . . </TaxTable> . . . </TaxTables>

Categories

Summary

The Categories element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

number

number

The category number

name

13 character limit

The category description

Categories Example

<Categories> <Category number="1" name="BURGERS"/> <Category number="2" name="CHICKEN"/> <Category number="21" name="LG DRINKS"/> . . . </Categories>

Lists

Summary

The Lists element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

type

The list type. For more information, see List Types.

name

13 character limit

The list description

number

number

The list number

ListItem

The list items

plu

number

The product number

value

number

The upcharge amount, if required

List Types

Type

Description

0

Substitution

1

Discountable

2

Non-discountable

3

Condiments

4

Qualifiers

5

Categories

6

Card BIN ranges

7

Nouns

8

Adjectives

9

Taxing items

10

Sizes

11

Fractions

12

Automatic combo exceptions

13

Discount whitelist

14

Labor shifts

15

Miscellaneous surcharges

16

Aggregate list

Lists Example

<Lists> <List type="0" name="Burger Substitution" number="1"> <ListItem plu="20100" value="0"/> <ListItem plu="20200" value="0"/> <List/> <List type="0" name="Drink Substitution" number="2"> <ListItem plu="851010" value="25"/> <ListItem plu="871230" value="30"/> <List/> . . . </Lists>

Inventory

Summary

The Inventory element's attributes are listed in the table below.

Request Parameters

Field Name

Size/Format

Description

number

number

The inventory number

name

13 character limit

The inventory description

Inventory Example

<Inventory> <Ingredient number="1" name="CHICKEN STRIPS"/> <Ingredient number="2" name="HONEY DIJON SAUCE"/> <Ingredient number="21" name="WEINER - JALAPENO"/> . . . </Inventory>

Recipes

Summary

The Recipes element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

number

number

The inventory number of the recipe item. This can also be a recipe number as recipes can be included in Recipes.

qty

number

The quantity of the ingredient. Four (4 ) decimal places are assumed.

mode

number

The mode details how each inventory item is handled. The valid modes are 0-10.

For more information, see Mode Types.

Mode Types

Type

Description

0

Not Used

1

Permanent

2

Optional

3

Opt/No Heavy

4

Not Standard

5

Included Items

6

Plain/Only no effect

7

Plain/Only effect

8

Non-standard 5

9

Non-standard 6

10

Non-standard 7

Recipes Example

<Recipes> <Recipe number="1"> <Ingredient number="260" qty="2000" mode="2"/> <Ingredient number="261" qty="5000" mode="2"/> <Ingredient number="212" qty="10000" mode="1"/> <Ingredient number="296" qty="10000" mode="1"/> <Ingredient number="225" qty="13300" mode="1"/> </Recipe> <Recipe number="2"> <Ingredient number="212" qty="10000" mode="1"/> <Recipe number="3" qty="10000" mode="5"/> </Recipe> <Recipe number="3"> <Ingredient number="260" qty="2000" mode="2"/> <Ingredient number="221" qty="5000" mode="2"/> <Ingredient number="261" qty="5000" mode="2"/> <Ingredient number="296" qty="10000" mode="1"/> <Ingredient number="225" qty="13300" mode="2"/> </Recipe> . . . </Recipes>

Users

Summary

The Users element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

name

24 character limit

The user name

id

number

The user identifier number

access_level

number

The user access level

pospassword

The user password

Users Example

<Users> <User name="Manager" id="101" access_level="1" pospassword="1234"/> <User name="Assist Manager" id="102" access_level="1" pospassword="1234"/> <User name="Training Manager" id="103" access_level="1" pospassword="1234"/> . . . </Users>

Kiosks

Summary

The Kiosks element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

terminal

number

The terminal number

employee

number

The employee number

Kiosks Example

The Kiosks element returns the terminals that have been designated on the point-of-sale (POS) system as kiosks.

Note

Each kiosk in the system must be set up on the POS system with a unique employee number.

<Kiosks> <Kiosk terminal="50" employee="198"/> <Kiosk terminal="51" employee="199"/> . . . </Kiosks>

Preferences

Summary

The Preferences element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

AutoLogOffTime

24-hour time

The time of day that the device should perform a logoff automatically for reconciliation with the day’s sales.

If necessary, it may log back on, acquiring a new insert number in the process. However, it is usually expected that the third-party device will be balanced out at this time.

MaxQuantity

number

The maximum number of any individual item that may be ordered

MaxQualifiers

number

The number of special preparation instructions for an item. For example, extra pickle, cut, hot, no lettuce.

MaxGiftCards

number

The number of different gift cards that can be included in a sale. This is either for a sale or redemption.

In addition, it is possible to have one credit and one cash payment for a total of five.

MaxItems

number

The number of items in an order. An item here is a top-level entry in the ProductDetail section of an order. It is the total of the top-level Products and ValueMeals.

Qualifiers and Products in ValueMeals do not count toward this number.

DeliveryFee

number

The amount charged to have an order delivered

MinDeliveryAmt

number

The minimum order amount required for a delivery order

ZipCodes

Yes/No

Yes if zip code enforcement is enabled. No if it is disabled.

Preferences Example

<Preferences> <Preference name="AutoLogOffTime">15:45</Preference> <Preference name="MaxQuantity">99</Preference> <Preference name="MaxQualifiers">32</Preference> <Preference name="MaxGiftCards">30</Preference> <Preference name="MaxItems">150</Preference> <Preference name="DeliveryFee">500</Preference> <Preference name="MinDeliveryAmt">1500</Preference> <Preference name="ZipCodes">Yes</Preference> </Preferences>

Zipcodes

The Zipcodes element's attribute is described in the table below.

Field Name

Size/Format

Description

code

number

The zip code number available for delivery

Zipcodes Example

<Zipcodes> <Zip code="18901"/> <Zip code="18902"/> . . </Zipcodes>

ColombiaConfigs

Summary

The ColombiaConfigs element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

terminal

number

The terminal number

resolution_number

number

The fiscal resolution number

start_date

date

The fiscal invoice starting date.

Example: 2023-06-01

end_date

date

The fiscal invoice ending date.

Example: 2023-06-30

prefix

The fiscal invoice prefix for receipts.

Example: KIOSK1

order_start_invoice

number

The fiscal invoice starting number

order_end_invoice

number

The fiscal invoice ending number

order_next_invoice

number

The fiscal invoice next available number

void_start_invoice

number

The fiscal void invoice starting number

void_end_invoice

number

The fiscal void invoice ending number

void_next_invoice

number

The fiscal void invoice next available number

ColombiaConfigs Example

<ColombiaConfigs> <Config terminal="0" resolution_number="18764041596308" start_date="2022-12-20" end_date="2023-12-20" prefix="RES1" order_start_invoice="1" order_end_invoice="10000000" order_next_invoice="6028" void_start_invoice="1" void_end_invoice="10000000" void_next_invoice="14" /> <Config terminal="50" resolution_number="18764041596308" start_date="2023-06-01" end_date="2024-06-30" prefix="KIOSK1" order_start_invoice="1" order_end_invoice="123232312" order_next_invoice="0" void_start_invoice="1" void_end_invoice="12323123" void_next_invoice="0" /> </ColombiaConfigs>

CALCULATETAX

Summary

The CALCULATETAX action checks the syntax and calculation of an order prepared from a third-party device. It is always suggested that the order be validated prior to payment acceptance.

Request Parameters

Field Name

Size/Format

Description

terminal

number

Specifies the kiosk terminal requesting the action

vendor

 

The name of the third-party device sending the packet

insert

number

The sales insert assigned when the third-party device was logged on

reference

number

Used for tracking orders using a different order number than the one the POS server provides

CALCULATETAX Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="CALCULATETAX" terminal="50" vendor="Kiosk" insert="16" reference="123456"> <Order destination="3"> <MainOrder> <ProductDetail> <!-- cheese burger --> <Product price="149" qty="1" plu="20600" item_uuid="" reward_id=""/> </ProductDetail> </MainOrder> <SubTotal value="149"/> </Order> </POSRequest>

CALCULATETAX Elements

A POSResponse element for a CALCULATETAX action includes the following elements:

Order

Summary

The Order element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

destination

number

The numerical destination, such as eat in or take out, matching the destination from the database

Product

Summary

The Product element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

price

number

The price of a single product, which must be greater than or equal to zero.

If the price is set to zero, the point-of-sale (POS) server returns the current price of the product and calculates the tax and subtotal amount.

qty

number

The quantity of the product being ordered

plu

number

The price look up (PLU) number of the product

item_uuid

An optional universal unique identifier (UUID) that is generated on the kiosk

reward_id

An optional reward identifier generally associated with a loyalty reward program

Subtotal

Summary

The Subtotal element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

value

number

An optional total value of items ordered without the tax amount

CALCULATETAX Response

The result returned when the above order is processed when using a United States taxing method is shown below:

<?xml version="1.0"?> <!DOCTYPE pos > <POSResponse type="CALCULATETAX" POSVersion="6.44.2" time="1666740117" last_update_time="1666739848" terminal="50" update_needed="false" sync_checksum="9281f9be7e764c55e399ab59e1e8a7e7259afaa4"> <Order> <MainOrder> <ProductDetail> <Product plu="20100" qty="1" price="529" name="WHOP" poll_id="10" item_uuid="10101_uuid_10101"/> </ProductDetail> </MainOrder> <Subtotal value="529"/> <Taxes> <Tax plu="20000005" value="37" long_name="7% Sales TAX" externally_collected="false"/> <Tax plu="20000006" value="0" long_name="UNUSED TAX" externally_collected="false"/> <Tax plu="20000007" value="0" long_name="UNUSED TAX" externally_collected="false"/> </Taxes> <Total value="566"/> </Order> </POSResponse>

This is the result returned when the above order is processed using VAT taxing method and the VAT option “Do Not Adjust Menu Price" is not enabled:

<?xml version="1.0"?> <!DOCTYPE pos > <POSResponse type="CALCULATETAX" POSVersion="5.06c" time="1286890606" last_update_time="1286890546" terminal="50"> <MainOrder> <ProductDetail> <Product plu="20600" price="149"/> </ProductDetail> </MainOrder> <SubTotal value="149"/> <Taxes> <Tax plu="20000005" value="8"/> <Tax plu="20000006" value="0"/> </Taxes> <Total value="157"/> </POSResponse>

Available starting on Versions 6.47.0 and 7.31.0, this is the result returned when the above order is processed using VAT taxing method and the VAT option “Distribute VAT Proportionally in Value Meals" is enabled:

<?xml version="1.0"?> <!DOCTYPE pos > <POSResponse type="CALCULATETAX" POSVersion="6.47.0" time="1684797337" last_update_time="1684795905" terminal="50" update_needed="false" sync_checksum="d2bcc57a546f253f162880e14677a96d6ec0904d"> <Order> <MainOrder> <ProductDetail> <Product plu="20600" qty="1" price="190" name="CHS BRG" poll_id="189" item_uuid="8eab56d8-930f-4d70-9d6a-fd9dcb030ca4" tax_id="1" tax_rate="10000" item_tax="17"/> </ProductDetail> </MainOrder> <Subtotal value="190"/> <Taxes> <Tax plu="20000005" value="17" long_name="VAT1 TAX - iva 10%" externally_collected="false"/> <Tax plu="20000006" value="0" long_name="VAT2 TAX - iva 22 %" externally_collected="false"/> <Tax plu="20000007" value="0" long_name="VAT3 TAX - *UNUSED*" externally_collected="false"/> </Taxes> <Total value="190"/> </Order> </POSResponse>

ORDERVALIDATE

Use the ORDERVALIDATE action to check for proper syntax, structure, and calculation of an order.

Note

It is recommended that the order always be validated prior to payment acceptance.

ORDERVALIDATE includes the following element options:

Simple Order

Summary

A simple order is one of the options using the ORDERVALIDATE action.

Request Parameters

Field Name

Size/Format

Description

action

ORDERVALIDATE specifies the request being made of the point-of-sale (POS) server

terminal

number

Specifies the terminal requesting the action

vendor

The name of the third-party device sending the packet

insert

number

The sales insert assigned when the third-party device was logged on

reference

number

Used for tracking orders using a different order number than the one the POS server provides

Simple Order Example

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pos > <POSRequest action="ORDERVALIDATE" terminal="50" vendor="Kiosk" insert="2"> <Order destination="1"> <MainOrder> <ProductDetail> <Product price="529" qty="1" plu="20100"/> </ProductDetail> </MainOrder> <SubTotal value="529"/> <Taxes> <Tax plu="20000005" value="37"/> </Taxes> <Payments> <Payment plu="30000000" value="566"/> </Payments> <Change value="0" /> <Total value="566"/> </Order> </POSRequest>

Simple Order Elements

The POSResponse element for a simple order using an ORDERVALIDATE action includes the following elements:

Order

Summary

The Order element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

destination

number

The numerical destination, such as eat in or take out, matching the destination from the database

payment_status

The optional paid status of the order. The valid statuses are as follows:

  • PAID

  • PAYMENTDUE

  • CHANGEDUE

Product

Summary

The Product element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

price

number

The price of a single product, which must be greater than or equal to zero

qty

number

The quantity of the product being ordered

plu

number

The price look up (PLU) number of the product

Subtotal

Summary

The Subtotal element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

value

number

The total value of the items ordered without tax

Tax

Summary

The Tax element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

plu

number

The tax price look up (PLU) number used in the order. There may be multiple tax PLUs used in an order.

value

number

The amount of tax collected on the tax PLU

Payment

Summary

The Payment element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

plu

number

The payment price look up (PLU) number used in the order. There may be multiple payment PLUs used in the order.

value

number

The payment amount

Change

Summary

The Change element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

value

number

The amount of change to be given to the customer

Total

Summary

The Total element's attributes is described in the table below.

Request Parameters

Field Name

Size/Format

Description

value

number

The total amount of the order including tax

Simple Order Response

<?xml version="1.0"?> <!DOCTYPE pos > <POSResponse type="ORDERVALIDATE" POSVersion="6.44.2" time="1666740474" last_update_time="1666739848" terminal="50" update_needed="false" sync_checksum="9281f9be7e764c55e399ab59e1e8a7e7259afaa4"> <Order> <MainOrder> <ProductDetail> <Product plu="20100" qty="1" price="529" name="Product" poll_id="10" item_uuid="2aed4e18-d282-42e7-908a-74a894877cc1"/> </ProductDetail> </MainOrder> <Subtotal value="529"/> <Taxes> <Tax plu="20000005" value="37" long_name="7% Sales TAX" externally_collected="false"/> <Tax plu="20000006" value="0" long_name="UNUSED TAX" externally_collected="false"/> <Tax plu="20000007" value="0" long_name="UNUSED TAX" externally_collected="false"/> </Taxes> <Total value="566"/> </Order> </POSResponse>

Credit Card Order

Summary

A credit card order is one of the options using the ORDERVALIDATE action.

Request Parameters

Field Name

Size/Format

Description

action

ORDERVALIDATE specifies the request being made of the point-of-sale (POS) server

terminal

number

Specifies the terminal requesting the action

insert

number

The sales insert assigned when the third-party device was logged on

reference

number

Used for tracking orders using a different order number than the one the POS server provides

Credit Card Order Example

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pos > <POSRequest action="ORDERVALIDATE" terminal="50" vendor="Kiosk" insert="2"> <Order destination="1"> <MainOrder> <ProductDetail> <Product price="529" qty="1" plu="20100"/> </ProductDetail> </MainOrder> <SubTotal value="529"/> <Taxes> <Tax plu="20000005" value="37"/> </Taxes> <ElectronicPayments> <Prepaid token="1329857779E3R43" plu="30006000" name="John Smith" value="566" card="xxxxxxxxxxxx1234" auth="1234abc" refnum="12345" type="VISA"/> <CustomerReceipt receipt="This is where you put the Customer receipt"/> <MerchantReceipt receipt="This is where you put the Merchant receipt"/> </ElectronicPayments> <Change value="0" /> <Total value="566"/> </Order> </POSRequest>

Credit Card Order Elements

The POSResponse element for a credit card order using an ORDERVALIDATE action includes the following elements:

Order

Summary

The Order element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

destination

number

The numerical destination, such as eat in or take out, matching the destination from the database

payment_status

The optional paid status of the order. The valid statuses are as follows:

  • PAID

  • PAYMENTDUE

  • CHANGEDUE

Product

Summary

The Product element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

price

number

The price of a single product, which must be greater than or equal to zero

qty

number

The quantity of the product being ordered

plu

number

The price look up (PLU) number of the product

Subtotal

Summary

The Subtotal element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

value

number

The total value of the items ordered without tax

Tax

Summary

The Tax element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

plu

number

The tax price look up (PLU) number used in the order. There may be multiple tax PLUs used in an order.

value

number

The amount of tax collected on the tax PLU

ElectronicPayments

Summary

The ElectronicPayments element's attributes and elements are described in the table below.

Request Parameters

Field Name

Size/Format

Description

Prepaid

Prepaid

A list of prepaid attributes. For more information, see Prepaid.

CustomerReceipt

The customer credit card section of the receipt

MerchantReceipt

The merchant credit card section of the receipt

Prepaid

Summary

The Prepaid element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

token

number

The transaction token

plu

number

The price look up (PLU) number of the payment used in the order

value

number

The amount to be charged

card

number

The card number

auth

The credit card authorization identifier

refnum

number

The credit card reference number

name

The credit card owner's name

type

The card type

Change

Summary

The Change element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

value

number

The amount of change to be given to the customer

Total

Summary

The Total element's attributes is described in the table below.

Request Parameters

Field Name

Size/Format

Description

value

number

The total amount of the order including tax

Gift Card Payment Order

Summary

A gift card payment order is one of the options using the ORDERVALIDATE action.

Request Parameters

Field Name

Size/Format

Description

action

ORDERVALIDATE specifies the request being made of the point-of-sale (POS) server

terminal

number

Specifies the terminal requesting the action

vendor

The name of the third-party device sending the packet

insert

number

The sales insert assigned when the third-party device was logged on

reference

number

Used for tracking orders using a different order number than the one the POS server provides

destination

number

The numerical destination, such as eat in or take out, matching the destination from the database

payment_status

The optional paid status of the order. The valid statuses are as follows:

  • PAID

  • PAYMENTDUE

  • CHANGEDUE

Product price

number

The price of a single product, which must be greater than or equal to zero

Product qty

number

The quantity of the product being ordered

Product plu

number

The price look up (PLU) number of the product

SubTotal value

number

The total value of the items ordered without tax

Tax plu

number

The tax price look up (PLU) number used in the order. There may be multiple tax PLUs used in an order.

Tax value

number

The amount of tax collected on the tax PLU

ElectronicPayments Prepaid token

number

The transaction token

ElectronicPayments Prepaid plu

number

The PLU number of the payment used in the order

ElectronicPayments Prepaid value

number

The amount to be charged

ElectronicPayments Prepaid card

Example: Kiosk

ElectronicPayments Prepaid auth

Example: Kiosk

ElectronicPayments Prepaid refnum

Example: Kiosk

ElectronicPayments Prepaid name

Example: Gift

ElectronicPayments Prepaid type

Example: Gift

ElectronicPayments CustomerReceipt

The customer credit card section of the receipt, if any

ElectronicPayments MerchantReceipt

The merchant credit card section of the receipt, if any

Change value

number

The amount of change to be given to the customer

Total value

number

The total amount of the order including tax

Gift Card Payment Order Example

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pos > <POSRequest action="ORDERVALIDATE" terminal="50" vendor="Kiosk" insert="2"> <Order destination="1"> <MainOrder> <ProductDetail> <Product price="529" qty="1" plu="20100"/> </ProductDetail> </MainOrder> <SubTotal value="529"/> <Taxes> <Tax plu="20000005" value="37"/> </Taxes> <ElectronicPayments> <Prepaid token="1329857779E3R43" plu="30009000" name="Gift" value="566" card="Kiosk" auth="Kiosk" refnum="Kiosk" type="Gift"/> <CustomerReceipt receipt="This is where you put the Customer receipt"/> <MerchantReceipt receipt="This is where you put the Merchant receipt"/> </ElectronicPayments> <Change value="0" /> <Total value="566"/> </Order> </POSRequest>

Gift Card Payment Order Elements

The POSResponse element for a gift card payment order using an ORDERVALIDATE action includes the following elements:

Order

Summary

The Order element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

destination

number

The numerical destination, such as eat in or take out, matching the destination from the database

payment_status

The optional paid status of the order. The valid statuses are as follows:

  • PAID

  • PAYMENTDUE

  • CHANGEDUE

Product

Summary

The Product element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

price

number

The price of a single product, which must be greater than or equal to zero

qty

number

The quantity of the product being ordered

plu

number

The price look up (PLU) number of the product

Subtotal

Summary

The Subtotal element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

value

number

The total value of the items ordered without tax

Tax

Summary

The Tax element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

plu

number

The tax price look up (PLU) number used in the order. There may be multiple tax PLUs used in an order.

value

number

The amount of tax collected on the tax PLU

ElectronicPayments

Summary

The ElectronicPayments element's attributes and elements are described in the table below.

Request Parameters

Field Name

Size/Format

Description

Prepaid

Prepaid

A list of prepaid attributes. For more information, see Prepaid.

CustomerReceipt

The customer credit card section of the receipt

MerchantReceipt

The merchant credit card section of the receipt

Prepaid

Summary

The Prepaid element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

token

number

The transaction token

plu

number

The price look up (PLU) number of the payment used in the order

value

number

The amount to be charged

card

number

The gift card number

auth

The gift card authorization identifier

refnum

number

The gift card reference number

name

The gift card name

type

The card type

Change

Summary

The Change element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

value

number

The amount of change to be given to the customer

Total

Summary

The Total element's attributes is described in the table below.

Request Parameters

Field Name

Size/Format

Description

value

number

The total amount of the order including tax

ORDER

The ORDER action includes the LoyaltyCode element.

Loyalty Code Order

Summary

A loyalty code order is an option using the ORDER action.

Request Parameters

Field Name

Size/Format

Description

action

ORDER specifies the request being made of the point-of-sale (POS) server

terminal

number

Specifies the terminal requesting the action

vendor

The name of the third-party device sending the packet

reference

number

Used for tracking orders using a different order number than the one the POS server provides

LoyaltyCodeDetail

LoyaltyCode

Can contain multiple LoyaltyCode objects

LoyaltyCode

LoyaltyCode

Send one (1) LoyaltyCode object only per program

LoyaltyCodeValidation

LoyaltyCodeValidation

Contains information about the loyalty communication status

LoyaltyMemberId

LoyaltyMemberId

The loyalty member identifier information

LoyaltyMemberName

LoyaltyMemberName

The loyalty member name and email information

LoyaltyRewardDetail

LoyaltyRewardGroup

Contains a list of reward groups

LoyaltyRewardGroup

LoyaltyRewardGroup

Contains a list of all item discount rewards and order discount rewards

ItemDiscountReward

ItemDiscountReward

The item discount reward information for which the following applies:

  • When Discount_plu and item_plu are populated, the discount can be applied to that specific item only

  • When Discount_plu is populated and item_plu = 0, the discount can be applied to a list of items, such as all mediums sides, all medium drinks, and Hershey pie

OrderDiscountReward

OrderDiscountReward

The order discount reward information

Loyalty Code Order Example

<?xml version="1.0" encoding="UTF-8"?> <POSRequest action="ORDER" terminal="50" vendor="Kiosk" reference="123456"> <Order destination="1" payment_status="PAID"> <LoyaltyCodeDetail> <LoyaltyCode id="95b042934a474dc6939ec760165fd63c" id_type="scanned_code" program_id="xenial" transaction_id="000000000003"> <LoyaltyCodeValidation id="8e972892f1df4ef0abd0f54da1335671" response_code="200" response_message="Success" order_state="InProgress" /> <LoyaltyMemberName name="Customer Name" first_name="Customer" email="abc@gmail.com"/> <LoyaltyMemberId id="6277206400000010" /> <LoyaltyRewardDetail> <LoyaltyRewardGroup id="6277206400000010" name="Xenial Rewards" type="choose_many"> <ItemDiscountReward id="6277206400000010" discount_plu="30002251" item_plu="0" name="LOY FREE SANDWICH" qty="0" automatically_apply="1" /> <OrderDiscountReward id="6277206400000011" discount_plu="30002222" item_plu="0" name="LOY ORD DISC" qty="0" automatically_apply="0" /> </LoyaltyRewardGroup> </LoyaltyRewardDetail> <LoyaltyTenderBalance id="3513433f210d49358ed2393f376b8ce7" name="xenial" points_amount="5601" currency_equivalent_amount="5601" currency_type="USD" discount_plu="30002270" /> </LoyaltyCode> </LoyaltyCodeDetail> <MainOrder> <ProductDetail> <Product plu="20100" qty="1" price="439"> <Discount plu="30002251" qty="1" price="-439"> <AppliedLoyaltyReward reward_id="6277206400000010" /> </Discount> </Product> <Product plu="20150" qty="1" price="539" /> <Product plu="20240" qty="2" price="639" /> <Product plu="21352" qty="1" price="259" /> </ProductDetail> </MainOrder> <SubTotal value="2076" /> <Taxes> <Tax long_name="11.00 % TAX" plu="20000005" value="228" /> <Tax long_name="UNUSED TAX" plu="20000006" value="0" /> <Tax long_name="UNUSED TAX" plu="20000007" value="0" /> </Taxes> <ElectronicPayments> <Prepaid token="22E38FEAD602FC7CB6BA61C80AF08BE5" plu="30004000" value="2304" card="xxxxxxxxxxxx1234" auth="1234abc" refnum="12345" name="Card Owner" type="Visa" /> </ElectronicPayments> <Change value="0" /> <Total value="2304" /> </Order> </POSRequest>

Loyalty Code Order Elements

The POSResponse element for a loyal code order using an ORDER action includes the following elements:

LoyaltyCode

Summary

The LoyaltyCode element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

id

The globaly unique identifier (GUID) for the LoyaltyCode object

id_type

The identifier type. The default value is scanned_code.

program_id

The name of the loyalty program. The valid values include the following:

  • blinkar

  • develon

  • bk-kingdom

  • bkf-mystery-burger

  • bkf-democratic-burger

  • xenial

transaction_id

The transaction identifier returned by the loyalty provider

LoyaltyCodeValidation

Summary

The LoyaltyCodeValidation element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

id

The globally unique identifier (GUID) specific to this LoyaltyCodeValidation object

response_code

The communication response code between the cloud service and the loyalty provider

response_message

The cloud service response message for which the following applies:

  • The default value is Success or Error

  • Messages may vary based on the loyalty provider

order_state

 

LoyaltyMemberId

Summary

The LoyaltyMemberId element's attribute is described in the table below.

Request Parameters

Field Name

Size/Format

Description

id

The member loyalty identifier that is displayed on the point-of-sale (POS) terminal virtual receipt and on the printed receipt

LoyaltyMemberName

Summary

The LoyaltyMemberName element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

name

The loyalty member name information for which the following applies:

  • An optional field

  • The loyalty member's full name

  • The name can be printed on the receipt

First_name

The loyalty member's first name

email

An optional field. The loyalty member's email address.

LoyaltyRewardGroup

Summary

The LoyaltyRewardGroup element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

id

An optional identifier

name

The reward group name

type

The reward group type. The default value is choose_many.

ItemDiscountReward

Summary

The ItemDiscountReward element's attributes are listed in the table below.

Request Parameters

Field Name

Size/Format

Description

id

The specific identifier of either the discount object or the type of discount

discount_plu

The discount price look up (PLU)

item_plu

The item PLU

name

The discount reward name

qty

The discount reward quantity. The default value is 1.

automatically_apply

boolean

Indicates if the reward should apply to the order automatically. The default value is 0.

OrderDiscountReward

Summary

The OrderDiscountReward element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

id

The specific identifier of either the discount object or the type of discount

discount_plu

The discount price look up (PLU)

name

The discount reward name

qty

The discount reward quantity. The default value is 1.

automatically_apply

boolean

Indicates if the reward should apply to the order automatically. The default value is 0.

Loyalty Code Order Response

<?xml version="1.0"?> <!DOCTYPE pos > <POSResponse type="ORDER" POSVersion="6.26.1" time="1573718304" last_update_time="1573718088" terminal="50" update_needed="false"> <Order number="1354" uuid="b099179e-c1fb-4f7c-bd3b-1247018b1c37" pos_uuid="b099179e-c1fb-4f7c-bd3b-1247018b1c37"> <LoyaltyCodeDetail> <LoyaltyCode id="95b042934a474dc6939ec760165fd63c" id_type="scanned_code" program_id="xenial"> <LoyaltyCodeValidation id="8e972892f1df4ef0abd0f54da1335671" response_code="200" response_message="Success" order_state="InProgress"/> <LoyaltyMemberId id="6277206400000010"/> <LoyaltyRewardDetail> <LoyaltyRewardGroup type="choose_many" name="Xenial Rewards"> <ItemDiscountReward id="6277206400000010" discount_plu="30002251" item_plu="0" name="LOY FREE SANDWICH"/> </LoyaltyRewardGroup> </LoyaltyRewardDetail> </LoyaltyCode> </LoyaltyCodeDetail> <MainOrder> <ProductDetail> <Product plu="20100" qty="1" price="439" name="WHOP" poll_id="10" item_uuid=""/> <Discount plu="30002251" qty="1" value="-439"/> <Product plu="20150" qty="1" price="539" name="DBL WHOP" poll_id="15" item_uuid=""/> <Product plu="20240" qty="2" price="639" name="TPL WHOP" poll_id="3181" item_uuid=""/> <Product plu="21352" qty="1" price="259" name="DBL WHOP JR" poll_id="141" item_uuid=""/> </ProductDetail> </MainOrder> <Subtotal value="2076"/> <Taxes> <Tax plu="20000005" value="228" long_name="11.00 % TAX"/> <Tax plu="20000006" value="0" long_name="UNUSED TAX"/> <Tax plu="20000007" value="0" long_name="UNUSED TAX"/> </Taxes> <Total value="2304"/> </Order> </POSResponse>

ORDERPAYMENT

Summary

The ORDERPAYMENT action is a request for the payment status of a previously injected order that had incomplete electronic payments.

To address the fact that some payment processors may take a minute or two to process a credit card, the kiosk can inject the order to the point-of-sale (POS) system before the payment processing is complete. After the payment has been processed, the kiosk can use the Order Payment API to update the POS system.

The POS system validates the order using the ORDER elements. If the payment_status element has a value of “DECLINED", then the order will be voided from the POS system.

<ElectronicPayments> <Prepaid token="22E38FEADF08BE5" plu="30004000" value="1295" card="" auth="" refnum="" name="" type=""/> </ElectronicPayments>

Request Parameters

Field Name

Size/Format

Required

Description

number

number

No

The order number returned by the POS system to the ORDER request for the original order

payment_status

No

The status of the payment. The valid values are as follows:

  • APPROVED

  • DECLINED

token

No

The prepaid token from the original order

plu

number

Yes

The price look up (PLU) number of the payment used in the order

value

number

Yes

The original amount to be charged for the order

card_num

Yes

The masked card number used for the order

transaction_amount

number

Yes

The amount approved or declined for the order

response_message

Yes

The message returned by the payment processor

ORDERPAYMENT Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="ORDERPAYMENT" terminal="50" vendor="Kiosk" insert="10"> <Order number="1" payment_status="APPROVED" token="22E38FEADF08BE5"> <Payment plu="30004000" value="1295" card_num="************0053" transaction_amount="1295" response_message="Transaction Approved"/> </Order> </POSRequest>

LOGON

Summary

Use the LOGON action to assign an insert to the terminal number of the device.

Note

The device must have an insert logged on before orders will be processed.

Request Parameters

Field Name

Size/Format

Description

terminal

number

Specifies the kiosk terminal requesting the action

vendor

The name of the third-party device sending the packet

LOGON Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="LOGON" terminal="50" vendor="Kiosk"> </POSRequest>

LOGOFF

Summary

Use the LOGOFF action to remove an insert from the device.

Request Parameters

Field Name

Size/Format

Description

terminal

number

Specifies the kiosk terminal requesting the action

vendor

The name of the third-party device sending the packet

insert

number

The sales insert assigned when the third-party device was logged on

LOGOFF Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="LOGOFF" terminal="50" vendor="Kiosk" insert="10"> </POSRequest>

SKIM

Summary

Use the SKIM action to pull money from the device. The Amount element is the amount of money pulled to two decimal places (cents). For example, 10000 = 100.00.

Request Parameters

Field Name

Size/Format

Description

terminal

number

Specifies the kiosk terminal requesting the action

vendor

The name of the third-party device sending the packet

insert

number

The sales insert assigned when the third-party device was logged on

SKIM Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="SKIM" terminal="50" vendor="Kiosk" insert="10"> <Amount>10000</Amount> </POSRequest>

MESSAGE

Summary

The MESSAGE action allows the third-party order entry device to communicate with restaurant personnel.

Messages display on all point-of-sale (POS) terminals and indicate which third-party device, with its terminal number, is generating the message. The device can alert that it needs paper, that it is running out of coin or a certain type of bill, or that it has stopped a transaction due to credit denial or a processor timeout.

Warning

Choose the frequency of the message carefully to give restaurant personnel adequate time to take action. Too many displayed alerts can disrupt the user's work and increase the chance the alerts will be disabled.

If possible, alert once, then repeat after an acceptable amount of time until the alert is resolved. The frequency of the alert can be increased depending on its severity.

Request Parameters

Field Name

Size/Format

Description

terminal

number

Specifies the kiosk terminal requesting the action

vendor

The name of the third-party device sending the packet

MESSAGE Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="MESSAGE" terminal="50" vendor="Kiosk"> <Message> Bill Collector is Jammed Now accepting credit payment only. </Message> </POSRequest>

PING

Summary

The PING action ensures that the point-of-sale (POS) terminal server is online.

Request Parameters

Field Name

Size/Format

Description

terminal

number

Specifies the kiosk terminal requesting the action

vendor

The name of the third-party device sending the packet

PING Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="PING" terminal="50" vendor="Kiosk"> </POSRequest>

PING Response

<?xml version="1.0"?> <!DOCTYPE pos > <POSResponse type="PING" POSVersion="6.44.2" time="1666742865" last_update_time="1666739848" terminal="50" update_needed="false" sync_checksum="9281f9be7e764c55e399ab59e1e8a7e7259afaa4"> <Ping> You are connected to: (0) - (0) - Xenial Lab, Off-Premises Injections: Enabled </Ping> </POSResponse>

GETINSERTNUMBER

Summary

The GETINSERTNUMBER action ensures that the kiosk has an insert logged on.

Request Parameters

Field Name

Size/Format

Description

terminal

number

Specifies the kiosk terminal requesting the action

vendor

The name of the third-party device sending the packet

Insert

Insert

The insert information including state and number

GETINSERTNUMBER Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="GETINSERTNUMBER" terminal="50" vendor="Kiosk"> </POSRequest>

Insert

Summary

The Insert element's attributes are described in the table below.

Request Parameters

Field Name

Size/Format

Description

logon_state

number

The values are as follows:

  • 0 - Not logged on

  • 1 - Logged on

insert_number

number

If an insert is logged on, this will be the insert number. It will be -1 if not logged on.

GETINSERTNUMBER Response

<?xml version="1.0"?> <!DOCTYPE pos > <POSResponse type="GETINSERTNUMBER" POSVersion="6.44.2" time="1666742920" last_update_time="1666739848" terminal="50" update_needed="false" sync_checksum="9281f9be7e764c55e399ab59e1e8a7e7259afaa4"> <Insert logon_state="1" insert_number="2"/> </POSResponse>

LISTERRORS

Summary

Use the LISTERRORS action to obtain a listing of the current errors that the point-of-sale (POS) system may provide.

Request Parameters

Field Name

Size/Format

Description

terminal

number

Specifies the kiosk terminal requesting the action

vendor

The name of the third-party device sending the packet

LISTERRORS Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="LISTERRORS" terminal="50" vendor="Kiosk"> </POSRequest>

LISTERRORS Response Table

The following are valid LISTERRORS request errors:

Error

Description

1

Invalid XML document

2

Invalid document type, expecting POSRequest

3

Invalid document, no requested action

4

Invalid terminal number in document header

5

Terminal is not configured as a kiosk

6

Server is offline

7

No more inserts are available

8

Insert number is invalid

9

Vendor is invalid

10

Insert/terminal is invalid or not logged on

11

Employee is logged on another terminal

12

Daily close is in progress, please wait

13

Drawer skim must be greater than zero

14

Skim amount exceeds drawer amount

15

Skim failed to update SQL table

16

Server error retrieving order number

20

Invalid document, PLU is missing

21

Invalid date range

22

Invalid time range

23

Terminal is not configured for delivery orders

24

Terminal is not configured for mobile orders

30

Insert did not validate

31

Insert did not backup

32

Insert did not log off, emergency, contact support

33

Invalid XML document, missing or wrong element

34

Terminal is not configured for payment at counter

35

Employee not found

36

Terminal is not configured to serve kiosk

37

Missing fire date

38

Missing pickup date

39

Invalid date format

40

Invalid pickup date, before fire date

41

Invalid pickup date, below minimum allowed delay

42

Invalid pickup date, above maximum allowed delay

43

Insert is logging on

44

Insert is logging off

45

Terminal update in progress

100

Invalid order document, expecting MainOrder

101

Invalid order destination

102

Invalid order total value

103

Invalid order subtotal value

104

Invalid order change value

105

Order total does match computed total

106

Order subtotal does match computed total

107

Order change does match computed change

108

Invalid order document, missing price

120

Customer name is blank

121

Customer phone number is blank

122

Store does not deliver to this zip code

123

Need a valid customer address

124

Invalid or missing location

125

Invalid or missing status

126

Customer phone number is missing

127

Invalid or missing order UUID

128

Invalid time to live

129

Order is locked by user

130

Order has been fired

131

Order is assigned a driver

132

Invalid order origination

133

Invalid order partner

134

Invalid order total below minimum

135

Invalid order total above maximum

136

Invalid order destination, not configured

199

Invalid order item, PLU is inactive

200

Invalid order item, PLU is invalid

201

Invalid order item, price is invalid

202

Invalid order item, qty is invalid

203

Invalid order item, maximum qualifiers reached

204

Invalid order item discount, item is not discountable

205

Invalid order item discount, can not discount cents off

206

Invalid order item discount, can not discount value meal

207

Invalid order item discount, discount can not be applied to item because it does not meet discount requirements

208

Invalid order value meal, some item are invalid

209

Invalid order value meal, item can not be substituted

210

Invalid order value meal, item is not in the valid substitution category

211

Invalid order value meal, item must be substituted

212

Invalid order value meal, can not substitute with an item that costs more

213

Invalid order value meal, can not substitute with an item that costs more

214

Invalid order delivery fee, PLU not defined

215

Invalid order delivery tips, PLU not defined

216

Invalid payment status, not defined

217

Invalid order item, maximum items reached

218

Invalid order value meal, maximum items reached

219

Invalid applied loyalty reward, missing reward ID

220

Invalid item price, over allowed variance

221

Invalid item price, below allowed variance

222

Invalid order tax, value is outside variance

223

Invalid order value meal, not enough items

224

Invalid order item discount, discount is only allowed with value meal

225

Invalid coupon, items are missing to apply this offer

226

Invalid coupon, amount is missing to apply this offer

227

Invalid coupon, too many of this offer

228

Invalid coupon, this offer not allowed with other offers

300

Invalid order tax, PLU is invalid

301

Invalid order tax, value is invalid

302

Invalid order payment, PLU is invalid

303

Invalid order payment, value is invalid

304

Invalid order discount, PLU is invalid

305

Invalid order discount, value is invalid

306

Invalid order payment, value is less than total

307

Invalid order number

308

Order already voided

309

Cannot void order, order not paid

310

Cannot void order, order not found

311

Cannot change status, order already fired

312

Invalid order, order not found

313

Invalid order payment, maximum payments reached

314

Invalid order discount, maximum discounts reached

315

Invalid order discount, wrong type

316

Invalid order tax, missing or invalid variance PLU

317

Invalid order discount, value is greater than order total

318

Cannot update order, order not paid

400

Invalid electronic payment

401

Invalid electronic payment passback

402

Error electronic payment credit

403

Error electronic payment gift

404

Error electronic infusion gift

405

Error electronic payment, unknown credit card type

406

Error electronic payment, this credit card type is not accepted

407

Error electronic payment, amount is greater than total

408

Error electronic payment, PLU is invalid

409

Error electronic payment, missing card

410

Error electronic payment, missing auth code

411

Error electronic payment, missing refnum

412

Error electronic payment, missing card name

413

Error electronic payment, missing token

414

Error electronic payment, missing amount

415

Error electronic payment, missing response

416

Error electronic payment, invalid token

417

Error electronic payment, order not found

418

Error electronic payment, maximum payments reached

419

Error processing QR code

500

Error POS had an error processing order, delivery offline

501

Error POS had a SQL processing error, please inform support

502

Error POS SQL database version error, please inform support

503

Error POS order buffer full, please inform support

504

Error POS does not allow mobile ordering

505

Error off-premises ordering is currently disabled

600

Error, fiscal device is busy

601

Error, could not acquire invoice number

602

Error, resolution number has expired

603

Error, resolution number not loaded

604

Error, maximum order invoice reached

605

Error, maximum void invoice reached

606

Error, order invoice out of sync

607

Error, void invoice out of sync

608

Error, configuration not loaded

700

Invalid loyalty code validation, invalid ID

702

Invalid loyalty code validation, invalid response code

703

Invalid loyalty code validation, invalid response message

704

Invalid loyalty product discount reward, invalid ID

705

Invalid loyalty product discount reward, invalid discount PLU

706

Invalid loyalty product discount reward, invalid item PLU

707

Invalid loyalty product discount reward, invalid quantity

708

Invalid loyalty order discount reward, invalid ID

709

Invalid loyalty order discount reward, invalid discount PLU

710

Invalid loyalty order discount reward, invalid quantity

711

Invalid loyalty reward group, invalid ID

712

Invalid loyalty reward group, invalid type

713

Invalid loyalty code, invalid ID

714

Invalid loyalty code, invalid ID type

715

Invalid loyalty code, invalid program ID

716

Invalid tender balance, invalid points amount

717

Invalid tender balance, invalid currency equivalent amount

718

Invalid tender balance, invalid discount PLU

719

Invalid loyalty code, missing member ID—versions 6.48.+ and 7.31.+

720

Invalid loyalty code, missing transaction ID—versions 6.48.+ and 7.31.+

Sample Orders

Basic Order Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="ORDERVALIDATE" terminal="50" vendor="Kiosk" insert="10" reference="123456"> <Order destination="1"> <MainOrder> <ProductDetail> <!-- Big Burger--> <Product price="219" qty="1" plu="20100"/> <!-- Md Rootbeer --> <Product price="129" qty="1" plu="80801"/> <!-- Apple Pie --> <Product price="99" qty="1" plu="60400"/> </ProductDetail> </MainOrder> <SubTotal value="447"/> <Taxes> <Tax plu="20000005" value="32"/> </Taxes> <Total value="479"/> </Order> </POSRequest>

Basic Value Meal Order Example

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="ORDERVALIDATE" terminal="50" vendor="Kiosk" insert="10" reference="123456"> <Order destination="1" payment_status="PAID"> <MainOrder> <ProductDetail> <!-- MD Big Burger Meal--> <ValueMeal plu="3020100" price="409" qty="1"> <Product price="0" qty="1" plu="20100"/> <Product price="0" qty="1" plu="50001"/> <Product price="0" qty="1" plu="80101"/> </ValueMeal> </ProductDetail> </MainOrder> <SubTotal value="409"/> <Taxes> <Tax plu="20000005" value="30"/> </Taxes> <Total value="439"/> </Order> </POSRequest>

The following is the response when the above basic value meal order is processed:

<?xml version="1.0"?> <!DOCTYPE pos > <POSResponse type="ORDERVALIDATE" POSVersion="3.01" time="1143639048" last_update_time="1143634258" successive_electronic_payment_failures="0"> </POSResponse>

The following is a value meal and an upsized item order. The price attribute is added to the Product element for the upsized item.

<?xml version="1.0"?> <!DOCTYPE pos > <POSRequest action="ORDERVALIDATE" terminal="50" vendor="Kiosk" insert="10" reference="123456"> <Order destination="1" payment_status="PAID"> <MainOrder> <ProductDetail> <!-- MD Big Burger Meal--> <ValueMeal plu="3020100" price="409" qty="1"> <Product price="0" qty="1" plu="20100"/> <!-- Upsize fry--> <Product price="30" qty="1" plu="50002"/> <Product price="0" qty="1" plu="80101"/> </ValueMeal> </ProductDetail> </MainOrder> <SubTotal value="439"/> <Taxes> <Tax plu="20000005" value="32"/> </Taxes> <Total value="471"/> </Order> </POSRequest>