LoyaltyMatic
Every point, accounted for.
A headless loyalty engine built like a bank, not a marketing tool.
Multi-program. Multi-brand. Multi-tier. One API.
floating visual
Dashboard Preview
The Philosophy
Every purchase is an act of trust.
Customers choose your brand over a hundred others. Ads can't earn that — only experiences can.
Make every transaction feel like a relationship, not a receipt. The brands that win the next decade won't shout the loudest. They'll listen the closest.
floating visual
Trust over transactions
floating visual
Points psychology in motion
The Mechanism
A points program your customers actually feel.
Humans are wired for progress. Every point earned is a small win. Every reward redeemed, a quiet celebration. That's how loyalty becomes a habit, not a campaign.
Smart discounts
Contextual savings at the moment of checkout.
Surprise freebies
Unexpected gifts that turn a sale into a memory.
Exclusive access
Tier-only privileges that money alone can't buy.
Personal gifts
Rewards tailored to the customer, not the segment.
The Return on Loyalty
Retention is the new acquisition.
Winning a new customer costs five to seven times more than keeping one. Loyal customers buy more, return more often, and bring others with them.
Higher order value
Repeat customers spend significantly more per visit than first-timers.
Repeat purchases on autopilot
Points are an open invitation — and customers come back to claim them.
Built-in brand advocacy
Your best customers become your loudest marketers, for free.
Lower acquisition costs
Earn more from the customers you've already paid to win.
Enterprise-Grade Flexibility
Flexible tier architectures, built for how your business actually works.
You shouldn't have to reshape your loyalty strategy to fit your software. LoyaltyMatic's tier engine adapts to the lifecycle model your customers — and your finance team — already understand.
- 01
Calendar-Year Qualification
Customers earn status during the calendar year and hold it for the full year that follows. A clean, predictable cycle that resets together for every member.
The standard for luxury hotels — Marriott, Hilton
- 02
Rolling 12-Month Window
Status is recalculated dynamically against the last twelve months of activity, with built-in protection windows so frequent customers never feel a cliff.
Used by leading airlines — Emirates, Saudia, MEA
- 03
Permanent / Lifetime Tier
Once a customer crosses the threshold, the privilege is theirs forever. The strongest possible signal that you value the relationship over the transaction.
Loved by lifestyle brands — Sephora, Starbucks
What's inside
Eleven capabilities that separate LoyaltyMatic from the rest.
Three pillars. Eleven cards. One platform built for retailers who refuse to lose track of a single point.
Pillar 01
Trust
Pillar 02
Flexibility
Pillar 03
Operations
Part 1 of 3
Trust
Points you can audit.
floating visual
Trust Visual
Banking-grade bookkeeping of points
Points are a financial liability. We treat them like one.
Immutable, append-only ledger as source of truth
- Every point movement is a permanent entry — earn, redeem, expiry, reversal, transfer
- No row is ever updated or deleted; corrections are written as new compensating entries
- Reconstruct any customer's balance, at any point in time, directly from the ledger
Strict transactional consistency
- Every balance change commits atomically with the transaction, ledger, event, and audit log
- No half-written transactions, no orphaned ledger lines, no balance drift
Nightly reconciliation
- Random-card sampling sums the ledger by bucket and compares to cached balances
- Drift is detected, logged, and surfaced — not silently absorbed
FIFO point consumption
- Oldest earn batches are redeemed first — clean tax and accounting treatment
- Every redeemed point traces back to the specific earn batch it came from
Defensive integrity at the database level
- Balances cannot go negative — enforced by the database, not just the app
- Reversal of an earn that has already been spent is blocked, not silently allowed
floating visual
Banking-grade bookkeeping of points
Built-in audit trail and compliance
Every change is recorded. Forever.
Append-only audit log on every meaningful action
- Registrations, tier changes, manual adjustments, reversals, blocks, configuration changes
- Captures who, what, when, from where — with full before / after state snapshots
End-to-end request tracing
- Every API call gets a request ID that flows through the audit log, the event stream, and the application logs
- Trace any customer interaction across systems in a single query
Designed for multi-year retention
- Audit data is monthly-partitioned — keep 5, 7, or 10 years of history without performance loss
- Cold partitions archive cleanly to long-term storage
Per-customer tier change history
- Every upgrade, downgrade, manual override, and migration captured with the exact rule that triggered it
- Answer "why was I downgraded?" six months later, even after rules change
Multi-tenant isolation and security
Your data is yours. Period.
Database-per-tenant architecture
- Each tenant has a dedicated PostgreSQL database — no shared rows, no cross-tenant queries
- The hardest possible isolation boundary in a multi-tenant SaaS
JWT authentication at the gateway
- API gateway handles JWT validation, rate limiting, and IP allow-listing before requests reach the engine
Idempotency-Key on every write
- Retry-safe API — duplicate POS submissions never produce duplicate points
- Two layers of dedup: explicit key plus a bill / order reference fallback
Secure card number generation
- Cryptographically random, Luhn-checksummed, program-prefixed card numbers
- Typo'd cards bounce before any DB write
Built for compliance frameworks
- SOC 2 / ISO / GDPR / KSA data-residency considerations baked into the architecture
- Append-only tables, immutable audit trail, request tracing — the controls auditors look for
floating visual
Multi-tenant isolation and security
loyaltymatic.io
Flexibility Preview
Part 2 of 3
Flexibility
Any program, any channel.
Multi-program, multi-brand, multi-tier
One platform. Every loyalty structure your business actually needs.
loyaltymatic.io
Multi-program, multi-brand, multi-tier
Multiple loyalty programs per tenant
- Run independent programs side-by-side (Shops Rewards + Online Members + Clinic VIPs)
- Each program has its own currency, points value, validity window, and rules
Brand → Merchant → Terminal → Cashier hierarchy
- Group merchants into brands (Shops, Clinics, Online, App)
- Track activity down to the specific POS terminal and operator
Unlimited tiers per program
- Any tier ladder you want: Blue → Silver → Gold → VIP, or a single flat tier
- Higher tiers earn faster via configurable accrual rates
- Localized tier names (English, Arabic, anything else) baked in
Three industry-standard tier lifecycle patterns out of the box
- Calendar-year qualification (Marriott / Hilton style) — earn in a year, hold for the next
- Rolling 12-month with protection window (Emirates / BA style) — personal anniversary per member
- Permanent / lifetime tier (Sephora / Starbucks style) — once earned, never lost
JSON-driven tier rules
- Continuous, anniversary-based, or tier-age-gated evaluation
- Compound conditions: upgrade by points OR visits; downgrade only after 12 months at tier
- No code changes to update a rule — config only
Headless and API-first
Wire loyalty into anything you already have. We don't dictate your stack.
REST API for every operation
- Earn, redeem, reverse, refund, balance inquiry, customer management, transaction lookup
- One contract used by POS, e-commerce, mobile apps, kiosks, call center, and admin tools
Five ways to identify a customer at the counter
- Card ID, card number, mobile, email, external CRM ID — pick whichever your channel has
- All five resolve to the same wallet behind the scenes
Omnichannel by design
- Same customer, same balance, across every store, your website, your mobile app, and any future channel
- Channel attribution recorded on every transaction (store / ecom / app / kiosk / call_center)
No imposed UI
- You design the customer experience — the platform exposes the data and operations cleanly
- Branded loyalty pages, mobile wallets, custom dashboards all sit on top of the same API
floating visual
Headless and API-first
Real-world transaction handling
Built around the messiness of how real bills actually look.
Line-level earn for multi-product bills
- Send a bill with multiple lines; each line earns, holds, or skips independently based on category rules
- Service fees skip cleanly; subscriptions hold until activation; consultations earn immediately — all in one call
Per-category earning rules
- Each category decides: earn or skip, earn now or hold, earn on discounted items or not
- Priority-driven resolution when a product matches multiple categories
Hold-and-release for subscriptions and pre-paid plans
- Points held when a customer pre-pays for a 30-day plan
- Released day-by-day (or however your business wants) as the service is delivered
POS-friendly refund flow
- One endpoint handles the entire refund — POS doesn't need to know if points are in hold or available
- Held points cancelled; available points reversed; mixed cases handled automatically
- Partial refunds, line-item refunds, full refunds — all supported
Configurable expiry and reversal windows per program
- Points expire per-program (e.g. 12 months from earning)
- Different windows for earn vs. redeem reversals (e.g. 90 days vs. 1 day)
Backdated transaction support
- Migrate opening balances and historical activity from legacy systems with the correct effective dates
floating visual
Real-world transaction handling
Multi-language and multi-currency
Speak to your customers in their language. Bill in your currency.
Bilingual by default
- System-managed names (programs, tiers, brands, merchants) stored in English + Arabic + any other locale
- API returns all locales; the client picks
Per-program currency
- ISO 4217 codes (SAR, AED, USD, EGP) — each program has its own
- Different programs in the same tenant can transact in different currencies
Monetary equivalents on every response
- Customer sees "1,250 points = 125.00 SAR" automatically — no client-side math required
- Point value defined per program and exposed in every balance and transaction response
Part 3 of 3
Operations
The parts that keep it running.
Event-driven integrations
Plug into anything. Notify everyone.
Transactional event outbox
- Every point movement, tier change, card issuance, and reversal publishes a clean event
- At-least-once delivery, with consumer-side deduplication on a stable event ID
Redis Streams for downstream consumers
- Notification services (SMS, email, push) consume the same stream
- CRM sync, BI pipeline, fraud detection, marketing automation — all see the same canonical event
No silent failures
- Events that fail to publish are retried, then escalated to a visible dead-letter state
- "Event published but database rolled back" cannot happen — the outbox makes the two atomic
floating visual
Event-driven integrations
Bulk import and migration
Migrate from your legacy program with confidence.
loyaltymatic.io
Bulk import and migration
CSV customer import
- Upload up to 200,000 customer rows in one file
- Streaming parser handles large files without memory blow-ups
- Auto-issues loyalty cards on first row, ready to transact
CSV transaction import
- Opening balance migrations from legacy systems
- Multi-line bills grouped atomically by order reference
- Mixed earn + opening-balance files supported in one upload
JSON async batch endpoint
- Submit up to 500 orders in one call for back-of-house batch flows
Per-row error reports
- Every failed row captured with a stable error code and the original data
- Download the failure CSV, fix the data, re-upload — clean workflow
Upload deduplication
- Re-uploading the same file within 24h is detected and ignored — no double imports
Operational tooling
Cron-triggered jobs that keep the program healthy.
Nightly tier evaluation
- Walks every active card against its tier rules; upgrades and downgrades applied automatically
- Dry-run mode lets operators preview impact before a real run
Point expiry job
- Identifies points past their expiry date with unconsumed balance
- Writes expiry transactions with full ledger trail
Reconciliation job
- Samples random cards each night; flags any drift between cached balances and the ledger
Expiring-points report
- List every customer with points expiring before a chosen date
- Feed into your notification workflows ("you have 250 points expiring in 30 days")
All jobs are externally triggered
- Run from any scheduler — system cron, Kubernetes CronJob, Airflow — the loyalty service stays stateless
floating visual
Operational tooling
Performance and scale
Built for retailers. Designed for chains.
Monthly-partitioned tables for transactions, ledger, and audit data
- Query speed stays flat as years of history accumulate
Per-tenant connection pools
- High-volume tenants don't contend with smaller ones
Row-level locking on cards
- Concurrent transactions on different customers run in parallel
- The same customer is serialized just enough to keep balances correct
Cursor-paginated job processing
- Predictable memory footprint regardless of dataset size
Indexed for the queries that actually run
- Single-card lookups, paginated history, FIFO redemption, expiry sweeps — all on hot paths
Get started
Ready to see it in action?
Book a 30-minute walkthrough and we'll wire LoyaltyMatic to a live sandbox.
cta visual
Request a Demo
cta visual
View Documentation
cta visual
Contact Sales