Loyalty platform · World edition
Points, tiers and campaigns that your tills, shop and messaging already understand
Loyalti runs the loyalty programme of a retail chain, a restaurant group or an online shop: members and wallets, rules and scenarios, multi-channel campaigns and analytics. Cash registers talk to it through a till API, Shopify and WooCommerce through webhooks, customers through SMS, WhatsApp, Telegram, e-mail, push and Wallet cards.
The whole platform is for sale with its source code: run it on your servers or sell it under your own brand.
What it does
One programme for the till, the shop and the phone in the customer's pocket
Members and wallets
Every member has one wallet with three balances: earned, gifted and promo. Points carry an expiry, a restriction to a category or a store, and a cap on how much of a receipt they may pay. Labels, consents, children, cards and the full transaction ledger sit on the member card.
- Phone in E.164, e-mail, physical or Wallet card as identifier
- Registration from the till, a public form, the portal, the shop or an import
- Bulk operations and CSV / XLSX export with chosen columns

Rules that the till computes in real time
A rule is a set of conditions on the receipt, the item and the member, and an action: earn a percentage or a fixed amount, cap redemption per item or per cart, set a label, print a line on the receipt. The till asks for a quote before the sale and commits after payment; rules are frozen on the order, so a later edit never rewrites a receipt.
- First-match engine with priorities and rule groups
- Dry run against a sample receipt before activation
- Scenarios: triggers on registration, purchase, dates and counters with delays, conditions and actions

Campaigns and segments across six channels
A campaign sends one message to a segment through the channel each member can be reached on, with a fallback order you choose. Templates per channel, A/B variants, sending in the recipient's local time, a send log with delivery and open status, and a broadcast effectiveness report that ties purchases back to the message.
- Segment builder on purchases, visits, RFM, labels, channels and dates, with a live member count
- Drag-and-drop e-mail maker with blocks and a preview
- SMS and WhatsApp through Twilio, Telegram and Viber bots, SMTP, APNs and FCM push

Analytics a marketing director reads without an analyst
RFM segmentation with recommended actions per segment, cohorts, lifecycle, inflow and outflow, average cheque, visit frequency, products, sellers and locations. A report builder with pivots and exports when the question is not on the list.
- Twenty analytics screens plus purchase and registration journals
- Anti-fraud views: top clients and top cashiers by returns and redemptions
- Monthly RFM reports generated on schedule

Integrations
Connects to what a shop already runs
Tills and shop sites speak to one till API. Online orders arrive through Shopify and WooCommerce webhooks and earn or redeem points like any receipt. Messages go out through the providers you already have accounts with.

Three calls from a till to a settled receipt
POST /v2/buyer-info # who is buying, balance, write-off available
POST /v2/purchase-dry-run # quote: points to earn, points to redeem
POST /v2/purchase # commit after payment, idempotent by receipt id
{ "purchase_amount": 120.50, "payment_amount": 110.50,
"total_write_off_bonus": 10, "total_write_on_bonus": 11,
"balance": 51, "print_on_check": "Thank you, Anna!" }
Amounts are in the tenant's currency with its own number of decimals; one point is one unit of currency. Cancel and partial refund recompute the accrual with the rules frozen on the order.
All integrations in detailWho it is for
Built for chains, groups and the people who roll it out
Retail chains
Dozens of stores with tills from different vendors, an online shop, and a marketing team that wants to run campaigns without a developer. Locations, cashiers and registration points are first-class: every report splits by them.
Restaurant groups
Waiter forms for registration at the table, QR codes, gift cards and promo codes at the till, birthday and visit-frequency scenarios, Wallet cards instead of plastic.
Integrators and agencies
Multi-tenant from the first line: one installation serves many clients, each with its own currency, timezone, country, channels and users. A super-admin panel, a full API and webhooks for everything you build around it.
Need a branded mobile app for your members? We build it on the same API for iOS and Android: balance and history, Wallet card, offers, push notifications and registration, delivered as a custom project alongside the platform.
Buying the platform outright
The whole product with source code, tests and deployment
Backend and frontend source, 3 155 automated tests, CI pipeline, Docker Swarm deployment, monitoring stack, OpenAPI contracts and this documentation. The schema installs from two migrations; a fresh server is live in one deploy.
- 207 873 lines of PHP in 1 942 files, PHP 8.5 and Symfony 7.4
- Nuxt 3 front end with 146 pages and 83 components
- Schema-identical fresh install verified against the full migration history
- What is in the box
Security and operations
Tenant isolation, encrypted secrets, audit log, backups
Row-level security flags on 37 tables, JWT with refresh and two-factor sign-in for super admins, role-based access down to a single store, provider keys encrypted in the database, an audit log of every change, scheduled backups to S3 with restore, and a monitoring stack with alerts.
Security, compliance and deployment
See it on your own data
Book a call and we will set up a demo tenant in your currency, connect a test till and walk through the programme you have in mind.