POS - Edge Cases

This page documents edge cases that can happen when RBI guests place orders using the POS, part of . See also and .

Contents

1. Switch users

This is a potential fraud use, where a guest authenticates themselves using one loyalty code, and then attempts to redeem rewards using a different loyalty code.

This scenario is the same whether guests are redeeming offers or 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 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 opens an reward on the RBI app in a different device, using a different user, and chooses to redeem in restaurant

  • No action

  • Reward of is added to the guest’s pre-selection (on the second device)

  • A unique reward code is generated

  • No action

Guest (on their second device) either scans the reward’s QR code, or tells the 6 digit code to the cashier

  • Error modal shows in the POS, letting the cashier know that the last scan was made using a different user account

  • Contents of the second scan are not added to the guest’s basket (so the current basket remains unchanged)

  • The second scan is cancelled/voided

  • Initial order can continue normally

  • Modal is shown to the second user confirming that the offer 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

  • A few seconds later, the loyalty points are returned to the second user

  • Keep track of the current basket contents including rewards

  • Call the Identify endpoint again, and wait for the response

  • The new transaction will come with a different loyaltyId

  • Check the Loyalty ID of this transaction does not match Loyalty ID of previous transaction

  • Void this second transaction

  • Keep the current basket open with previous transaction

2. Payment Failure

This can be caused if users do not have enough funds to be able to complete the transaction.

This scenario is the same whether guests are redeeming offers or 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 create a new transaction ID and return selected reward(s)

Cashier attempts to finalize the order but there is a payment failure and order is not completed

  • Order at the POS is cancelled

  • A few seconds later, the loyalty points of the pre-selected reward are returned to the guest

 

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

  • Call the Void endpoint to cancel the order

There are no more scenarios. You can return to