/
Pay at counter

Pay at counter

Contents

Overview

When guests have any difficulty paying at a kiosk device, they can transfer their order to a counter and continue there (typically to pay with cash). The process is described in detail here.

This document explains how Loyalty API endpoints must be used to support the pay at counter process.

Transaction Update

When a guest chooses the pay at counter option, kiosk devices must send a Loyalty API v1 - Update request with a status of PENDING. This will let the Loyalty API know that the transaction is not yet complete and the POS will call the Loyalty API to claim it at a later stage. The payments field will be empty in this case as the customer has yet to complete their order.

This process assumes that the CLAIMED call made by the POS later will provide the same PLU for the productId and incentiveId field that the Kiosk provides.

Example request

{ "channel": "Restaurant", "created": "2021-05-04T13:39:47Z", "loyaltyId": "$loyaltyUserId", "serviceMode": "$serviceMode", "status": "PENDING", "transactionDetails": { "currency": "USD", "order": [ { "name": "med whopper combo", "price": 5.00, "productId": "$plu", "productType": "combo", "quantity": 1, "referenceId": "1", // line id "tax": 0 }, { "name": "whopper", "parentReferenceId"?: "1", // line id of parent (for children elements) "price": 0, "productId": "$plu", "productType": "item", "quantity": 1, "referenceId": "2", // line id "tax": 0 }, { "name": "med fries", "parentReferenceId"?: "1", // line id of parent (for children elements) "price": 0, "productId": "$plu", "productType": "item", "quantity": 1, "referenceId": "3", // line id "tax": 0 }, { "incentiveId": "$sanityRewardId", "name": "free drink reward", "price": 0, "productId": "$rewardPlu", "productType": "reward", "quantity": 1, "referenceId": "4", // line id "tax": 0 }, { "incentiveId": "$sanityOfferId", "name": "$2.99 chicken sandwich meal", "price": 2.99, "productId": "$offerPlu", "productType": "offer", "quantity": 1, "referenceId": "5", // line id "tax": 0.50 } ], "payments": [], "posVendor": { "operator": "$operatorId", "posType": "$posVendorName", "storeId": "$rbiStoreId", "supportingPos": "POS vendor name (optional field)", // vendor to return plu for "terminal": "$terminalNumber", "transactionId": "$posTransactionId" } }, "transactionId": "$loyaltyTransactionId" }

Example response

{ "loyaltyId": "$loyaltyUserId", "points": 14464, "pointsEarned": 50, "pointsRedeemed": 750, "transactionId": "$loyaltyTransactionId" }

 

Related content

Redeem discounts
Redeem discounts
Read with this
Loyalty API v1 - Unclaimed
Loyalty API v1 - Unclaimed
More like this
Personalized offers
Personalized offers
Read with this
Loyalty API v1 - Void
Loyalty API v1 - Void
More like this
Listing offers and rewards on kiosks
Listing offers and rewards on kiosks
Read with this
Loyalty API - v1 (Current)
Loyalty API - v1 (Current)
Read with this