...
This document lists all the graphql endpoints will be used in BK ES Loyalty migration Phase 1 and Phase 2.
Authentication
Different authentication <token>
will be provided for test(staging
) and production(prod
) enviroments, and the authentication is also vendor specific.
...
For security purpose, all the calls to our graphQL endpoints should NOT be directly from the frontend, please integrate the calls into existing/new-created backend APIs.
Endpoints
The base URL is also environment specific, it’s https://euw3-<env>-bk-loyalty-middleware.rbictg.com/loyalty
, for example,
...
https://euw3-prod-bk-loyalty-middleware.rbictg.com/loyalty
Get RBI Loyalty User
Desc: This endpoint is used to get the details of a RBI Loyalty user, includes the information like RBI Loyalty Id
, user email
, Loyalty points
and Loyalty tier
.
...
Code Block | ||
---|---|---|
| ||
{ "createdAt": "string", "id": "string", // RBI Loyalty Id "name": "string", "updatedAt": "string", "clientUserId": "string", "dateOfBirth": "string", "email": "string", // user email "emailVerified": true, "expirationBuckets": [ { "expirationDate": "string", "pointsToExpire": 0 } ], "loyaltyTier": { "loyaltyTierExpiryDate": "string", "loyaltyTierKey": "Tier_1", // Loyalty Tier, can be Tier_1 and Tier_2 "pointsEarnedInTimeConstraint": 0, "startAt": "string" }, "metadata": { "additionalProp1": "string", "additionalProp2": "string", "additionalProp3": "string" }, "offerRedemptionAvailability": { "availableAfter": "string", "transactionId": "string" }, "phoneNumber": "string", "phoneVerified": true, "points": 0, // Loyalty points "pointsEarningDisabled": true, "pointsExpiryDateKey": "string" } |
[APP] Create RBI Loyalty Transaction - Airtouch
Desc: This endpoint is used to submit a transaction to RBI Loyalty platform for both Web and Mobile App. The payload needs to include the information, like RBI user Id
, RBI Loyalty Id
, items information
, store id
...
URL: /transaction
Method: POST
Without Reward
Payload:
Code Block | ||
---|---|---|
| ||
{ "cartEntries": [], "channel": "APP", // WEB, APP "cognitoId": "{{testRbiUserId}}", // RBI user Id "currency": "EUR", // currency "email": "{{testUserEmail}}", // user email "fulfillment": {"type": "DELIVERY"}, // DELIVERY, DRIVE_THRU, EAT_IN, TAKEOUT, N/A "loyaltyId": "{{testLoyaltyId}}", "orderId": { "id": "test-transaction-id", // the same as posVendor-transactionId "type": "AIRTOUCH" // the same as posVendor-type }, "payments": [{ "amount": 100, // in cent unit "type": "VISA" // VISA, AMEX, CASH, OTHER }], "posVendor": { "transactionId": "test-transaction-id", // can be a unique id to indicate the order "type": "AIRTOUCH" }, "promotions": [], // rewards can be added "serviceMode": "DELIVERY" // DELIVERY, DRIVE_THRU, EAT_IN, TAKEOUT, N/A } |
With Reward
Payload:
Code Block | ||
---|---|---|
| ||
{ "cartEntries": [], "channel": "APP", // WEB, APP "cognitoId": "{{testRbiUserId}}", // RBI user Id "currency": "EUR", // currency "email": "{{testUserEmail}}", // user email "fulfillment": {"type": "DELIVERY"}, // DELIVERY, DRIVE_THRU, EAT_IN, TAKEOUT, N/A "loyaltyId": "{{testLoyaltyId}}", "orderId": { "id": "test-transaction-id", // the same as posVendor-transactionId "type": "AIRTOUCH" // the same as posVendor-type }, "payments": [{ "amount": 100, // in cent unit "type": "VISA" // VISA, AMEX, CASH, OTHER }], "posVendor": { "transactionId": "test-transaction-id", // a unique id to indicate the order "type": "AIRTOUCH" }, "promotions": [ { "id": "{{testRewardLoyaltyId}}", // the RBI Loyalty engine id of a Reward "name": "test-reward-id", // get from Sanity "type": "REWARD" } ], // rewards can be added "serviceMode": "DELIVERY" // DELIVERY, DRIVE_THRU, EAT_IN, TAKEOUT, N/A } |
[WEB] Create RBI Loyalty Transaction - Homeria
Desc: This endpoint is used to submit a transaction to RBI Loyalty platform for both Web and Mobile App. The payload needs to include the information, like RBI user Id
, RBI Loyalty Id
, items information
, store id
URL: /transaction
Method: POST
Without Reward
Payload:
Code Block | ||
---|---|---|
| ||
{ "cartEntries": [], "channel": "WEB", // WEB, APP "cognitoId": "{{testRbiUserId}}", // RBI user Id "currency": "EUR", // currency "email": "{{testUserEmail}}", // user email "fulfillment": {"type": "DELIVERY"}, // DELIVERY, DRIVE_THRU, EAT_IN, TAKEOUT, N/A "loyaltyId": "{{testLoyaltyId}}", "orderId": { "id": "test-transaction-id", // the same as posVendor-transactionId "type": "HOMERIA" // the same as posVendor-type }, "payments": [{ "amount": 100, // in cent unit "type": "VISA" // VISA, AMEX, CASH, OTHER }], "posVendor": { "transactionId": "test-transaction-id", // can be a unique id to indicate the order "type": "HOMERIA" }, "promotions": [], // rewards can be added "serviceMode": "DELIVERY" // DELIVERY, DRIVE_THRU, EAT_IN, TAKEOUT, N/A } |
With Reward
Payload:
Code Block | ||
---|---|---|
| ||
{ "cartEntries": [], "channel": "WEB", // WEB, APP "cognitoId": "{{testRbiUserId}}", // RBI user Id "currency": "EUR", // currency "email": "{{testUserEmail}}", // user email "fulfillment": {"type": "DELIVERY"}, // DELIVERY, DRIVE_THRU, EAT_IN, TAKEOUT, N/A "loyaltyId": "{{testLoyaltyId}}", "orderId": { "id": "test-transaction-id", // the same as posVendor-transactionId "type": "HOMERIA" // the same as posVendor-type }, "payments": [{ "amount": 100, // in cent unit "type": "VISA" // VISA, AMEX, CASH, OTHER }], "posVendor": { "transactionId": "test-transaction-id", // can be a unique id to indicate the order "type": "HOMERIA" }, "promotions": [ { "id": "{{testRewardLoyaltyId}}", // the RBI Loyalty engine id of a Reward "name": "test-reward-name", // get from Sanity "type": "REWARD" } ], // rewards can be added "serviceMode": "DELIVERY" // DELIVERY, DRIVE_THRU, EAT_IN, TAKEOUT, N/A } |
[WEB/APP] Create OTP
Desc: This endpoint is used to submit a transaction to RBI Loyalty platform for both Web and Mobile App. The payload needs to include the information, like RBI user Id
, RBI Loyalty Id
, items information
, store id
URL: /otp
Method: POST
Without Reward
Payload:
Code Block | ||
---|---|---|
| ||
{ "loyaltyId": "string", // RBI Loyalty Id "order": [], // Rewards can be added "restaurantId": "string", // restaurant id "userDateTime": "string" // user time in the format like "2024-01-01 12:12:12" } |
With Reward
Payload:
Code Block | ||
---|---|---|
| ||
{ "loyaltyId": "string", // RBI Loyalty Id "order": [ { "incentive": { "id": "{{testRewardLoyaltyId}}", // Reward RBI Loyalty Engine Id, get from Sanity "type": "REWARD" }, "quantity": 1, "referenceId": "1", "productId": "{{testRewardSanityId}}", // Reward Sanity Id, get from Sanity "vendorConfigs": { // get from Sanity "_type": "vendorConfigs", "partner": { "_type": "vendorConfig", "constantPlu": "4444", "pluType": "constantPlu" } } } ], // Rewards can be added "restaurantId": "string", // restaurant id "userDateTime": "string" // user time in the format like "2024-01-01 12:12:12" } |
...
Code Block |
---|
"test-otp" // the created OTP |
[WEB/APP] Get OTP
Desc: This endpoint is used to get the order selection connected with the OTP, to check if the OTP is identified in store.
...
Code Block | ||
---|---|---|
| ||
{ "updatedAt": "string", "createdAt": "string", "loyaltyId": "string", // RBI Loyalty Id "expiry": 300, // Original setting: after how many seconds, the OTP will be expired, not real-time "order": [], "otp": "string", "restaurantId": "string", "status": "claimed", // claimed or pending, used to indicate if the OTP is identified in store "transactionId": "string", // RBI Loyalty Transaction Id "userDateTime": "string" // // user time in the format like "2024-01-01 12:12:12" } |
[In-Store] Identify RBI Loyalty User
Desc: This endpoint is used to identify a RBI Loyalty User when the user wants to place in-store orders, in this case, we can use the OTP created in last step as the identifier.
...
Code Block | ||
---|---|---|
| ||
{ "balances": [ { "amount": 14464, "currency": "points" } ], "loyaltyUser": { "created": "2021-08-10T12:18:39.180Z", "id": "rbi-loyalty-id", "name": "Farhan" }, "order": [ // Reward information can be included { "productType": "REWARD", "quantity": 1, "referenceId": "00", "price": 0, "incentiveId": "bba6a12d-fe78-468a-a394-d817652442d4", // Reward Sanity Id "loyaltyEngineId": "bdgdgd-fe78-468a-4545-d817dfrd442d4" // Reward RBI Loyalty Engine Id } ], "transactionId": "f4190848-169d-4c69-9f53-f916318c432b" // this transactionId needs to be used in following Transaction update } |
[In-Store] Update RBI Loyalty Transaction
Refer to /wiki/spaces/EGMT/pages/4138467580