Versions Compared

Key

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

...

The Validate Transaction endpoint is used to validate a loyalty order at a client device (typically a POS or Kiosk terminal). The Loyalty Platform will evaluate the order and determine if the user meets eligibility requirements of any included Rewards and Offers. This request should be an exact mirror of what the client device expects to send when they actually claim the transaction when calling the update endpoint Loyalty API v1 - Update.

Request format

Endpoint

PUT POST /loyalty/transaction/pos/validate/{loyaltyTransactionId}

...

  • loyaltyId <string>: unique identifier of the loyalty user in UUID format.

  • transactionId <string>: unique identifier of the loyalty transaction created in UUID format.

  • channel <string>: “Restaurant”, “App”, or “Web”. Always use “Restaurant” for In-Restaurant orders.

  • created <string>: string that represents the current date and time of the request.

  • serviceMode <string>: service mode of the order being placed. This can be “EAT_IN”, “TAKEOUT”, ”DRIVE_THRU”, “CURBSIDE”, or “TABLE_SERVICE”.

  • status <string>: status of the order that indicates if the order is still pending or if it has been completed. This can be “PENDING” for orders not yet completed and “CLAIMED” for orders that were completed.

  • transactionDetails: object identifying order information from the request (POS or Kiosk):

    • currency <string>: the ISO currency code used in the market.

    • order: array identifying all products inside the order. each product is an object with these fields:

      • name <string>: name of the product.

      • price <number>: price of the product.

      • productId <string>: PLU of the product.

      • productType <string>: type of the product. This can be “combo”, “item”, “reward” or “offer”.

      • quantity <number>: number of times this product was ordered.

      • referenceId <string>: line ID of product

      • tax <number>: tax amount attributed to this product.

      • parentReferenceId <number> (optional): line id of parent product. Only relevant for children products (e.g. a coke drink that was ordered as part of a whopper medium meal combo).

      • incentiveId <string> (optional): Sanity ID of the offer or reward. Only needs to be sent for offers and rewards.

      • loyaltyEngineId <string> (optional): Loyalty Engine ID of the personalized offer. Only needs to be sent for personalized offers, but it can be sent for all offers. When this field is sent for a personalized offer, the incentiveId does not need to be sent. Read more about this here: https://rbictg.atlassian.net/wiki/x/iABm-g.

    • payments: array with an object identifying payment information of the order:

      • amount <number>: total cost of the order in cents.

      • type <string>: type of payment method that was used during payment for order. This can be “CASH”, “VISA”, “MASTERCARD”, ”AMEX”.

    • posVendor: object identifying system making the request (POS or Kiosk):

      • transactionId <string>: the POS transaction identifier.

      • storeId <integer>: uniquely identifies the store where the guest is identifying from.

      • terminal <string> (optional): identifies the POS or Kiosk terminal used in the restaurant

      • operator <string> (optional): identifies the POS operator (only applicable for orders made on a POS terminal)

      • posType <string>: identified the type of POS or Kiosk system making the request. This value must have been previously agreed between the vendor and RBI, so that the correct integration configuration is applied. In most cases, this will be set to a value of “Partner”.

      • supportingPos <string> (optional): used mainly by kiosk vendors, this field will need to refer to the POS vendor of the store the kiosk is sending the request from.

...