Redeem at point-of-sale

Streamline using gift vouchers for staff and customers

A common use case of the API is to integrate a process for redeeming vouchers at the point-of-sale. The recommend approach is to communicate via our API in real-time, this removes any need to create a middle-layer to store information that could become out of date.

Benefits

For the business it saves valuable time by allowing staff to lookup and redeem the voucher directly in the point-of-sale, saving time, reducing training requirements and eliminating potential errors.

Deliver an accurate bill with the customers’ gift voucher credit applied to the total and shown on the receipt, making the payment process as simple as paying with cash or card.

Configuration values

There are two values that should be stored as configuration or environment values, the first is the API key used to communicate with the API, the key can have access to multiple stores with multiple locations potentially shared across them.

The second is the , this should map directly to the individual real-world venue that the point-of-sale is located in.

As an example, Restaurant Group could have two restaurants, Le Restaurant Winchester and Restaurant Covent Garden

The point-of-sales in both would be expected to share the same API key but use a different . Often these values are effectively "hardcoded" in as its extremely rare for a POS to move venue, however with the locations endpoint it is possible to offer a selector to the user for locations if applicable.

Usage

Often within a point-of-sale there are multiple payment methods such as card or cash, we recommend treating the use of gift vouchers as another payment method.

  1. Present the user the option of using a gift voucher, we recommend using the term "Gift voucher" and not "Giftpro" as the user may not be aware of who Giftpro is.

  2. User input box for the voucher code from the gift voucher - Providing the code is ideally done via any supported input method on the point-of-sale, scanning, magnetic swipe, touch or typing.

  3. Use the code lookup endpoint to check the current state of the code. We recommend including the locationID configuration value as a query parameter to allow the API to check if the voucher is configured as redeemable at the location.

{
  "expiryDate": "2024-09-12 11:32:41",
  "validFromDate": "2022-08-13 11:32:41",
  "name": "Monetary Voucher",
  "total": 100.00,
  "remainingValue": 100.00,
  "status": "Valid",
  "partiallyRedeemable": false,
  
}
  1. For a valid voucher it may be useful to show the key attributes related to the voucher and prompt the user to confirm they want to use the voucher.

    1. Name

    2. Current balance

    3. Expiry

There are other attributes such as description, terms and conditions which are useful however the content can be of variable size which can be difficult when screen space is restricted.

  1. Use the redeem code endpoint to update the code as being used. Hold onto the eventID from the returned balance event.

{
  "eventID": 453562,
  "domainID": 479,
  "locationID": 1204,
  "amount": 100.00,
  "startingBalance": 100.00,
  "balance": 0.00,
  "type": "Redeemed",
  "created": "2023-12-07 22:19:02",
  
}
  1. To support the use case where the voucher should no longer be used, where for example the customer changes their mind and decides to pay with cash instead you can use the reverse balance event endpoint to undo the redeem call.

Summary of implementation

Last updated