Key points
- Points are earned on the items in the order after discounts. Service and delivery fees never earn points.
- New points wait as pending, then become available a set time after payment or after hand-over.
- Customers redeem in whole blocks, up to a maximum share of the order.
- Every change is a new line in an append-only ledger, so a balance can always be explained.
What earns points
Each restaurant has one active points program. It says how much an order must be worth to earn points, for example one point for every 1,000 of order value, which is the setting a new restaurant starts with.
The amount that counts is the value of the items after any promotion or points discount. Service fees and delivery fees are never included, and a combo counts at the combo price the customer actually paid, not at the price of its items bought separately.
- An order earns points once. A second earning for the same order is refused.
- No points are earned when loyalty is switched off for the restaurant, or when the order has no customer account.
- Higher customer tiers can multiply what an order earns, from ×1 up to ×5.
Pending first, available later
New points are recorded as pending. They become available after a delay that starts at one of two moments, set for each restaurant:
- Payment: when the cashier confirms the cash, or when cash on delivery is recorded.
- Hand-over: when the order is collected or completed and has been paid.
The delay itself can be between zero minutes and seven days; a new restaurant starts with two hours. A background job checks the queue every few seconds and only activates points for orders that were paid in cash and were not cancelled or expired.
The waiting period gives your team time to catch a mistaken or cancelled order before the customer can spend the points.
Redeeming points at checkout
Points are spent in blocks. A new restaurant starts with 100 points worth 5,000 of order value, and a cap of 20% of the order that points can pay for. Each restaurant can change these numbers.
- At checkout the customer chooses how many blocks to use. The app shows the discount before the order is placed.
- The points are reserved, so they cannot be spent twice while the order is open.
- When the cash is confirmed or the restaurant approves the order, the reservation becomes a redemption.
- If the order is cancelled, reserved points are released and redeemed points are given back.
A restaurant can also run its rewards as a catalog instead of a discount: customers exchange points for a specific menu item. That option is explained in the article on rewards, the prize wheel and Joker offers.
Expiry, and the reminder before it
Points expire a set number of days after they became available, not after the order was placed. A new restaurant starts with 180 days.
Only the unspent part of a credit expires. When a customer spends points, the ones that expire first are treated as spent first, so customers never lose points they have already used.
If some of a credit is still unspent within 24 hours of expiring, the customer gets one reminder. If the points are spent before the reminder goes out, it is not sent.
A ledger that cannot be rewritten
Every earning, activation, redemption, expiry, reversal and manual adjustment is written as a new line. The database rejects any attempt to update or delete an existing line, so the history of every balance stays intact.
- Cancellations add a reversing line instead of erasing the original.
- A manual adjustment by staff needs a reason and is recorded in the audit log. It cannot take a balance below zero.
- Each restaurant's ledger is isolated from every other restaurant's in the database.