Skip to main content

Loyalty — Gems

Gems are Royal Glow’s loyalty currency. Customers earn them automatically when they pay for services, and spend them on specific services from a redeemable catalogue. It is a simple “spend a little, get a little back” programme that rewards repeat visits.
Gems are not a rupee discount. A customer redeems gems against a specific service (e.g. “70 gems for a Classic Manicure”), not as money off a bill.

What it is

A way to turn regular spending into free services over time. Every paid service visit quietly adds gems to the customer’s balance. Once they have enough, they can claim a service from the gems catalogue without paying for it.

How it works

1

Earn

When a service booking is completed and invoiced, the customer earns 1 gem for every ₹100 invoiced, rounded down (floor). A ₹1,300 service invoice earns 13 gems.
2

See the balance

The customer’s gems balance, lifetime totals, and transaction history appear on their /gems page, alongside the catalogue of services they can redeem.
3

Redeem

The customer picks a catalogue service their balance covers; the gems are deducted and the service is theirs.
4

Expire

Gems expire 365 days after they are earned. A background job sweeps expired gems automatically.

A quick example

Earning always rounds down: a ₹1,099 invoice earns 10 gems, not 10.99.

Rules

Gems cannot combine with offers. Gems and an offer cannot both be applied to the same booking — a customer uses one or the other, never both.
1 gem per ₹100 invoiced, floored. Earning always rounds down — a ₹1,099 invoice earns 10 gems, not 10.99.
Service invoices only. Gems are earned on service invoices. No gems are earned on membership purchases or membership sessions. See SPA Memberships.
365 days after they are earned, handled by a scheduled background job.
No. Redemption claims a specific catalogue service (e.g. “70 gems for a Classic Manicure”), not a discount on the bill total.
Loyalty transactions are typed earned, redeemed, expired, or adjusted. A brand-new customer’s loyalty account is created on first read, so they see a zero balance rather than an error.

Loyalty & Offers API

The gems balance, transaction history, and redeemable catalogue endpoints.

Offers & Combos

Why gems and offers cannot be combined on one booking.

Billing & Invoicing

Service invoices are what earn gems.

Data Model

The loyalty_account and loyalty_transaction tables.
Last modified on August 29, 2026