Online Loyalty – Point Redemption at Checkout
Guests with a loyalty account can redeem their points directly at checkout in Online Order – without needing to be physically at the restaurant. This is a powerful feature for increasing repeat sales and making the loyalty program more valuable.
Prerequisites
For loyalty redemption to work online requires:
- Loyalty program activated in admin (module "Loyalty")
- Guest has a verified customer profile via OTP (to link to point balance)
- Guest has enough points for redemption
The guest's flow
- Guest places order as usual via chat
- At checkout, loyalty redemption is shown below the order summary
- The redemption view shows:
- Current point balance (e.g., "280 points")
- Current tier (bronze/silver/gold with color)
- Conversion rate (e.g., "100 points = SEK 50 discount")
- Guest selects how many points to redeem
- Discount is calculated and applied to the order total
- Guest confirms and pays the remaining amount
How it looks in the chat
Your order:
- Caesar salad ... 145 kr
- Cava ... 85 kr
- Today's ... 195 kr
Total: 425 kr
[+] Gift card, points, or stamp card?
├─ Redeem loyalty points
│ Balance: 280 pts · 100 pts = 50 kr
│ [Input: 200]
│ Discount: 100 kr
│
└─ [Redeem]
To pay: 325 kr
[Pay with card]
What happens behind the scenes
- The system validates guest has sufficient balance
- Validates order is not yet paid
- The discount is applied to the order total
- On payment, points are deducted definitively from balance
- If payment fails, redemption is rolled back
Conversion rate
The rate is configured in Admin → Loyalty → Settings:
- Earning rate – e.g., 1 point per SEK 10 spent
- Redemption rate – e.g., 100 points = SEK 50 discount
Different rates are possible for different tiers – e.g., gold members get 100 points = SEK 60.
Limitations
Max redemption per order
Some restaurants want to limit how much of an order can be paid with points (e.g., max 50%). This is configured in settings.
Minimum redemption
Often set to minimum 100 points per redemption to avoid micro transactions.
Points not earned on redeemed portions
If the order is SEK 400 and SEK 100 is paid with points, the guest only earns points on the remaining SEK 300.
Interaction with gift cards and stamp cards
The guest can combine multiple payment methods in the same checkout:
- Redeem 100 points = SEK 50 discount
- Redeem gift card worth SEK 100
- Pay remaining SEK 275 with card
The system allows this and each redemption is logged separately.
Accounting
Loyalty discount is handled as revenue reduction (reduction of revenue), NOT as a liability per Swedish GAAP. This means:
- No account 2421 or similar liability account is used
- The discount reduces the revenue account (e.g., 3001) proportionally
- VAT decreases proportionally
Read details in the accounting article "Loyalty Redemption – Revenue Reduction".
Security
- SMS verification always required before redemption – prevents someone from using another's balance
- Race conditions protected via secure transactions
- Balance updated atomically – either the entire operation succeeds, or it's rolled back
Error handling
"Insufficient balance"
The guest tried to redeem more points than they have. Show current balance and ask them to choose a lower amount.
"Order already paid"
Redemption must happen before payment. If the order is already paid, points can no longer be redeemed on that specific order.
"Loyalty program disabled"
The restaurant doesn't have the loyalty module activated. Contact the restaurant.
Tips for restaurateurs
- Promote online redemption – send SMS to guests with points who aren't logging in
- Tier discounts + points work well together – gold members can get both tier discount and redeem points
- Set minimum redemption to avoid 1-point transactions that only create friction
This feature is part of Vendion Online Order.
Curious how it looks in practice? Read more about the product or book a short demo.
Was this article helpful?
