Versions Compared

Key

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

This is the current version we recommend using for Loyalty API integration for both POS and Kiosk vendors. This supports multi-scanning and showing offers on the Kiosk UI.

Table of Contents
minLevel1
maxLevel6
outlinefalse
styledefault
typelist
printabletrue

Brands and markets want either their pre-existing or new kiosk implementations to work within the in-store loyalty experience. The kiosk user experience will have some slight nuances that we need to account for relating to the Loyalty APIs how Kiosks integrate with them.

...

  • x-region field. The value passed in this field should be the 2-character iso country code.

  • x-api-key field. The value passed in this field will be an environment, vendor and brand specific API key.

  • x-user-datetime field. The value passed in this field should be the local iso datetime string.

More Information on fields below:

  • "productType": "reward" or offer

Endpoints

Identify (POST)

Use Case: Successfully identify the loyalty user along with any potential rewards/offers that they had pre-selected within the app.

...

Code Block
{
    "channel": "Restaurant",
    "created": "2021-05-04T13:39:47Z"
    "serviceMode": "Eatin",
    "status": "CLAIMED",
    "transactionDetails": {
        "currency": "USD",
        "order": [
            {
                "name": "med whopper combo",
                "price": 5.00,
                "productId": "$plu", // required
                "productType": "combo", // required
                "quantity": 1,
                "referenceId": "1", // line id
                "tax": 0
            },
            {
                "name": "whopper", 
                "parentReferenceId"?: "1", // line id of parent (for children elements)
                "price": 0,
                "productId": "$plu", // required
                "productType": "item", // required
                "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": [
            {
                "amount": 500,
                "type": "CASH",
                "ccToken": "optional PAN token"
            }
        ],
        "posVendor": {
            "operator": "300", // cashier / operator id
            "posType": "Kiosk vendor name",
            "storeId": "9999",
            "terminal": "0", // terminal id
            "transactionId": "000000000257" // pos transaction id
        },
    }
}

...

Code Block
{
  "transactionId": "$transactionId" // uuid of the loyalty order/transaction
}

...

 

Redeem Promo Code

Use Case: Redeem Promo Code and unlock Loyalty Offer

Endpoint URL: https://{reg}-{env}-{brand}-loyalty-middleware.rbictg.com/loyalty/promo-code/redeem

Expected Request Payload:

Code Block
{
  "loyaltyId": "4711fc2a-3a8f-414f-a9e7-44dd5231dca7", // uuid of the loyalty user
  "promoCode": "123456", // promo code identifier
  "posVendor": {
    "operator": "300", // cashier / operator id
    "posType": "Kiosk vendor name",
    "storeId": "9999",
    "terminal": "0", // terminal id
  },
}

Expected Response Payload:

Code Block
{
  "sanityId": "5f887b7e-348f-4861-822a-7dad712989e8" // sanityid of the offer redeemed
}