Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Steps

Expected results (Kiosk)

Expected results (RBI app)

Loyalty API usage (Kiosk)

Guest opens the Loyalty code page on the RBI app

  • No action

  • Loyalty code page is displayed:

  • No action

Guest taps on the Kiosk screen to start a new order

  • Loyalty sign in page shows up on the Kiosk and scanner becomes active

  • No action

  • No action

Guest scans the loyalty code or inputs 6 digit code in Kiosk

  • Kiosk authenticates the guest and shows the home page

  • Scanner remains active

  • 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 opens an 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 inputs 6 digit code into Kiosk

Info

Note: the pre-selected reward(s) will show in the Kiosk screen after scanning with an option for the user to customize it

  • Reward(s) are shown on the Kiosk and guest has an option to customize

  • 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 at this moment

  • 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 Kiosk basket contents and a status of PENDING

Guest customizes reward(s) at will and adds to basket

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

Info

Note: If a reward can’t be redeemed because the reward rules are not met, the Kiosk displays a modal to the guest 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 - Error List for details.

On the Kiosk UI, navigates to the rewards page

Info

Note: this step is only possible if the market has decided to allow showing rewards on the UI.

  • Rewards are displayed

  • No action

Guest adds a reward to basket

  • Guest selects and adds reward to cart

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

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

  • 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 - Error List for details.

Guest remove a reward from basket

  • Guest removes a reward from Kiosk basked

  • The reward’s loyalty points is temporarily added back to the guest’s loyalty points balance in the app

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

  • 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 - Error List for details.

Guest goes to checkout screen

  • Guest sees basket of all items at checkout

  • 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 - Error List for details.

Guest chooses to pay at the counter using cash

Note

After guest chooses to pay at counter, transaction might be closed after 15mins

  • Kiosk and POS exchange an order ID (this depends on the specific POS/Kiosk integration)

  • Receipt is printed with the pending order ID

  • No change

 

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

  • Kiosk sends this transaction information with the order details to POS vendor

Guest arrives at the counter to pay, guests add 1 more menu item to order and pays for the order

  • Cashier finds the order of guest

  • Cashier adds 1 more menu item to open order

  • Cashier finalizes the order at POS after receiving cash payment

  • POS prints receipt with points earned & points balance

Info

Note: assumption that the open order is associated with the guest’s Loyalty identifier.

  • Guest sees updated points balance

  • The Kiosk should communicate with the POS to transfer the order over (this step is implementation-dependent and out of scope for this document)

  • No action performed on the Loyalty API

  • The 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 - Error List for details.

  • After collecting the payment, the POS should call the Transaction Update endpoint with a status of CLAIMED

  • After this call it is not possible to modify the loyalty transaction anymore

Info

Note: In the case guest never goes to cashier to complete payment

  • POS cancels the order after X minutes (configurable by the POS) that the guest has not paid the order started at the Kiosk

  • Temporary reward points that were deducted from User’s account are returned back to user balance after X minutes

  • Call the Void endpoint to cancel the order after X minutes

...