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

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.

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

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 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.

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

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 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.

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

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

  • 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

...

If both offer and rewards are included in the Loyalty Code screen, the Loyalty API will continue returning both Rewards and Offers. The Kiosk vendor will be responsible to show the error message to users and to remove the Reward from Kiosk cart.

Steps

Expected results (Kiosk)

Expected results (RBI app)

Loyalty API usage (Kiosk)

Guest opens an offer on the RBI app

  • N/A

  • Reward page is displayed:

  • No action

Guest taps “Redeem In restaurant”

  • N/A

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

  • A unique Reward code is generated

  • No action

Guest taps on the Kiosk screen and scans the reward’s QR code or inputs 6 digit code into Kiosk

  • User sees pop up in Kiosk letting user Rewards are not supported in this store and they will not gain/burn any loyalty points with this order

  • Nothing changes on order / cart that was gathered in the Kiosk

Info
  • Modal is shown to guest informing that this store does not participate in the loyalty program and no loyalty points will be earned

  • 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

  • The Kiosk vendor will know this store does not have Loyalty enabled and show error message to let user know they cannot redeem rewards

  • If a transaction is sent with a reward in cart for a store that does not have in-store loyalty, the Loyalty APIs will return an error

...

Steps

Expected results (Kiosk)

Expected results (RBI app)

Loyalty API usage (Kiosk)

Guest opens Loyalty Code on the RBI app

  • N/A

  • Not

Guest taps on the Kiosk screen and scans the Loyalty QR code or inputs 6 digit code into Kiosk

  • User sees pop up in Kiosk letting user know loyalty is not supported in this store and they will not gain/burn any loyalty points with this order

  • Nothing changes on order / cart that was gathered in the Kiosk

info

If both offer and rewards are included in the Loyalty Code screen, the Loyalty API will continue returning both Rewards and Offers. The Kiosk vendor will be responsible to show the error message to users and to remove the Reward from Kiosk cart.

  • Modal is not shown to guest

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

  • The Kiosk vendor will know this store does not have Loyalty enabled and show an error message to let users know that they won’t earn points with this transaction (e.g. e.g. ‘Thanks for scanning your MyBK code! Unfortunately this restaurant does not support loyalty yet so you won’t earn points with this transaction.’).

...