Transaction Update (PUT) - Pay@Counter
Use Case: Kiosk sends this transaction request with the order details to update the loyalty transaction. If the Kiosk states this transaction should be claimed, this will result in the user earning and redeeming eligible points.
Endpoint URL: https://{reg}-{env}-{brand}-loyalty-middleware.rbictg.com/loyalty/transaction/pos/{loyaltyTransactionId}
Variation: Kiosk sends this transaction request with the final order details to let us know that the customer will be paying at the counter. The status for this payload must be PENDING
to let us Contents
Table of 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 us the Loyalty API to claim it at a later stepstage. The payments
field will be empty in this case as the customer has yet to complete their order.
Info |
---|
...
This process assumes that the |
...
later will |
...
provide the same |
...
PLU for the |
...
Example request
Code Block |
---|
{ "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
Code Block |
---|
{ "loyaltyId": "$loyaltyUserId", "points": 14464, "pointsEarned": 50, "pointsRedeemed": 750, "transactionId": "$loyaltyTransactionId" } |
...