Loyalty reward offer redemptions are handled entirely by your organization. Your loyalty program is responsible for accepting or rejecting the redemptions as requested by the Toast platform and the POS will honor them as reported from your loyalty program integration. The Toast POS applies reward redemptions as discounts.
-
When the Toast POS sends an inquire request to your loyalty program integration, it includes all of the discounts that are currently applied to a check. Your loyalty program integration can use these to determine whether those discounts affect the applicability of your loyalty reward discount.
-
The Toast platform will honor the response from your loyalty program that indicates whether or not to apply a loyalty redemption. Any validation done by the Toast platform is minimal (such as ensuring a check or item price is not brought below zero).
-
Inquire
calls are made whenever the list of offers is loaded (if the contents of the check have changed since the last inquire call) to get the list of offers currently applicable to the check. The restaurant employee can subsequently select which offer to redeem by selecting from the list. -
Inquire
is also called at the end of the POS workflow during payment. At this point, all redemptions attached to the check have a final opportunity to be verified. Your loyalty program integration can either accept or reject each redemption. Prior to the final inquire call, the POS will verify Toast domain configured discounts and Promotion service integration discounts (in that order).
There is no additional validation done by the POS for check-level rewards. Check-level rewards are entirely validated by your loyalty program. If applied, the POS will recalculate the check total.
Minimal validation occurs in the POS when an item-level reward offer is selected. The offer must include a selection GUID to which the reward can apply. If the reward is applied by the restaurant employee, the POS will attach the reward to the item selection with the matching GUID.
The array of rewards returned to the POS is in a
ResponseCheck
object. Each item-level offer contains a
selectionIdentifier
value. This is a Toast POS-defined GUID
and is the way your loyalty program integration can specify which item
an offer may apply to.
-
Your loyalty program integration must retrieve menu information from Toast. The recommended approach is use the
/menuItems
endpoint of the configuration API to retrieve a list of all menu items. Consider using thelastModified
parameter of this endpoint to ensure that you retrieve menu item updates over time. For more information about the configuration API, see Getting menu information from the configuration API.If you would like to retrieve full information about all menu entities from all menus at a restaurant, consider using the menus API to get this additional information. See Menus API overview.
-
Specific top level items which offers apply to is optionally returned in the loyalty API response to an inquire request:
A
ResponseCheck
object contains anoffers
value which contains an array ofOffer
objects. If an offer is ofselectionType
ITEM
and aselectionIdentifier
is specified, then that is the menu item for which the offer can be applied. All offers are expected to have theapplicable
boolean value set totrue
if the offer can be applied to the check submitted with the request, false otherwiseThe
Check
contains a list ofSelection
objects representing items on the check. EachSelection
has a reference to the corresponding menu item. Menu items have GUIDs assigned to it. These are the IDs used to match against item level offers specified in theselectionIdentifier
returned from an inquiry request.
You can only apply a single item-level discount to a menu item selection in a check. If a restaurant employee applies a discount configured in the Toast platform to a menu item selection, you cannot apply an additional item-level discount based on loyalty program rewards.
There is no limit to the number of check-levels that you can apply to an entire check. You can apply an item-level discount to an item and check-level discounts at the same time.
The Toast platform does not apply discounts directly to modifiers. You can apply item-level discounts to menu item selections that include modifiers. The discount applies to the total price of the item, which includes the modifier price.
The MULTI_ITEM
discount type applies to multiple
different items or to two instances of the same item in separate
Selection
objects within a Check
. For the
discount to work, each item must be in an individual
Selection
object with a quantity
of 1. A
single Selection
object with a quantity
of 2
or more of the same item will not qualify for a MULTI_ITEM
discount.
For more information about Toast platform discount functionality, see Discounts overview.