POS - Redeem Rewards

This page documents the expected user experience when RBI guests redeem rewards when they place orders using the POS, part of Customer Journey Scenarios - POS. See also POS - Redeem Offers and POS - Edge Cases.

Note:

  • Adding a modifier(s) to a reward could have an extra cost

  • Cost is set by the market and POS vendor

  • Example: extra patty on a Whopper reward costs $1 more than the base reward price of $0

Contents

1. While signed out

This is not possible. Rewards are only available to guests who have an account and have enrolled in the Loyalty program.

2. Authenticating with the Loyalty Code

In this scenario, guests do not pre-select any rewards and instead start their journey by scanning their Loyalty code at the POS. The guest in this scenario does a second scan to add a reward after the initial identification.

Steps

Expected results (POS)

Expected results (RBI app)

Loyalty API usage (POS)

Steps

Expected results (POS)

Expected results (RBI app)

Loyalty API usage (POS)

Guest opens the Loyalty code page on the RBI app

  • N/A

  • Loyalty code page is displayed:

  • No action

Cashier is prompted to add a loyalty code

  • Cashier asked if guest is a loyalty member:

  • No action

  • No action

Guest either scans the loyalty code, or tells the 6 digit code to the cashier

  • If guest does not scan the QR code, cashier can enter the 6 digit Loyalty code:

  • Either by scanning or entering the code, POS confirms successful identification:

 

  • Guest receives a successful confirmation modal

 

  • Call the Identify endpoint, which will return the Loyalty User ID, loyalty points balance and a transaction ID

Guest requests cashier to add a Reward from POS

  • Cashier selects reward and adds to order at POS

  • The reward’s loyalty points cost is temporarily subtracted from the guest’s loyalty points balance

  • Loyalty points that will be accrued after the order will not be added to the guest’s loyalty points balance at this stage

  • Call the Transaction Validate endpoint to verify that the current basket selection is valid

  • Note that the call above may return errors. Please refer to Loyalty API v1 - Error Responses for details.

  • Call the Update endpoint with all of the POS basket contents and a status of PENDING

Guest then decides to open a reward on the RBI app, chooses to redeem in restaurant

  • No action

  • Reward is added to the guest’s pre-selection

  • A unique reward code is generated

  • No action

Guest either scans the reward’s QR code, or tells the 6 digit code to the cashier

  • Either by scanning or entering the code, POS confirms successful identification:

  • These reward(s) are incrementally added to the cart and do not replace any of the existing cart items

  • Modal is shown to guest confirming that the reward has been added to cart

  • The reward’s loyalty points cost is temporarily subtracted from the guest’s loyalty points balance

  • Loyalty points that will be accrued after the order will not be added to the guest’s loyalty points balance at this stage

  • Reward pre-selection is cleared

  • Keep track of the current basket contents including rewards

  • Call the Identify endpoint again, which will create a new transaction ID and return selected reward(s)

  • Void the previous transaction

  • Wait for Void Confirmation

  • Call the Update endpoint with all of the POS basket contents and a status of PENDING

Cashier adds reward to basket

  • Added incrementally

Note: If a reward can’t be redeemed because the reward rules are not met, the POS displays a modal to the cashier explaining why the reward can’t be added to cart

  • No action

  • Call the Transaction Validate endpoint to verify that the current basket selection is valid

  • Note that the call above may return errors. Please refer to Loyalty API v1 - Error Responses for details.

  • Call the Update endpoint with all of the POS basket contents and a status of PENDING

Cashier finalizes the order and guest pays at POS

  • POS prints receipt with points earned & points balance

  • Guest sees updated points balance

 

  • Call the Transaction Update endpoint with a status of CLAIMED

3. Using reward pre-selection

 In this scenario, guests pre-select rewards on the RBI app and continue their journey in the POS by scanning the generated code. Then they add more rewards to their basket by choosing those rewards in the app and scanning them, and finally they ask the cashier to remove one of the rewards.

Steps

Expected results (POS)

Expected results (RBI app)

Loyalty API usage (POS)

Steps

Expected results (POS)

Expected results (RBI app)

Loyalty API usage (POS)

Guest opens a reward on the RBI app

  • No action

  • Reward page is displayed:

  • No action

Guest taps “Redeem in Restaurant”

  • No action

  • Reward is added to the guest’s pre-selection

  • A unique reward code is generated

  • No action

Cashier is prompted whether the Guest has loyalty, and confirms

  • Cashier asked if guest is a loyalty member and clicks on “Ok”

  • No action

  • No action

Guest either scans the reward code, or tells the 6 digit code to the cashier

  • Either by scanning or entering the code, POS confirms successful identification (since the reward code also identifies the Loyalty user):

  • Reward is added to POS cart

  • Guest receives a successful confirmation modal

  • The reward’s loyalty points cost is temporarily subtracted from the guest’s loyalty points balance

  • Loyalty points that will be accrued after the order will not be added to the guest’s loyalty points balance at this stage

  • Reward pre-selection is cleared

  • Call the Identify endpoint, which will return the Loyalty User ID, a list of reward(s) pre-selected, loyalty points balance and a transaction ID

