Loyalty cards

Loyalty cards

This page describes an extension to Qerko API for loyalty cards. This allows the customer to add his loyalty card to Qerko app and enjoy benefits which are offered by the restaurant. The card can work across multiple restaurants. There are two problems which have to be addressed in order to get this extension to work. First problem is the authorization of the loyalty card. The second problem is the application of the loyalty card.

Authorization of the loyalty card

We will need a card authority in this step. It can be the POS, or it can be an independent component or another POS instance. If the loyalty card works only in one restaurant, it can be the POS. If the loyalty card works in multiple restaurants, it will probably be an independent component. Card authority verifies the guest and his loyalty card. It also passes the authorization result to Qerko. It is connected to Qerko using websocket or long-polling connection, but it doesn’t have to implement standard POS methods.

The process - from the customer perspective

  1. I want to use my loyalty card when I pay by Qerko. So I decide to add my loyalty card into Qerko app. I pick the brand of my loyalty card from the list of supported cards. Qerko app asked me for some information about the card. So I fill in the required information and submit it.

  2. Qerko app presents me with the result of my request. It can be:

    1. The card is authorized and I can use it.

    2. The card is unauthorized for whatever reason so I need to resolve the problem with somebody.

    3. I have to perform some additional action described by a message. Eg: “Check your mail for the verification link.”

  3. The card is added to Qerko app and I can use it from now on.

The process - from the card authority perspective

  1. Qerko sends an authorization request to the authority which is assigned to the selected brand of the loyalty card. Card info and a list of verified emails is included in the request. Card info can be any set parameters from the physical loyalty card, or it can be a code generated by the personnel of the restaurant. The specific form is configured per card brand.

  2. The authority processes the request and responds with a response. If the response contains the final authorization result, the process has ended. If the response doesn’t contain the final authorization result, Qerko will await the result anytime in the future. Feel free to use any two-factor authentication method (ex: email with verification link). Qerko will wait. When the result is available, the authority submits it to the Qerko. Qerko will notify the customer about the result.

  3. The end. The customer can use his loyalty card from now on.

Usage of the added card

The POS has to implement methods which allow Qerko and POS to negotiate an offer for the customer. POS can ask the user any additional questions. Many loyalty cards offer multiple possibilities so we need to figure out what the customer wants to do with it. Example: gain loyalty points vs. spend them.

The process - from the customers perspective

  1. I pick my items and choose to use my previously added loyalty card. The Qerko app shows me my bill, but I can not modify items any more and there is a form which I have to fill in. Alternatively I can go back and start it over or opt not to use my loyalty card.

  2. I submit the required information until there is no form to fill in any more. Qerko app displays the bill with the applied bonus. It can be a discount or no bonus at all, because I have opted to receive loyalty points.

  3. I make the swipe gesture to proceed with the payment.

  4. The bill is paid. I can go home now :)

The process - from the POS perspective

  1. Qerko requests POS to create a new individual bill with exact items. The request contains the id of the source bill, loyalty card token (result of authorization) and items. POS responds with an individual bill structure. It can contain a set of questions which have to be answered in order to proceed.

  2. The customer submits responses and Qerko forwards them to POS along with the individual bill id. POS responds with a recalculated individual bill which may contain another set of questions. We call this “the negotiation”, because the customer is negotiating with the POS. This step repeats until POS has returned no additional questions.

  3. The bill is paid like any other bill. If the customer has left this process anytime before this step, Qerko requests POS to cancel the individual bill. POS should, but doesn’t have to, return items to the original bill. The customer is returned back to the individual bill (if it exists) or to the original bill (if it exists) or message “Your bill was closed” will be displayed.