March 31st, 2026
The Scanner app is now available as a native app on both platforms:
π± App Store (iOS) π€ Google Play (Android)
The native app gives you the best experience β faster scanning, push notifications, and reliable offline support.
Already using the PWA? The native app uses the same login β just download, sign in, and you're good to go.
March 30th, 2026
π Dashboard Analytics Fix
Fixed an issue where points card activity wasn't showing up on the dashboard β visits, redemptions, and repeat visit rates now track correctly across all card types
The Top 10 Customers table now shows Visits, Spend, and Redemptions for a cleaner, card-type-agnostic view
π± Scanner App
Fixed a crash that could occur on startup β the scanner is now more resilient and recovers gracefully
Improved camera permission prompts for a smoother first-time setup
π¨ Card Builder
Stamp grids now balance rows evenly β 8 stamps show as 4+4 instead of 5+3, and similar improvements for other stamp counts
π§Ή Under the Hood
Cleaned up deprecated database fields for a leaner, faster backend
Fixed several small UI bugs: number input validation, terms checkbox errors, and OTP race conditions
Performance improvements: preloaded fonts, edge rendering, and reduced skeleton flicker
March 17th, 2026
Faster join page β The page where customers sign up for loyalty cards has been completely rebuilt. It now loads 7x faster and works instantly on any device, with no blank screen while loading.
March 16th, 2026
You can now set rules that control how customers earn stamps and points. These are configured per card template and apply automatically when staff scan a customer's card.
Minimum spend β Require a minimum purchase amount before a customer can earn. For example, set a $10 minimum so small purchases don't count toward rewards.
Daily limit β Cap how many times a customer can earn per day. Useful for preventing misuse or repeat visits from stacking up too quickly.
Max per scan β Limit the maximum stamps or points a customer can receive in a single transaction.
Coupon cooldown β After a customer redeems a coupon, you can set a waiting period before they can earn again. Staff will see a clear message showing how much time is left.
When a rule is triggered, the scanner shows a plain-language explanation to your staff so they know exactly why a transaction was limited or blocked.
Bug Fixes
Fixed an issue where the transaction history screen could freeze or become unresponsive.
Fixed a case where the minimum spend rule wasn't being applied correctly for certain coupon types.
Various stability improvements to the scanner experience.
March 14th, 2026
Bug Fixes
Tier limit validation hotfix: fixed edit mode silently converting unlimited (null) to default numbers, and tier limit fields sending empty strings instead of null
Fixed totalCards and totalWalletInstalls to respect the template filter on the customers page
Removed default active status filter on customers route
Fixed pagination bug and maxUses falsy check (0 was being treated as falsy)
Fixed web app references to renamed cardName field in customer search
Performance
Refactored getCustomers with parallel queries, single-pass card loop, and shared utils
March 9th, 2026
Weβve overhauled the import process to make sure your data gets where it needs to go without the guesswork.
Auto-Create Customer Cards: If youβre importing customers who don't have a card yet, the system will now automatically create one for them. No more "silent" data loss.
Smart Validation: The importer now checks if your templates are active and alerts you if the data types don't match (e.g., trying to put text into a number field).
Negative Value Protection: Imported values are now "clamped" to prevent accidental negative balances.
Helpful Hints: Weβve added an info alert inside the import modal to explain exactly how the system handles your data.
Your data should give you the full picture, not just a snapshot.
Real "Cards Issued" Counts: This stat now reflects your entire filtered list of customers, rather than just the people on the first page.
Global "Wallet Install" Rates: Like the card stats, your install rate now calculates across your entire customer base for much more accurate reporting.
Subaccount Fix: Resolved an issue where the template selector would appear empty for newly created subaccounts.
Improved Column Detection: Fixed a logic error to ensure the system correctly identifies card data, even if the values are zero or empty.
March 7th, 2026
Public API (Beta, Message Support for Access)
Public REST API for programmatic access to your loyalty platform
Manage customers, cards, and transactions via API
Earn points, add stamps, and redeem rewards programmatically
Built-in rate limiting, idempotency keys, and comprehensive error handling
OpenAPI documentation included
Wallet pass generation endpoint for Apple & Google Wallet
Feature flag controlled per tier β enable via your plan settings
Billing & Plans
Agency admins can now access the billing page and generate payment links
Tier edits now cascade feature/limit changes to all subscribed subaccounts
Confirmation dialog when editing tiers that affect active subscriptions
Fixed a race condition when switching between subscription and manual billing modes
Fixed billing mode switch not detecting changes to expiry date or custom pricing
Hardened webhook handling against race conditions and duplicate events
Card Builder
Card type options no longer flash briefly when creating a new card
In edit mode, only the card's current type is shown (no switching allowed)
Points cards now display available rewards on the card back
Inactive templates are now visually dimmed and grouped by status
Customer Management
Customer deletion is now properly scoped per-subaccount (no cross-subaccount side effects)
Fixed card retention expiry affecting cards across unrelated subaccounts
Fixed customer restore not properly clearing archived status
"Add Customer" button now correctly enforces your plan's customer limit
Scanner & Cards
Fixed rewards display consistency on points and stamp cards
Broadcast tips updated with link formatting guidance
Wallet Passes
Google Wallet pass generation is now faster with caching
UI & Polish
Fixed dark mode flicker on page load
Fixed active cards count accuracy
Removed "Stripe Ready" badge from billing page
Fixed Featurebase chat widget overlapping table pagination
Fixed various loading states and race conditions in modals
Fixed franchise limit checks and rollout timeout handling
March 1st, 2026
Resolved an issue that prevented Google Wallet passes from being generated when no header field was specified.
Resolved an issue that blocked Apple Wallet passes from being generated when a customized country code was used on a subaccount.
February 28th, 2026
Promo Codes
Added promotion code support to agency and direct business signup flows
Subaccount Regional Settings
Added phone country code support across the platform β phone inputs now default to the correct country flag based on subaccount/agency config instead of hardcoded GB
Fixed currency mismatch in the card builder when agency admins edit subaccount templates (now uses the subaccount's currency, not the agency's)
Welcome Emails
Users now receive a welcome email after verifying their account
February 27th, 2026
Available Rewards Display Field
When using βAvailable Rewardsβ field on Stamp Cards, it will now display what the user has on the front of there card. eg. β1x Free Coffee, 1x Free Donutβ
Scanner App Updates
Camera improvements β Updated camera resolution settings for better scanning
Scanner layout & dark mode β Visual updates to scanner layout and improved dark mode handling
Reward tier progress layout β Updated how staggered reward tier progress is displayed
Bug Fixes
Fixed doubled dashboard stats β All 5 analytics aggregates were sharing a single component instance, causing counts to bleed across aggregates. A subaccount with 1 customer showed "2 Total Customers", "2 Installed Cards", etc. Affects both subaccount and agency dashboards.