Guest opens a second reward on the RBI app, chooses to redeem in restaurant

Note: the flow is exactly the same if the guest pre-selects multiple rewards.

  • No action

  • Only the second reward is added to the guest’s pre-selection

  • A unique reward code is generated

  • No action

Guest either scans the reward’s QR code, or tells the 6 digit code to the cashier

  • Either by scanning or entering the code, POS confirms successful identification:

  • These reward(s) are incrementally added to the cart and do not replace any of the existing cart items

  • Modal is shown to guest confirming that the reward has been added to cart

  • The second reward’s loyalty points cost is temporarily subtracted from the guest’s loyalty points balance

  • At this point, the guest’s loyalty points balance has been deducted for two rewards

  • Loyalty points that will be accrued after the order will not be added to the guest’s loyalty points balance at this stage

  • Reward pre-selection is cleared

  • Keep track of the current basket contents including rewards

  • Call the Identify endpoint again, which will create a new transaction ID and return the selected reward(s)

  • Void the previous transaction

  • Wait for Void Confirmation

  • Call the Update endpoint with all of the Kiosk basket contents and a status of PENDING

Cashier adds reward to basket

  • Added incrementally

  • No action

  • Call the Transaction Validate endpoint to verify that the current basket selection is valid

  • Note that the call above may return errors. Please refer to Loyalty API v1 - Error Responses for details.

Guest requests to remove first reward from order

  • Cashier removes the first reward from the open order

  • Guest sees the first reward’s loyalty points returned to their loyalty points balance

  • Call the Update endpoint with all of the Kiosk basket contents and a status of PENDING

Cashier goes to basket

  • Reward is removed and basket is updated accordingly

  • No action

  • Call the Transaction Validate endpoint to verify that the current basket selection is valid

  • If Transaction Validate was called above when rewards were added to the basket, there is less probability of errors but they could still happen due to issues with regular menu items.

  • Note that the call above may return errors. Please refer to Loyalty API v1 - Error Responses for details.

Cashier finalizes the order and guest pays at POS

  • POS prints receipt with points earned & points balance

  • Guest sees updated points balance

 

  • Call the Transaction Update endpoint with a status of CLAIMED

4. Limit one reward per purchase

 

Steps

Expected results (POS)

Expected results (RBI app)

Loyalty API usage (POS)

Steps

Expected results (POS)

Expected results (RBI app)

Loyalty API usage (POS)

Guest opens a reward on the RBI app

  • No action

  • Reward page is displayed:

  • No action

Guest taps “Redeem in Restaurant”

  • No action

  • Reward is added to the guest’s pre-selection

  • A unique reward code is generated

  • No action

Cashier is prompted whether the Guest has loyalty, and confirms

  • Cashier asked if guest is a loyalty member and clicks on “Ok”

  • No action

  • No action

Guest either scans the reward code, or tells the 6 digit code to the cashier

  • Either by scanning or entering the code, POS confirms successful identification (since the reward code also identifies the Loyalty user):

  • Reward is added to POS cart

  • Guest receives a successful confirmation modal

  • The reward’s loyalty points cost is temporarily subtracted from the guest’s loyalty points balance

  • Loyalty points that will be accrued after the order will not be added to the guest’s loyalty points balance at this stage

  • Reward pre-selection is cleared

  • Call the Identify endpoint, which will return the Loyalty User ID, the pre-selected reward, the loyalty points balance and a transaction ID

Guest opens a second Reward on the RBI app, chooses to redeem in restaurant

  • No action

  • User will see modal in the app letting user know, use can only add 1 reward per order and prompting user to replace

  • No action

Guest taps Replace

  • No action

  • New Reward is added to the guest’s pre-selection and the old reward is removed from pre-selection cart

  • No action

Guest either scans the reward’s QR code, or tells the 6 digit code to the cashier

  • New reward replaces the previous selected reward in the POS basket

  • Other items in the POS basket are not removed or replaced

  • Modal is shown to guest confirming that the reward has been added to the POS basket

  • The reward’s loyalty points cost is temporarily subtracted from the guest’s loyalty points balance

  • Loyalty points that will be accrued after the order will not be added to the guest’s loyalty points balance at this stage

  • Reward pre-selection is cleared

  • Keep track of the current basket contents including the past scanned reward

  • Call the Identify endpoint again, which will create a new transaction ID with the new reward

  • Void the previous transaction

  • Wait for Void Confirmation

  • Replace the previous reward in the basket with the new reward

  • Call the Update endpoint with all of the POS basket contents and a status of PENDING

Cashier adds reward to basket

  • Added incrementally

  • No action

  • Call the Transaction Validate endpoint to verify that the current basket selection is valid

  • Note that the call above may return errors. Please refer to Loyalty API v1 - Error Responses for details.

Cashier finalizes the order and guest pays at POS

  • POS prints receipt with points earned & points balance

  • Guest sees updated points balance

 

  • Call the Transaction Update endpoint with a status of CLAIMED