April 28th, 2026
We've launched a brand-new card type alongside Stamp and Points cards: Membership Cards. This is a major addition that lets businesses run paid or invite-only loyalty programs with recurring billing. Ask support to enable this for your account!
What you can do now:
Build tiered memberships with the new card builder β define benefits, pricing, and access modes
Charge subscriptions through Stripe Connect (monthly or yearly), with promo codes supported at checkout
Run invite-only programs β customers join in an "awaiting approval" state, and admins can approve or deny from the dashboard
Free, paid, and mixed tiers all supported in the same card
Customers manage their own billing via a tappable "Manage Billing" link directly on their wallet pass, opening Stripe's Customer Portal where they can switch tiers, change billing intervals, or cancel
Active members can re-download their wallet pass at any time without re-paying
For staff:
New scanner experience for memberships β benefits are the primary action, with swipe-to-confirm to prevent accidental taps, plus a subscription details accordion
Auto-logged visits when a membership card is scanned β no manual logging required
New "Subscriptions" admin page with full subscriber list, filtering, and a detail drawer that reads live data from Stripe (billing info, activity timeline, "Manage in Stripe" shortcut)
Points cards now support earning per visit, not just per spend. Useful for "10 points per visit" style programs. Includes:
Swipe-to-confirm flow on the scanner for visit earns
Optional transaction amount input when scanner settings require it
Daily limits enforcement
The customer list and customer drawer have been redesigned with new at-a-glance metrics:
Balance, visits, and lifetime value (LTV) now surfaced directly in the customer list
Activity timeline in the customer drawer showing recent events
New dashboard filter for slicing customer insights by template
More accurate "Last Visit" β admin actions and membership lifecycle events no longer count as visits
Join pages are now protected from bot signups via Cloudflare Turnstile. The widget only appears when interaction is actually required, keeping the form clean for real customers. Form submissions are guarded against double-clicks and stale tokens.
Redesigned Open Graph (social share) image with a refreshed look when join links are shared on social media
Join links now use the joinpass.co short-domain for a cleaner, more shareable customer experience. Standardized across Stripe checkout return URLs, short-link resolver, and dashboard "copy link" UI.
Duplicate any membership tier with a single click in the builder
Earning rules now scoped to applicable card types (no more confusing irrelevant options)
Stripe pricing health checks β the builder now flags out-of-sync prices and offers a resync action for paid memberships, with a clearer "Verifyingβ¦" state that no longer gets stuck
Red tab indicator when membership tier/pricing has validation errors
Hardened pricing input normalization
Stripe Connect now works on platform-direct subaccounts (previously only available via agencies)
"Manage Billing in Stripe" button now appears for platform-direct subaccounts
Mobile billing portal navigation fixed β opens correctly on phones now
Wallet pass billing link β customers can tap a link on their pass to manage their subscription
Stripe Customer Portal configured for tier switching and billing interval changes
Password reset failures now surface clearly to the user instead of failing silently
Auth emails (verification, reset) are scheduled reliably
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