Changelog
What's new in the Eventini POS app
Eventini POS: built for the line, not the office.
Every release ships real features from real operator feedback. Tap to Pay, split payments, kitchen tickets, and more — shipped in 3 weeks from first commit.
59
Builds shipped
v3.2
Current version
45
Days since v1.0
Releases
Every version of the Eventini POS app, from initial launch to the latest build.
v3.3.5
build 71CurrentApril 16, 2026
Cash flow parity with card on the iPad, receipts attribute the on-clock staff (not the PIN'd cashier), gift card org-fee verified, plus a major fix on the organization dashboard so multi-org providers stop seeing each other's revenue.
- Cash transactions now show the same center modal the card flow uses while the customer enters their phone on the smart reader — cashier sees "Customer is entering their phone number on the reader" with Skip / Complete buttons so they can bypass if the customer declines.
- Multi-organization switcher in the organization dashboard header — providers who belong to more than one org can flip between them with a single tap, and the choice persists across refreshes via localStorage.
- Receipts and reports now attribute orders to the staff member who is actually CLOCKED IN at the order's location, not the manager / owner who happened to PIN into the terminal. Multi-staff terminals finally credit the right server.
- Gift card org-fee handling verified end-to-end — the org fee runs once on the gift card purchase, and any gift-card-paid portion of a future order is excluded from the org-fee base so providers aren't double-charged.
- Organization dashboard cross-org bleed — a provider with two locations bound to two different orgs was showing identical revenue / order counts on both org dashboards. Performance API + main dashboard + Providers tab + Earnings tab + KDS Live Tickets now all filter orders by the location's organization_id, so each org only sees what was rung up at locations that joined IT.
- Org dashboard order cache is now keyed by orgId so switching orgs no longer serves the previous org's filtered results from cache.
v3.3.4
build 69April 16, 2026
Auto-rewards before every charge, transactional rewards routing through Render, kitchen newest-first sort, receipt server attribution, and a cleaner POS header that scrolls instead of clipping.
- Rewards is now part of every charge — Cashier taps Charge → picks Cash / Card / Split → reader immediately asks the customer for their phone, shows their rewards / free-item picker, then auto-continues to actual payment. No separate Rewards button to remember.
- iPad shows a center modal during the rewards preflight ("Customer is checking rewards on the reader") with Skip Rewards and Continue to Payment buttons that cancel the active reader prompt.
- Rewards calls (lookup, redeem, earn) now route through Render (eventini-fallback) first with Vercel as fallback — locks the transactional path to a backend that doesn't silently roll back deploys.
- Receipts and kitchen tickets now stamp the actual clocked-in staff name on the order at placeOrder time so historical receipts always show the correct server, even if the device is shared or the cashier later clocks out.
- Kitchen line + ticket views switched to newest-first sort — fresh orders land at the top regardless of source (in-person, online, scheduled). Online orders no longer leapfrog in-person orders that were rung up first.
- Tablet POS header tab strip wrapped in a horizontal ScrollView — Reader / Printer / Drawer pills no longer get clipped past the right edge on smaller iPads.
- Item-card initials fall back gracefully — "Veggie/Vegan (V)" now shows VV instead of "V("; tokens that don't start with a letter / digit are dropped from the placeholder.
- Reader "Thank You" screen auto-dismisses after 3 seconds so the customer isn't stuck staring at an OK button waiting for the next person to tap it.
- Receipt server name was sometimes empty or wrong because the receipt modal passed an empty string instead of the order's staff. Order now carries its own staff_name field.
- Online orders showing in the wrong order vs. in-person orders — fixed by switching to a single descending sort across all sources instead of source-grouped concatenation.
v3.3.3
build 66April 15, 2026
Smart-reader rewards, inventory tracking with cross-device alerts, auto clock-out warnings, linked modifiers, searchable settings, Cook role, payouts editor, tax-exempt payments, and dynamic auto-complete timing.
- Rewards on the smart reader — customer enters phone on the terminal, picks a free item inline, and the iPad auto-applies the reward at $0 with a tagged reward-claim line
- Multi-account picker for rewards — phones linked to several Eventini accounts surface a tappable list with name / email / points / visits
- Tax Exempt option on the payment screen — sales tax zeros for the transaction; the tax CSV now breaks out exempt sales vs. taxable sales with a dedicated summary row + daily columns
- Inventory / stock tracking — 3-bar signal-strength indicator (red / yellow / green) on every item, long-press stepper to adjust, tap-to-edit numeric keypad, auto-disable at zero, slide-up stock sheet with quick adjust and threshold tweak
- Reusable alert-banner primitive drives storefront-offline, low-stock, and long-shift alerts with Resolve + Dismiss actions and per-device dismissed-by state — cross-device via Firestore
- Auto clock-out warnings — cross-device banner fires when a staff member has been clocked in longer than 12 hours so a manager can confirm or clock them out
- Linked modifiers — advanced item edit section ties menu items to modifier groups by name with confidence % recommendations and a searchable picker
- Modifier on/off cross-item sync by name — flipping a modifier off in one item's sheet updates the same modifier across every item that uses it
- Staff roles — Cook and Other added to manage-staff; Other lets the provider type a custom title (e.g. "Prep", "Runner") that flows through to reports
- Banking — Payout Schedule editor wired to the Stripe Connect API (daily / weekly / monthly with delay days), Payouts preview card on Banking with a dedicated /payouts screen (Scheduled + History groups, "View on Stripe" deep link)
- Settings search — fuzzy subsequence + substring scoring, breadcrumb path (Settings › Section › Label), matched segments bolded, top 3 results
- Free-item rewards config — searchable picker (chips) in Rewards card to pin the free reward to a specific set of menu items, with "any item" fallback when empty
- Auto-complete orders dynamic timing — cashier-set minutes on the settings card are now honored when auto-completing orders
- Online Ordering toggle sync — flipping Online Ordering on the POS storefront card now correctly drives the same state the dashboard reads, no more split-brain between POS mode and dashboard
- Concurrent order safety — orders now queue through a persistent retry queue with exponential backoff, surviving app restarts and draining on boot so back-to-back taps never lose an order mid-flight
- Kitchen ticket sort — oldest active orders on the left so new orders append to the right instead of shoving the cashier's view
- Rewards redemption deferred until placeOrder succeeds — canceled transactions no longer drain the customer's streak or points
- Pending in-cart redemptions adjust the displayed balance live — claiming twice in a row shows the count drop each time, and the Apply button honors the adjusted balance
- Per-location rewards config merged over provider baseline — visits required, reward type, and allowed free items respect the pill location
- Canceling the rewards sheet on the iPad also cancels the reader's active prompt so the terminal doesn't sit on a stale screen
- Cart + printed receipt flag reward-claim lines — iPad shows a subtle "Free" label with the original price struck through; printed receipts mark the line as (REWARD) with a "Reward redeemed" sub-line
- Apple Sign In / Google Sign In now routes reviewers and partner accounts to the Partner Login screen cleanly when their Apple ID isn't tied to an Eventini provider account (fixes App Store review rejection 2.1(a))
- Rewards phone lookup matches every stored phone format (E.164, 10-digit, "(555) 123-4567", dashed) across both users.phoneNumber and users.phone fields so duplicate-format rows are found
- Reader "Your Rewards" screen renders reliably after phone entry — adds at least one button so Stripe Terminal doesn't silently auto-skip an empty selection form
- Modifier sheet stale-closure bug — adding an item via the auto-expand modifier sheet now commits the selected groupOptions / variant / modifier ids instead of the captured-at-open-time values
- Stock indicator and price on menu cards now share the same baseline so the $-column isn't offset from the availability bars
v3.3.2
build 65April 14, 2026
Multi-location symmetry — the top pill now drives attribution for every write, and settings plus storefront config (tax, hours, rewards, gift cards) now honor per-location overrides.
- Location pill drives attribution — orders, tabs, time entries, sessions, invoices, and the audit log all stamp whichever storefront the pill shows instead of only the device binding
- Per-location settings overrides — tax rate, service fee, tip defaults, business info, receipt header / footer, and cash rounding can be set per storefront and fall back to the provider baseline
- Per-location storefront config — operating hours, prep time, pickup mode, minimum order, status, cover image, gift cards, rewards, and customer notes all honor per-location overrides
- Settings reload automatically when the pill changes — flipping storefronts swaps tax rate, receipt header, hours, and rewards live with no restart
- Location pill is always tappable, even when the device is not yet bound to a location
- Banking Locked tab redesigned as an inline placeholder — swiping between tabs no longer flashes the PIN modal across other pages
- Back to Dashboard button in Banking Locked properly swaps to the dashboard tab via the pager (previously a dead no-op)
- Security policy (PIN gates, cashier-access lock, lock-screen timeout) and device hardware (printer, cash drawer, sound) stay provider-wide so org policy is enforced consistently
- Cash orders placed while the pill was set to a different location now show up in the Kitchen and Transactions views under the pill location instead of disappearing into the device binding
- Cover image updates from a specific storefront no longer overwrite the provider main listing image — cloud-function sync only fires when the pill is on All locations or matches the device binding
v3.3.0
build 63April 14, 2026
Cash change confirmation, restricted cashier access with manager-PIN gates, persistent clock-in, kitchen ticket stability, and resynced reports with corrected Gross / Net formulas.
- Change Given Back banner — after a cash payment the full-screen confirmation pins the change amount until the cashier taps Yes, so it never disappears mid-handoff
- Restrict Cashier Access toggle in Settings → Security — gates Banking, Reports, and Invoices behind a manager / owner PIN and masks sensitive dashboard numbers for cashiers
- Labor / Tips Report (renamed from Tips Report) — per-staff hours, shifts, and break minutes now live on the same screen as the tip breakdown
- Clock-in persistence — staff stay clocked in across POS session exits; only a physical Clock Out ends a shift
- Kitchen ticket row — oldest active orders on the left so new orders append to the right instead of shoving the cashier's current view
- Charge button now shows the pre-tax amount on the big black button so cashiers can quote the subtotal at the counter
- Gross Sales formula tightened to a straight sum of cash + card collected ("money in the drawer + money through the terminal")
- Net Sales formula made explicit: gross − refunds − taxes − org fees − tips (no more hidden fees in the net line)
- Reports 1D / 1W / 1M / 3M / 6M / 1Y toggles now drive both the hero revenue / order count and the breakdown card from the same data source — top and bottom can't drift apart anymore
- Labor / Tips Report tip totals now match the Sales report row exactly — fully-refunded orders no longer leak into the tip aggregate
- Exiting the POS session no longer silently clocks out every active employee
v3.2.0
build 59April 13, 2026
Multi-location support, smart-reader receipt selection, WisePOS E auto-heal, phone-number search, and split-payment reliability fixes.
- Multi-location support — providers can now run one Eventini account across multiple storefronts with per-iPad device binding
- Per-location order, time entry, and audit attribution so revenue and reports always scope correctly
- Locations CRUD in Settings with eager-creation of Stripe Terminal locations on add
- LocationSwitcher bottom sheet with separate Viewing scope (any role) and This Device reassignment (manager PIN required)
- Per-location menu item availability — opt-in card on each item to limit visibility to specific storefronts
- Staff "Assigned Locations" — restrict cashiers to specific storefronts, owners always have all
- Reports CSV gains a Location column; Dashboard, Transactions, and Sparklines filter by viewing location
- Smart-reader receipt selection on S700 / S710 / WisePOS E — "How would you like your receipt?" runs on the reader screen with sms / email / print / none
- Require Customer Phone setting — when on, the smart-reader phone prompt is mandatory with no Skip
- Phone-number search across kitchen Done section, POS sidebar Transactions, and the main Transactions screen
- Message customers from completed orders with pickup-reminder templates ("ready and waiting whenever you can grab it")
- WisePOS E auto-heal — pre-charge liveness probe that detects silent reader disconnects plus server-side unstick of in-flight operations
- Reader-offline monitor cron posts Slack alerts when a reader has been offline ≥ 10 min while the storefront is actively selling
- POS terminal location chip on both phone header and tablet tab strip; tap to swap location or jump to settings
- Storefront Offline banner respects safe area on iPad and slides in/out smoothly with the native driver
- LocationSwitcher sheet ported to the modern BottomSheet pattern (drag-handle, content-sized, dismiss-on-drag)
- Internet readers now self-heal overnight disconnects via heartbeat and foreground-resume reconnect
- Slack reader alerts now resolve the storefront business name instead of showing a raw provider ID
- Split cash + card on a $20 order with a service fee: modal showed "card: $10" but actually charged $10.60 — both now use the fee-inclusive total
- Cash modal Confirm button on non-tab orders no longer blocked at partial amounts — relabels to "Pay Partial → Card" so customers handing over partial cash don't get double-charged
- Payment modal dismiss mid-collection now cancels the in-flight reader operation, fixing the "Operation in progress wasn't completed before starting new operation" error on the next charge
- PIN-screen error copy for staff restricted to other locations now says "You're not assigned to <Location>" instead of a generic "Incorrect PIN"
v3.1.2
build 58April 10, 2026
Storefront offline banner, manager-PIN revenue blur, customer phone capture in the receipt modal, Reports breakdown expansion, and cash-flow UX polish.
- Pinned red Storefront Offline banner across every main screen with a one-tap Reopen button
- Manager-PIN-gated revenue blur on the Dashboard hero card — reveals for 60 s, then auto-re-blurs
- Customer phone capture step at the start of the receipt modal for cash and Bluetooth reader flows
- Customer Paid breakdown in the transaction detail modal — splits Paid in Cash / Paid by Card / Gift Card / Customer Paid total
- Three new opt-in Sales & Orders toggles: Enhanced Modifiers (centered card over dimmed backdrop), One-Tap Add (auto-commit variant items with no add-ons), and Auto-Complete Orders (3-min default)
- Reports breakdown expanded with on-screen Gross Sales, Net Sales, Tips Collected, and Invoice Revenue rows
- Cash payment UX — quick-bill row ($20 / $40 / $50 / $60 / $80 / $100 / Exact) no longer blocked by the keypad; tapping any quick-bill dismisses it
- Pinned Cash Received + Change Due banner through every step of the receipt modal
- Modifier groups now auto-open the option-form sheet after creation — saves the cashier the "now add options" tap
- BottomSheet keyboard avoidance — the "Additional Price" modifier input is no longer hidden by the on-screen keyboard
- Sidebar customer name and order label reset cleanly between orders — no ghost text lingering after focus
- Eager-mount every main tab to eliminate the one-frame "page drop" on fast cashier swipes
- Removed stacking LayoutAnimation calls across the menu item editor and Apply-to-Other-Items modal — no more visible flashes
- Reports timeframe filter was only updating the hero stat — the breakdown card stayed on all-time numbers. Every row now respects the 1D / 1W / 1M toggle
- Clock-out no longer prompts "clock in" when the menu was edited mid-shift by another staffer — orders screen refreshes clock data on focus
- SMS Receipt option in the delivery step now shows for every flow where a phone was captured (previously smart-reader-only)
v3.0.0
build 51April 5, 2026
Render-primary payment architecture with automatic Vercel fallback, category reordering, and tip UX improvements.
- Render-primary / Vercel-fallback payment architecture for maximum uptime
- Category drag-to-reorder in menu management
- Custom tip input on Stripe S710 card reader
- Print button on kitchen order queue with online order auto-print
- Bluetooth device status indicators with connection hints
- Repositioned "No Tip" option for better UX on reader screen
- Online order auto-print to kitchen display on arrival
- Storefront slug-based URLs instead of raw provider IDs
- Fixed orgStripeAccountId leaking Firestore ref into Stripe metadata
- Fixed card capture flow on Bluetooth readers
- Fixed online ordering save failing with undefined Firestore values
- Fixed stale reader connection state after reconnect
v2.9.0
build 50April 4, 2026
Reader setup improvements, cloud functions enhancements, and tap-to-pay refinements.
- Reader setup improvements for faster terminal pairing
- Cloud function enhancements for payment processing
- Tap-to-pay flow refinements
- Order store updates for better state management
v2.8.0
build 47April 4, 2026
Custom tip on S710 reader, repositioned No Tip option, and tab tag fixes.
- Custom tip amount input on Stripe S710 card reader
- Repositioned "No Tip" option for better discoverability
- Fixed tab tag display on open tabs
v2.7.0
build 46April 2, 2026
Version bump with updated changelog and MFi review notes for App Store submission.
- Updated App Store changelog and MFi review documentation
- Version references updated across the app
v2.6.0
April 2, 2026
Bluetooth device status indicators, connection hints, and card capture fixes.
- Bluetooth device status indicators showing connection state
- "Check Bluetooth" hints when readers are disconnected
- Fixed card capture flow on Bluetooth-connected readers
- Fixed online ordering save failing with undefined Firestore values
- Fixed stale reader connection state and added payment diagnostics
v2.5.0
April 1, 2026
Performance overhaul with PIN lock and clock-in persistence fixes.
- Optional PIN lock for terminal security
- Category grid layout for faster item selection
- Tip-after-payment flow for card-present transactions
- Cash denomination pills for quick change calculation
- Performance overhaul for faster screen transitions
- Managers can now submit vendor absences (was owner-only)
- Fixed PIN lock and clock-in persistence across app restarts
- Fixed incomplete Stripe transactions in all tip flows
v2.3.0
March 31, 2026
Customer notes for online orders, push notifications, and reusable modifier groups.
- Customer notes on online orders with push notification delivery
- Firebase Cloud Messaging setup for real-time order alerts
- Reusable modifier groups: copy from library when creating new items
- POS edit mode: toggle items on/off, tap to edit inline
- Skip clock screen if staff already logged in
- Compact stat cards on mobile with smaller icons and labels
- Pickup time shown on all order view modes (list, grid, ticket)
- Order cards show real source, customer name, and pickup time
- Items always show edit and visibility toggle without long-press
- Fixed gift card tab payments not accounting for prior partial payments
- Fixed split payments on tabs with partial cash and multi-method close
- Fixed menu item card iPad layout and added unsaved changes warning
v2.2.0
March 31, 2026
Earnings clamped to zero on refunds, vendor absence scheduling, and storefront snooze controls.
- Vendor absence scheduling with custom messages
- Snooze controls for temporarily pausing online orders
- App version checking with update prompts
- Refunds no longer cause negative balances on dashboard, reports, transactions, or banking screens
- Improved status hero card display on storefront
- Modifier group form improvements
v2.0.0
build 22March 29, 2026
Multi-brand printer support, kitchen tickets, split payments, tabs, pre-ordering, and staff management.
- Multi-brand thermal printer support (Star Micronics, Epson) with kitchen ticket formatting
- Split payments: partial cash, multi-method, and tab-based checkout
- Tabs: open a tab, add items, close with any payment method
- Pre-ordering with scheduled pickup windows
- PIN-based staff login with clock in/out and break tracking
- Tablet split-view POS layout with drag-to-reorder menu items
- Ticket view for orders with timing indicators
- Refund flow with PIN verification and audit logging
- Tablet receipt sheet with formatted output
- Inline modifier editing on item creation
- Responsive scaling for all screen sizes
- Stripe deep link return for seamless Connect onboarding
- Fixed leave org persistence leaking organization_id across sessions
- Fixed duplicate tip screen appearing after payment
- Fixed org link: setDoc+merge so join works even if config doc is missing
v1.5.0
build 11March 26, 2026
Tablet split-view POS, drag-to-reorder, inline modifiers, and refund support.
- Tablet split-view POS with simultaneous menu and cart
- Drag-to-reorder for menu items and categories
- Inline modifier editing during item creation
- Refund processing with receipt tracking
- Google Sign-In and Apple Sign-In support
- Fastlane setup for automated TestFlight uploads
- Responsive scaling for tablet and phone layouts
- Menu editor overhaul with better category management
- Ticket time tracking for kitchen display
v1.3.0
build 5March 25, 2026
Tips report, live payment flow, fee display, and duplicate transfer prevention.
- Tips report with breakdown by payment method
- Live payment flow with real-time status updates
- Processing fee display on transaction details
- Payment splits between provider and organization
- Org payout tracking in admin dashboard
- Fixed duplicate Stripe Connect transfers on retry
- Fixed revenue display rounding errors
- Fixed crash on empty order submission
- Added detailed privacy strings for App Store review (camera, photos)
v1.0.0
March 16, 2026
Initial release of the Eventini POS app with Tap to Pay on iPhone, Stripe Terminal, and organization fee splits.
- Point-of-sale terminal for on-site event transactions
- Tap to Pay on iPhone via Stripe Terminal Apple entitlement
- Stripe card reader integration for traditional payment processing
- Cash payments with automatic change calculation
- Organization system with fee splits and service fee restructuring
- Organization join flow for vendors
- Firestore-first menu with variants, modifiers, and categories
- Online ordering configuration sync to storefront
- Haptic feedback across all interactive elements
- Card processing fee display on transactions
- Tips collected before charge with preset percentages
Pipeline
Upcoming integrations, payroll features, and third-party tools on our roadmap.
Payroll Software Integration
In ProgressAutomated payroll processing for organization vendors with direct deposit, tax withholding, and W-2/1099 generation.
QuickBooks & Xero Sync
PlannedTwo-way sync between Eventini earnings and your accounting software. Automatic invoice creation and reconciliation.
Square POS Integration
PlannedConnect existing Square terminals to Eventini for unified reporting across all your point-of-sale hardware.
Automated Tax Filing
ExploringEnd-of-year tax document generation and filing assistance for providers and organizations.
Multi-Location Organization Support
PlannedManage multiple food parks or event venues under a single organization with location-level reporting.
Third-Party Delivery Integration
ExploringConnect DoorDash Drive, Uber Direct, or local couriers for delivery fulfillment on online orders.
Have a Feature Request?
We build based on what operators actually need on the ground. Let us know what would make Eventini POS better for you.
