Now Live — epos247 is here. Get started today

Downloads

Download our Windows & Android apps from this page. These files are always kept up to the latest release version of epos247.

Windows POS

For Windows 10/11 till PCs, touch terminals, and backoffice stations.

Download for Windows

epos247-setup.exe

Other versions

The button matches this computer. Installing on a different till? Pick the version that matches that terminal — choose 32-bit (x86) for older or 32-bit Windows tills.

Android POS

For front-of-house tablets, lightweight terminals, and quick replacement devices.

Download

epos247.apk

Stock247

Barcode-scanner stock counts, deliveries and returns on a handheld Android device.

Download

stock247.apk

epos247 Loyalty

Customer app — sign in to see your stamp cards, bookings, gift cards and event tickets across every business you're a regular at. Scan-in QR for fast check-in at the till.

Download

epos247-loyalty.apk • in review on Google Play

Rota247 — Staff Rota

Staff app — see your upcoming shifts, request holidays, track tips, tick off to-do lists, read memos and clock in/out from your phone. Sign in with your work email and POS PIN. Pro accounts.

Download

epos247-rota.apk • v1.0.2 • in review on Google Play

Android Waiter

Table-side ordering interface for waitstaff and runners.

Handheld waiter orderpad screenshot one Handheld waiter orderpad screenshot two Handheld waiter orderpad screenshot three
Download

epos247-waiter.apk • ~25MB

KVS — Windows

Kitchen Video System for Windows displays — routes tickets from the POS to chef and pass stations.

Download

epos247-kvs-setup.exe

Other versions

KVS — Android

Kitchen Video System for Android tablets — turn any wall-mounted tablet into a kitchen ticket display. Same features as the Windows build.

Download

epos247-kvs.apk

Kiosk — Windows

Self-service ordering kiosk for Windows displays — customers browse the menu, pick a table or takeaway, pay on a Teya terminal and collect a printed ticket.

Download

epos247-kiosk-setup.exe

Other versions

Kiosk — Android

Self-service ordering kiosk for Android tablets — turn any landscape tablet into a customer-facing kiosk with Teya card payments and printed receipts.

Download

epos247-kiosk.apk

MenuBoard — Windows

Digital menu board for Windows-connected TVs and displays — curated from your live product list.

Download

epos247-menuboard-setup.exe

Other versions

Pre-install checklist

For Android devices, allow installation from trusted internal sources before opening the APK. For Windows, run the installer with local admin rights.

Open product brochure

Release Notes

v1.3.31 Relay printer type, Credit Note auto-void on cancel, compulsory clock-in
29 Apr 2026
  • Relay printer type — Back Office → Printer Setup now has a 3rd printer type alongside Network and Receipt: "Relay". Pick a target POS device and the printer's tickets are sent over the cloud to that device's local receipt printer. Use it when a quieter till has a USB receipt printer that can double as a kitchen / bar order printer for other tills, with no extra hardware.
  • Cancel Account Payment now offers to cancel the source sale — Back Office → Accounts → Payments → Delete Payment now surfaces linked sales (sales whose invoices the payment settled) with a tickbox so the operator can void duplicate sales in the same action. Each cancelled sale logs corrections and deletes the linked invoice.
  • Credit Notes now act as a proper void/refund tool — cancelling an invoice with applied credit refunds the credit back to the CN; cancelling the SOURCE invoice of a refund CN auto-voids the CN; voiding a refund CN clears the hasCreditNote markers on the source invoice. Audit trail covers each step.
  • Compulsory Clock-In enforced on Windows POS — staff flagged with "Compulsory Clock In" can't sign on by tile or PIN until they're clocked in. Affected tiles dim with a "Clock in required" badge; the tile unlocks immediately after clock-in, re-locks after clock-out.
  • Android POS Discount Setup polish — full-screen takeover, card-grid layout for Manual Discounts + Multi-Buy (2–3 columns), full-screen editor takeovers, centred toast. Matches Web / Windows feel.

Platforms: Windows POS, Android POS, Back Office

v1.3.30 Discount Setup on every POS, carry-over toggle on manual discounts
28 Apr 2026
  • Discount Setup on every POS — Web / Windows / Android / iPad now have a "Discount Setup" tile in Options → Setup. Full-screen 3-tab modal for Manual Discounts, Multi-Buy and Mix & Match. View, edit, enable / disable and delete from the till — same Firestore collections the back office uses, so changes show up everywhere instantly.
  • Default-to-manager security on Discount Setup — staffEditDiscounts is a new permission key that defaults to Manager Override, so a manager PIN / RFID is required before non-managers can change discounts. Switch it to Allowed (any staff) or Not Allowed (hidden) in Back Office → Settings → Security.
  • Carry-over toggle on Manual Discounts — every manual discount now has a "Carry over to new items" toggle. Default ON keeps the current behaviour (discount auto-extends to anything added later). Switch it OFF to lock the discount to the cart at the moment it's applied — items added afterwards charge full price. Honoured by total / VAT / split bill / hold / recall on all four POS apps.

Platforms: Web POS, Windows POS, Android POS, iPad POS, Back Office

v1.3.29 Return-to-home after sale, VAT subsections, Dashboard chart, partner sales reset
28 Apr 2026
  • POS apps now return to the Home Screen / configured default group + category after every sale completes — no more being left on whatever group the previous sale ended on. Web / Windows / Android / iPad.
  • EOD reports — VAT section now shows a subsection per non-zero rate (Net / Gross / VAT) instead of a single combined VAT line. 0% and Exempt collapse to a single sales-confirmation line. Applies to on-screen and printed EODs across all POS apps and the Back Office Till Reports archive.
  • Back Office Dashboard — new "Today by hour" line chart at the top of the Dashboard, dual-axis showing sales count + revenue across the venue's opening hours, with a rising-points animation.
  • Profit Margin Summary — the Margin column now shows per-unit margin (sell ex-VAT minus unit cost) rather than a qty-multiplied total. The bottom-row total still shows the aggregate £ profit across all sold units. Show Unsold Products toggle now respects the supplier / category / group filters.
  • Partner Portal — Sales Reset button on each tenant card. Wipes only transactional data (sales, corrections, paid in/out, clock events, shifts, stored tables, parked sales, bar tabs, room bills, invoices, club top-ups, email queue, feedback). Products, staff, customers, rooms and the rest of the POS configuration are kept. Type-business-name confirmation guard.
  • Light-theme polish — Windows POS group / category / Pay buttons and iPad product buttons + function bar buttons now keep readable text on coloured backgrounds across all light themes (the white-on-pale washout is gone).
  • Branded splash on launch — Web POS and Windows POS now show the epos247 logo above the spinner while the app loads, instead of a blank screen / "Loading…" text.

Platforms: Windows POS, Web POS, Android POS, iPad POS, Back Office, Partner Portal

v1.3.28 Accommodation Diary on every POS, table bill addon math, Dojo MOTO/Cashback toggle
27 Apr 2026
  • Accommodation Booking Diary on every POS — Web / Windows / Android / iPad. 7-day rooms × dates grid, click empty cells to create, click chips to edit, conflict detection, customer autocomplete, status emails (booking-confirmation / modified / cancelled / checked-in / checked-out). Checking a guest in auto-creates the open Room Bills folio so "Bill to Room" picks them up automatically. Module-gated on Accommodation; available to Pro tenants who have the module activated.
  • Dojo MOTO + Cashback toggle — Back Office → Settings → EFT Integration → Dojo now has two checkboxes for whether the MOTO and Cashback buttons appear on the POS payment screen. Defaults on so existing tenants see no change.
  • Table bill addon math fixed — table bills and Bill-to-Room totals now correctly multiply addon prices by the parent item qty (3× cocktails with a Lemonade Dash each = 3 dashes, not 1). Brings the printed bill in line with the cart total, the saved sale, and the post-payment receipt. Web / Windows / Android.
  • iPad — Card button on the payment screen now actually fires the Dojo / Teya terminal again. Regression introduced when the PaymentModal was ported to the Android layout — the Card button was bypassing the EFT routing.
  • Group + Category reports now bucket Deposits into their own "Deposits" group / category instead of Ungrouped / Uncategorised. Affects both interactive reports and the EOD generator.
  • Till Reports / EOD aggregator — defensive guards against NaN sale totals so one bad sale doc can't poison every aggregated payment-method total. The Till Reports page also now hides any payment row whose total isn't a finite number rather than printing £NaN.
  • Back Office Settings save fixes — General Settings strips undefined fields before writing (was failing for partner-portal admin sessions on tenants with sparser settings docs). Dojo Save coerces every field to a safe default. Save errors now surface the actual message instead of a generic "Failed" toast.
  • Windows POS — when an unrecognised barcode is scanned, every text/numeric field on the "New Product" modal (Name, Sell Price, Unit Cost, Case Cost, Case Qty, Stock Level) opens the on-screen keyboard on tap with the right layout (text / decimal / number).
  • Firestore rules — partner identity is now explicit on every settings/* write rule.

Platforms: Windows POS, Web POS, Android POS, iPad POS, Waiter, KVS, Back Office

v1.3.27 Discount Breakdown EOD, multi-column addons, statement credit notes, AI image upload
26 Apr 2026
  • Discount Breakdown on EOD reports — every POS EOD plus the Back Office EOD now carries a dedicated Discount Breakdown section. Each named discount (manual, multi-buy, mix & match, stamp-card freebie, etc.) gets its own line with count and total so the till summary and printed receipt match the back-office totals exactly.
  • Multi-column addon picker — when a sold item triggers an addon group with lots of options, every POS (Web / Windows / Android / iPad) now expands the picker to 2 / 3 / 4 columns based on the number of options. Stops long lists from scrolling off-screen and keeps thumb-reach for tablet use.
  • Statements now include Credit Notes — Back Office customer statements list every credit note alongside invoices and payments, with running balance kept in sync.
  • Wastage report shows cost prices — Back Office → Reports → Wastage now includes the cost price of each wasted line plus a wastage cost total, so the loss is visible alongside retail.
  • Show Margin toggle on Current Stock — flip between value-at-cost and margin view from Back Office → Reports → Current Stock.
  • VAT rate moved into the Pricing column when editing or creating a product — sits with the other money fields rather than the categorisation block.
  • Show Unsold Products on Profit Margin Summary — same toggle as Product Report; pie charts stay sold-only, list / PDF reflect the choice.
  • Sales Review → Paid Outs tab on Web POS — review the day's paid-outs alongside pending and completed sales. Fixes a long-standing rendering glitch where the first record could "ghost" onto every tab.
  • AI Assistant adds image upload + Tier 1 actions — drop a JPG/PNG menu, supplier list or rota into Back Office → Tools → AI Assistant and the assistant can extract products, pricing and structure. Tier 1 actions wired up: create discounts, multi-buys, mix & match, stamp cards, gift cards, suppliers, customers, staff, stock orders, plus configuration help.
  • Premium module gating (Phase 1, Back Office) — admin always wins; pro license no longer auto-unlocks every feature. Modules a tenant doesn't have are visible-but-disabled with a friendly upgrade wall on the page itself. Bookings split into Table Bookings / Pool Diary / Appointment Diary so each can be enabled separately.
  • Windows POS — TP Interface (ICRTouch) shared-folder mode now wired up. Atomic .tmp+rename writes, 250ms polling for the .out response, 10s timeout, STX/ETX-tolerant parser. Sits alongside the existing TCP/WebSocket mode.
  • Categories form layout polish in Back Office — Course selection moved to the right column for symmetry.
  • Addon editor — clicking Add Option now scrolls and focuses the new row automatically.
  • Admin portal → POS link — the "Missing or insufficient permissions" error when launching the POS from the admin portal token is fixed (anonymous sign-in + adminSessions write on token validation, restore-from-sessionStorage path, plus an onAuthStateChanged guard).

Platforms: Windows POS, Web POS, Android POS, iPad POS, Waiter, KVS, Back Office

v1.3.26 Add Ref on demand, Show Unsold Products toggle
25 Apr 2026
  • Add Ref on demand — every POS app (Web / Windows / Android / iPad) now has an Add Ref function that can be placed on the Function Bar (via Back Office → Settings → Function Bar) or accessed from the Options menu. Tap it and the operator can attach a reference to the last item rung up — useful for serial numbers, vehicle reg, customer reference, etc. — without needing the auto-prompt enabled per product. If a ref already exists on the item it opens for editing; if the cart is empty the operator is prompted to sell an item first.
  • Show Unsold Products toggle — Back Office → Reports → Product Report and Profit Margin Summary now have a "Show unsold products" checkbox so tenants can visually confirm which lines didn't sell in a chosen range. Pie charts and totals stay sold-only; the on-screen list and the PDF export both reflect the toggle.

Platforms: Windows POS, Web POS, Android POS, iPad POS, Back Office

v1.3.25 Light Blue + Dark Blue themes, Android online-order alert fix
25 Apr 2026
  • Light Blue + Dark Blue themes — pick from Back Office → Settings → Appearance. Same approach as the green themes but tinted with the eposnow logo blue (#0067B6). Six themes in total now: Neon, Dark Green, Dark Blue, Light, Light Green, Light Blue.
  • Fix: Android POS now reliably picks up pending online orders on launch. Previously, if any orders were already pending in the cloud at the moment the till started, the listener silently dropped them and the Globe icon stayed dark until a brand-new order arrived. The state is now retained across the brief gap between Firebase sync and the POS screen mounting.

Platforms: Windows POS, Web POS, Android POS, iPad POS, Waiter, Back Office

v1.3.24 Disable / Enable categories from Back Office
25 Apr 2026
  • Every category card in Back Office → Product Setup → Categories now has an eye toggle. One tap hides the category from the POS sales screen, the Waiter app and the online ordering page; tap again to bring it back. Disabled categories fade with a red "Disabled" pill so they're obvious at a glance.
  • Reports, product search and archived recall are unaffected — the category record stays in place so historical sales still resolve correctly. It's a POS-visibility toggle, not an archive.

Platforms: Windows POS, Web POS, Android POS, iPad POS, Waiter, Back Office, Online Ordering

v1.3.23 KVS Android, online order POS listener, green themes
25 Apr 2026
  • KVS Android — Kitchen Video System now available as a native Android app for any tablet. Wraps the existing kvs.html with full-screen kiosk mode, locked landscape, screen-on, max brightness, and the same auto-update channel as the POS.
  • Online order POS listener — every POS app (Web / Windows / Android / iPad) now lights up a pulsing red Globe icon in the header the moment a customer places an order through order.html. Tap it to review the order with full customer + item details, then Accept (auto-prints a receipt) or Decline. No more silent online orders.
  • Light Green and Dark Green themes — two new options that tint the existing Light and Neon themes in line with the brand palette. Pick from Back Office → Settings → Appearance; the choice syncs to every POS terminal.
  • Waiter app now reads the back-office security map — Cancel Order and per-item cancel buttons hide when staff aren't permitted (Manager Override on Waiter behaves as Not Allowed since handsets are per-staff).

Platforms: Windows POS, Web POS, Android POS, iPad POS, Waiter, KVS, Back Office

v1.3.22 Manager Override security, Waiter cancel gating, big user guides expansion
25 Apr 2026
  • Manager Override security: every gated feature now has three settings — Allowed, Manager Override, or Not Allowed. With Manager Override, non-managers are prompted for a manager PIN or RFID card at the till before the action runs. The authorising manager is stamped onto the resulting record (corrections, refunds, paid in/out, wastage, cancel sale).
  • Admin role renamed to Manager across the back office and POS apps. Existing data and PINs are unchanged.
  • Waiter app now respects security settings — Cancel Order and per-item cancel/minus buttons hide when staff aren't permitted (Manager Override on Waiter behaves the same as Not Allowed since handsets are per-staff).
  • Eight new user guides covering the full Accounts & Invoicing flow (Account Customers, Invoices, Settling Invoices, Customer Statements, Summary Invoices, Credit Notes), plus Staff Management and Staff Rota.
  • User guides reorganised into themed sections (POS Basics, Menu Setup, Tables & Bookings, Discounts & Promotions, Stock Control, Payments & Deposits, Accounts & Invoicing, Staff & Reports) for easier browsing.

Platforms: Windows POS, Web POS, Android POS, iPad POS, Waiter, Back Office

v1.3.21 VAT parity across reports, Ref Line polish, light theme hover fixes
23 Apr 2026
  • VAT calculations now match across POS EOD reports and Back Office reports (Category, Group, VAT). All reports include multi-buy, mix & match, and per-item discounts, with consistent penny rounding.
  • Back Office Reports remembers the chosen date range as you browse between reports.
  • Open-price products with Add Ref Line now prompt for the reference on Web and Windows POS.
  • Reference lines always show on the cart row on Web, Windows and Android POS.
  • iPad POS: Edit Item modal now includes a Print Label button, matching the Android flow.
  • Android POS: Edit Item modal shows Save and Print Label side-by-side.
  • Back Office light theme: icon hover states on Rooms & Tables and across edit / view / rename icons now use coloured tinting. Row hover tints fixed on product list, Staff Rota grid and every report table.
  • Windows POS on-screen keyboard redesigned to 5 rows — punctuation via Shift + number like a real UK keyboard, Clear key moved next to Backspace, text visible in light mode.

Platforms: Windows POS, Web POS, Android POS, iPad POS, Waiter, Back Office

v1.3.20 Edit Item modal resized, Windows POS Test Printer rewired
22 Apr 2026
  • Edit Item modal (Options menu) is now wider and taller on all POS apps — fits all fields without vertical scrolling.
  • Windows POS: 'Test Printer' button in POS Settings now prints an actual test ticket with pass/fail feedback (previously opened a COM port list). Shift+click still shows serial diagnostics for troubleshooting.
  • No Waiter-specific changes this release (version bumped to stay aligned with the Android POS update channel).

Platforms: Windows POS, Web POS, Android POS, iPad POS, Waiter

v1.3.19 Per-item discount on bills, Android split bill fix, back office polish
22 Apr 2026
  • Printed table bills now show an 'Item Discounts' summary line so numbers add up when per-item discounts are applied (Windows, Web, Android, Waiter; iPad already did this).
  • Waiter-printed bill total now correctly subtracts per-item discounts (previously only subtracted cart-level discount).
  • Android POS: Split Bill items can now be selected from the master cart on first open — previously required saving and reopening.
  • Back Office statements: payment rows now show the invoice each payment was allocated to, and directly-paid invoices appear on the statement.
  • Back Office invoices: VAT-free products now print at 0% (previously incorrectly showed 20%); historical invoices render correctly too.
  • Back Office Teya settings: clicking Save no longer wipes the Connected banner or Store dropdown.
  • Back Office theme selector: no longer silently reverts to default when a cloud fetch completes after a manual theme change.
  • Back Office Full Reset now also clears the Deposits collection.
  • Staff Rota portal: shifts now load for staff accounts (cloud permission widened for staff role names).
  • Windows POS: new 'Remote Support' tile in Options menu — one tap downloads and launches the epos247 remote-access client.
  • rota.epos247.com subdomain now live.

Platforms: Windows POS, Web POS, Android POS, Waiter, Back Office

v1.3.18 Waiter offline resilience, invoice/statement redesign, rota tweaks
21 Apr 2026
  • Waiter app: full data parity with POS — table round-trip now preserves VAT, cost price, per-item discounts, gift cards, stamp-card redemptions, deposits, split bill state and bill payment status.
  • Waiter app: consolidation on save — recalling a table and adding duplicate items now merges qty onto the existing line instead of creating duplicates.
  • Waiter app: full offline resilience — connectivity monitor, red 'Offline Mode' banner, pending-sync queue persisted locally, amber 'pending sync' banner when reconnecting, automatic replay. 5-second timeouts on cloud writes prevent UI hangs.
  • Back Office invoice + statement redesign: business info top-right, customer address positioned for DL envelope window, Bill To duplicate removed from printouts, on-screen preview matches printed page exactly, VAT number below business email.
  • Back Office Staff Rota: time pickers replace hour-only dropdowns, overnight shifts supported, 15-minute drag snap on grid, dark-mode clock icon.
  • Windows POS: Add Note modal no longer softlocks with many preset notes — keyboard hidden by default, Cancel/Confirm always reachable.
  • Dot matrix printers: all POS apps now force USA character set — fixes the mystery '£' that appeared before the ticket number.
  • Windows POS: removed the irrelevant ticket number from order tickets.
  • Android POS: manual 'Check for Updates' now installs on first tap (was requiring a second tap).

Platforms: Windows POS, Web POS, Android POS, Waiter, Back Office

v1.3.17 Dot matrix '£' charset fix, Android manual update fix
20 Apr 2026
  • Dot matrix order printers: forced USA character set on all POS apps — fixes the stray '£' before the ticket number.
  • Windows POS: removed the irrelevant ticket number from order tickets.
  • Android POS: manual 'Check for Updates' now installs on first tap instead of requiring a second tap.

Platforms: Windows POS, Android POS, iPad POS

v1.3.16 Windows POS kitchen/receipt sizing hotfix
20 Apr 2026
  • Windows POS: kitchen ticket and receipt character sizing fixed — tall/wide/large field settings now honoured correctly on both dot matrix and thermal printers.
  • Matches the 1.3.15 fix already shipped to Android POS and Waiter. iPad was already correct.

Platforms: Windows POS

v1.3.15 Kitchen ticket sizing hotfix (Android POS + Waiter)
20 Apr 2026
  • Hotfix for kitchen ticket character sizing on Android POS and Waiter.
  • Switched from GS ! n to ESC ! n for all print modes — the older command is supported by every thermal and dot matrix printer we've tested, whereas GS ! n was being silently ignored by many.
  • Star SP700 unchanged (uses its own separate height/width commands).

Platforms: Android POS, Waiter

v1.3.14 Dot matrix sizing + Sales Review null-item hardening
20 Apr 2026
  • Kitchen tickets on dot matrix order printers now honour the tall/wide/large field sizes configured in Back Office (Android POS and Waiter).
  • Sales Review on Web POS and Windows POS now tolerates sales or pending orders with null/malformed items — no more blank screen from one bad record. Wrapped in an ErrorBoundary for future safety.

Platforms: Windows POS, Web POS, Android POS, Waiter

v1.3.13 Split Bill stability patch
20 Apr 2026
  • Android POS: new guest carts added mid-flow on Split Bill now accept dropped items without needing to save and re-open.
  • Android, Web, Windows, iPad POS: tapping the Card button on a split-bill guest now correctly fires the integrated terminal for the guest's amount (was sending 0).
  • Android POS: Cancel button on Dojo 'Unsuccessful' screen now dismisses the modal.

Platforms: Windows POS, Web POS, Android POS, iPad POS

v1.3.12 Staff Notice Board
19 Apr 2026
  • New: Staff Notice Board (Pro+). Manager-authored message that renders above the PIN pad on every POS staff login screen.
  • Toggle on/off in Back Office → Staff Management. Edits appear on every open login screen in real time. Fixed-height card with internal scroll — keypad position never shifts.

Platforms: Windows POS, Web POS, Android POS, iPad POS, Back Office

v1.3.11 Split Bill crash fix + move race + Android product grid
19 Apr 2026
  • Windows + Web POS: fixed Split Bill save crash caused by undefined fields on legacy cart items. storeTable now strips undefined leaves recursively before writing to the cloud.
  • Windows, Web, iPad POS: Split Bill phantom duplicates eliminated — moveItemsToGuest and moveItemBackToMaster rewritten as single idempotent state updates.
  • Android POS: product grid crash fix — defensive distinctBy guards on duplicate product / category ids.
  • Admin + Partner panel: Release Notes history now shows the full version list (deploy script was silently dropping the history array on every run).

Platforms: Windows POS, Web POS, Android POS, iPad POS, Admin Panel, Partner Panel

v1.3.10 Split Bill integrity fix (master/guest move race)
19 Apr 2026
  • Split Bill integrity fix on Windows, Web, and iPad POS: items no longer disappear or inflate when moving them between the master cart and guest carts on large bills.
  • Rewrote moveItemsToGuest and moveItemBackToMaster as single idempotent state updates so batched double-taps no-op instead of re-appending.

Platforms: Windows POS, Web POS, iPad POS

v1.3.9 iPad catches up — payment modal redesign, kitchen tickets on Store, always-on Table Actions
18 Apr 2026

iPad payment modal redesigned to match Android — two-column layout with keypad + quick cash on the left, totals + applied payments + method buttons on the right. Switched to a pence-based keypad (0-9, 00, backspace) where typed digits accumulate as pence — "150" means £1.50 — matching the faster muscle-memory of the other POS apps. Quick cash buttons (£5/£10/£20/£50) now commit immediately as cash payments with change preview. Method buttons apply the current input as a split payment and auto-complete the sale when the remaining balance hits zero.

iPad now prints kitchen tickets when you Store a table — previously the iPad persisted the cart to Firestore but skipped the kitchen-ticket step, an operational gap vs the other POS apps. Store now fires order tickets for new items and cancel tickets for anything removed, just like Windows/Android/Web. Covers all entry points: Function Bar, Product Panel, and auto-store-previous flows in Table Actions.

iPad Table Actions summary always shows when you tap an in-use table — previously the iPad short-circuited to auto-recall whenever the cart was empty, bypassing the bill summary and action buttons entirely. Now tapping any in-use table always opens the modal so operators see totals, discounts, service charge, and have one-tap access to Split Bill / Transfer / Print Bill / Covers / Cancel.

Store button guarded against double-fire — a tenant report that a 2-copy-configured order printer printed 4 tickets turned out to be a React/Electron race: a bounced Store-button tap fired storeTableOrder twice before state updates committed, doubling the kitchen-ticket copy count. Added reentrancy guards on Windows, Web and Android.

Platforms: Windows POS, Web POS, Android POS, iPad POS

v1.3.8 Split Bill preserves promotion discounts + arrives on iPad
18 Apr 2026

Split bill no longer loses promotion discounts — previously, splitting a table that had a cart-level discount applied (multi-buy, mix & match, manual cart discount) would write each guest's sale at the undiscounted item prices, so a "3 Tapas for £15" split three ways across three guests would total 3 × full-price instead of £15. On opening a fresh split bill, the POS now distributes each active discount proportionally across the contributing units and bakes the effective price onto each unit before it's offered for distribution. The individual sales each guest pays still add up to the original cart total. Applied on Web, Windows, Android POS; iPad inherits the same behaviour by reading the baked prices from saved state.

Split Bill arrives on iPad POS — the iPad had the underlying Firestore schema to read split state written by other POS apps but no UI to start a fresh split. Now it does: tap Split Bill on the Table Actions popup, assign items to guests in a two-pane modal, tap Pay on any guest to jump into the normal payment flow. Includes seat +/− control, tap-item-back-to-master, and Save & Close to persist mid-flow state.

Platforms: Windows POS, Web POS, Android POS, iPad POS

v1.3.7 Online-order lifecycle polish + touch-friendly Change Covers everywhere
18 Apr 2026

Online orders close out properly after payment — taking payment on an unpaid online order via the Sales Review → Online tab now marks the source order as fulfilled (status: completed, paymentStatus: paid, fulfilledAt + fulfilledBy stamped) as soon as the sale is written. The order drops out of the pending list automatically instead of sitting there forever.

New "Mark Paid" action for cash-on-arrival — when a customer ordered online to pay on collection, staff can now tap Mark Paid on the unpaid online order to flip the payment status without re-ringing the sale. The Complete action then becomes available to confirm fulfilment.

Change Covers now uses a touch-friendly keypad across the board — iPad POS previously opened a basic iOS alert with a text field, and Web POS didn't have a Change Covers action at all. Both now show the same 3×4 numeric keypad that Windows and Android already use (big digit display, 1-9 keys, clear + backspace, Cancel + Confirm). Also applied to the Waiter app which was still using an outlined text field.

Platforms: Windows POS, Web POS, Android POS, iPad POS, Waiter

v1.3.6 Super-charged Sales Review — Pending Sales tabs + per-day Price Shift schedules
17 Apr 2026

Sales Review, supercharged — the existing Sales Review modal grew a tab strip across the top. Alongside the familiar "Completed" tab you now get tabs for All Pending, Tables, Rooms, Collection, Delivery, Online, and Held. Each tab lists the in-progress orders from its respective source with a live count badge on the tab itself.

Unified actions on every pending sale — select a sale on any pending tab to see the full line-item breakdown, customer details, delivery address (if relevant), and an action bar with Open (load into cart to continue editing), Payment (load and jump straight to the payment screen), and Cancel (same warning prompt as Cancel Sale, logs corrections for all items). Paid online orders get a Complete button instead of Payment, marking the order as fulfilled.

One place to manage everything in-flight — no more hunting across Tables, Bar Tabs, Held Sales, Phone Orders and Room Bills screens. Every unpaid or parked sale across your venue is visible in one modal. Available on Windows, Web, Android and iPad POS.

Per-day Price Shift schedules — the Price Shift feature from v1.3.4 now supports a different start/end time per day. Back office shows one row per weekday; tap to toggle, then set each active day's window. Schedules that span midnight are still supported on a per-day basis. Legacy single-time settings are auto-migrated on first load so existing tenants keep working.

Recall hardening — defensive fallbacks added to cart serialisation so recalled items from older sales round-trip cleanly to Firestore without undefined-field rejections.

Platforms: Windows POS, Web POS, Android POS, iPad POS, Waiter, Back Office

v1.3.5 Price Shift polish — buttons now reflect the active price
17 Apr 2026

Product buttons show the shifted price — when a Price Shift is active, both product buttons and the variation picker rows now display the current Alt Price (with the clock icon) instead of the base price. Applies to all POS apps and Waiter, and to both flat products and per-variation alt prices. Tenants were reporting confusion seeing the original price on the till while the shift was meant to be running.

Manual toggle takes effect immediately — previously on Android and iPad, toggling the Price Shift on/off via the function bar or options menu didn't re-price items already queued; you had to finish a sale before the change showed. The cart consolidation logic was merging new lines onto existing lines that still held the old price. Now adding the same item after a toggle produces a fresh line at the new price.

Single-price display — the button label shows only the active price (no strikethrough base), since Price Shifts can be used to raise prices as well as lower them — strikethrough implied a discount which isn't always the case.

Platforms: Windows POS, Web POS, Android POS, iPad POS, Waiter

v1.3.4 Scheduled Price Shifts — alternate prices on a weekly schedule
17 Apr 2026

Price Shifts — new section under Discounts in the back office. Enable the feature, give it a name (e.g. Happy Hour, Breakfast Menu, Early Bird), pick days of the week and a start/end time, and set an Alt Price on any product. When the scheduled window is active, POS prices switch over automatically.

Per-variation alt prices — if a product has variations (e.g. small / large), each variation can have its own alt price. An Alt field appears next to the regular price field inside the variations editor whenever the feature is enabled.

Till indicator and manual override — all POS apps (Windows, Web, Android, iPad) and the Waiter app show an amber banner across the cart when the shift is active, with the shift name. POS staff can toggle the shift on/off via a dedicated Function Bar / Options button, which holds their choice until the next schedule boundary crosses.

Promotion stacking — member pricing still wins over shift pricing; multi-buy and mix-match deals still apply on top of the shifted prices. Products without an Alt Price stay at their normal price during the shift (opt-in model). Cart items lock their price when added — the shift ending mid-sale doesn't re-price already-added lines.

Overnight schedules supported — a window like 22:00 → 02:00 is handled correctly.

XLSX import/export — the product spreadsheet gained an Alt Price column, and the variations field carries alt prices through round-trip.

Platforms: Back Office, Windows POS, Web POS, Android POS, iPad POS, Waiter

v1.3.3 Change Covers crash fix, light theme polish
17 Apr 2026

Change Covers crash (Windows POS) — The Change Covers action on the table actions popup was calling window.prompt(), which Electron refuses to implement. Tapping the button threw an uncaught exception and put the UI into a broken state. Replaced with a proper styled keypad modal matching the rest of the app (same visual language as the Enter Covers modal shown when opening a new table).

Back office light theme polish — A large batch of light-theme CSS rules were silently not matching due to a double-escape bug in Tailwind opacity variants (bg-surface-800/80, bg-surface-700/50, etc.). Around 70 rules have been re-activated, which fixes dark grey tables, dark headers with unreadable labels, and dark hover states across the products list view, invoicing tables, reports, staff pages, and more. Also added remaps for text and background utilities that weren't covered at all (text-surface-200, text-gray-300/400/500, bg-gray-700/800, bg-surface-750) and added protection for white labels inside coloured buttons so they aren't flipped dark.

Platforms: Windows POS, Back Office

v1.3.2 Bar tab service charge, print queue view with per-ticket actions
16 Apr 2026

Bar tab service charge — Set a percentage service charge that applies automatically whenever a bar tab is active. Configure from the back office Bar Tabs card; a new Compulsory toggle stops operators from turning it off mid-tab. Falls back to the global default when empty, and the per-tab toggle state now persists across recalls. All POS apps.

Print queue view — When an order ticket fails to print, the red banner's action changes from Retry to View. Tapping opens a print queue modal: a live list of every queued ticket on the left, a plain-text preview of the selected ticket on the right, and three per-ticket actions — Retry (manual send, interrupts the auto-retry loop), Receipt (print the kitchen ticket via the POS's designated receipt printer), and Cancel (drop the ticket from the queue). The Waiter app now shows this banner for the first time.

Platforms: Windows, Android, iPad, Waiter

v1.2.34 Real-time staff sync, cancel sale confirmation, Bluetooth fix, UI improvements
12 Apr 2026

Real-time staff sync — Staff list on all POS and Waiter apps now updates live via Firestore listeners. Changes to staff in the back office (new members, PIN updates, role changes, deletions) are reflected immediately without restarting the app.

Cancel Sale confirmation — A confirmation dialog now appears before cancelling a sale, preventing accidental cancellations. Shows on all POS apps.

Bluetooth scanning fix — Android 12+ devices were crashing when scanning for Bluetooth printers due to missing runtime permission requests. Now properly prompts for BLUETOOTH_CONNECT and BLUETOOTH_SCAN permissions before accessing paired devices or scanning.

iPad Teya fix — Fixed a crash when initiating Teya card payments on TestFlight builds, caused by a Swift Concurrency issue with Firebase Functions SDK.

Wastage empty cart check — Wastage function now shows a toast if triggered with no items in the cart. All POS apps.

Back office UI — Gift Cards and Customers pages redesigned with compact table list views. General Settings refactored into 12 named sub-components for cleaner code. KVS Devices section added. Windows download auto-detects architecture. Marketing page Coming Soon banner.

Platforms: Windows, Web, Android, iPad, Waiter

v1.2.33 Staff back office access, default service charge, clean URLs, settings redesign
12 Apr 2026

Staff back office access — Admin staff members with an email address can now be granted their own login to the back office. Account owners enable it from the staff form, which creates a secure Firebase Auth account via cloud functions. Each staff member gets per-section permissions (dashboard, products, reports, customers, tables, staff, settings, and more). Access is automatically revoked when a staff member is demoted, deleted, or their email changes.

Default service charge — A new "Order Options" section in General Settings lets you set a global default service charge percentage that applies to all sales, not just table orders. Counter sales, bar tabs, and phone orders all get the service charge automatically. Rooms can still override with their own percentage. A new "Optional Service Charge" toggle controls whether POS operators can disable the charge per order.

Clean URLs — The .html extension is no longer required in URLs. Subdomain rewrites added for pos, backoffice, manager, hq, partner, admin, menuboard, queue, and kiosk. A new Quick Links page provides easy access to all web apps.

Settings page redesign — General Settings cards are now collapsible with a 2-column layout. All sections start collapsed for easier navigation. Accounts Settings card restyled to match the other cards.

32-bit Windows support — A 32-bit (x86) Windows installer is now built alongside the x64 and ARM64 versions for older hardware.

Admin & Partner portal menus — The icon toolbar in the admin and partner portals has been replaced with a dropdown menu showing labelled items for easier navigation.

Platforms: Windows, Web, Android, iPad, Waiter

v1.2.32 Printer device exclusions, deposit redeem date, receipt fixes, iPad build fix
10 Apr 2026

Printer device exclusions — Order printers can now be configured to exclude specific POS or Waiter devices. In the back office printer form, a new Device Exclusions section lists all registered devices with checkboxes. Excluded devices will not send tickets to that printer. Useful for bars with their own printer that shouldn't receive kitchen orders from the restaurant terminal. All POS apps + Waiter.

Deposit redeem date — Take Deposit modal now includes a Redeem Date field for recording when the customer expects to use the deposit. Shown as a purple badge on the Redeem Deposit list and the back office Deposits table. All POS apps.

Windows receipt printing fix — Deposit, Paid Out, Paid In, Wastage, and Account Payment receipts were printing "UNDEFINED" on serial printers and blank on network printers due to incorrect ESC/POS property names. Fixed.

Cancel Sale on bar tabs — Now properly deletes the bar tab and logs all items to the Corrections report. All POS apps.

iPad build fix — Resolved duplicate FlowLayout declaration that prevented compilation. iPad date picker for deposit redeem date now opens calendar directly.

Homepage refresh — "Coming Soon" banners replaced with "Now Live". Product screenshots section replaced with a 21-image sliding carousel.

Platforms: Windows, Web, Android, iPad, Waiter

v1.2.31 Allergen prompts, gift card scanning, deposit redesign, supplier quick-add, waiter enhancements
10 Apr 2026

Allergen prompts on table open — Rooms can now be configured with "Prompt for Allergens" in the back office. When enabled, staff are shown a grid of the 14 standard UK allergens after entering covers on a new table. Selected allergens are stored with the order, printed as a bold warning banner on kitchen tickets, and displayed prominently on the KVS. All POS apps + Waiter + KVS.

Gift card barcode scanning — Scanning or entering a barcode that doesn't match a product now automatically checks the gift card database. If a matching active card with balance is found, it's applied to the sale instantly. No need to open the Gift Card modal separately. All POS apps.

Gift card payment on receipts — When a gift card is used as partial or full payment, the receipt now shows a detailed payment breakdown (e.g. Gift Card £17.50 + Cash £2.50) so the totals reconcile correctly.

Zero-total gift card sales — When a gift card covers 100% of the sale amount, the Pay button turns green and completes the sale directly without needing to select a payment method. Recorded as "Gift Card" payment.

Take Deposit redesign — The deposit modal now uses a two-column layout: customer details with live search on the left, amount keypad and payment buttons on the right. Includes a new Redeem Date field for tracking expected redemption dates. All POS apps.

Supplier on quick-add products — When scanning an unknown barcode, the New Product modal now includes a Supplier dropdown so new products can be assigned to a supplier immediately. All POS apps.

Cancel Sale on bar tabs — Cancel Sale now properly deletes the bar tab from the system and logs all items to the Corrections report. Previously the tab remained intact after cancellation. All POS apps.

Cart item consolidation on tables — When storing a table order, recalled items (shown in blue) are now merged with newly added identical items into a single line with combined quantity. All POS apps.

Waiter: covers prompt — Opening a new table now prompts for the number of covers, matching the POS app behaviour.

Waiter: kitchen ticket consolidation — Identical items print as "3×Chips" instead of three separate lines.

Waiter: unsaved order prompt — Pressing Back with items in the cart shows Store Order / Cancel Order / Continue Order options instead of silently discarding.

Waiter: real-time printer sync — Printer settings now update live from the back office without restarting the app.

Variation quantity on reports — Product reports now correctly count quantities using the variation multiplier (e.g. Half Pint counts as 0.5 units).

Improved addon Link Product picker — The product search when linking addons to products now opens as a full overlay with a proper search bar, replacing the tiny dropdown that was clipped by the modal frame.

Windows touch keyboard — On-screen keyboard added to the Gift Card Sell tab for touch screen usability.

Platforms: Windows, Web, Android, iPad, Waiter, KVS

v1.2.30 Sell gift cards, profit margin report, waiter improvements, report fixes
9 Apr 2026

Sell Gift Cards from POS — Gift Card modal now has Redeem and Sell Card tabs. Sell a gift card by entering a value, optional customer details, and either scanning an RFID card or choosing Receipt to auto-generate a 10-digit code. Gift card is added to the cart as a zero-VAT item. On payment, the card is activated in the system and a compact gift card ticket is printed with a QR code (receipt mode). Customer record created automatically if details provided. All POS apps.

Profit Margin Summary report — New report in the back office under Reports showing per-product profitability: Barcode, Name, Stock Level, Qty Sold, Cost Price, Sales ex VAT, Sales inc VAT, Margin, and % Margin. Colour-coded margins (green/amber/red). PDF export in landscape A4. Non-stock products excluded.

Report VAT rounding fix — Group, Category, and VAT reports could show Total VAT 1p different from Gross minus Net over a month of sales. Per-item amounts now rounded to 2dp before accumulating.

Report filters fix — Filtering by group/category/supplier was including unrelated products from the same sale. Now filters at the item level within each sale.

Archived products in reports — Group and Category reports now include archived products, so historical sales always map to the correct group instead of showing as Ungrouped.

UK date format on report PDFs — Custom date ranges now show DD/MM/YYYY instead of YYYY-MM-DD on PDF exports.

KVS web login — Kitchen Display System web version now has its own email/password login form instead of hanging at Loading. Fixed crashes from Electron-only API calls.

Waiter: covers prompt — Opening a new table now prompts for the number of covers with a numeric keypad, matching the POS app. Table name input combined into the same modal for rooms with addName enabled.

Waiter: kitchen ticket consolidation — Identical items now print as "3×Chips" instead of three separate "1×Chips" lines, matching POS app behaviour.

Waiter: product sort order — Products now respect the per-category alphabetical setting and the manual position from the Product Layout Editor.

Waiter: unsaved order prompt — Pressing Back with items in the cart now shows Store Order / Cancel Order / Continue Order instead of silently discarding. Cancel Order logs items to the Corrections report.

Android back button — POS and Waiter apps no longer close when the Android back button/gesture is pressed.

Cart scroll fix — Expanding a cart item's option drawer near the top of a long cart no longer pushes it off-screen. Web and Windows POS.

Platforms: Windows, Web, Android, iPad, Waiter

v1.2.29 Force-unlock tables, order notes, cancel sale security, print robustness
9 Apr 2026

Force-unlock stuck tables — When a table is locked by a device that has crashed or rebooted, operators can now force-unlock it directly from the POS. A modal shows who locked the table and when, with a warning before unlocking. Audit-logged to the Corrections report. Auto-recalls the table after unlocking. All POS apps + Waiter.

Order Notes — Pre-defined notes (e.g. "No onions", "Well done", "Allergy — nuts") can be set up in the back office under Product Setup → Order Notes. These appear as quick-tap amber chips inside the Add Note modal on all POS apps, so staff can tap common instructions instead of typing them. Tapping appends to the text field, so custom notes and presets can be combined. All POS apps.

Cancel Sale security on table summary — The Cancel Order button on the Table Summary modal now respects the staffCancelSale security setting. If staff are restricted from cancelling sales, the button is hidden on the table summary too. All POS apps.

Cancel table audit trail — Cancelling a table order now logs every item to the Corrections report with reason "table_cancelled", so there's full visibility of what was cancelled and by whom. All POS apps.

Cancel table reliability — Fixed a bug where cancelling a table could print cancel tickets but fail to clear the stored table from Firestore, especially during intermittent network issues. The clearStoredTable function now properly surfaces errors instead of silently swallowing them. All POS apps.

Kitchen print robustness — Network printer timeout increased from 1s to 5s. Half-close TCP verification confirms the printer read the ticket data before declaring success. Per-IP mutex prevents concurrent prints to the same printer from clashing. Failed tickets now surface a prominent red toast ("Kitchen ticket could not be sent — queued for retry") instead of a silent queue badge. Windows, Android POS, Waiter, iPad.

Bar tab delete button removed — The delete icon on individual bar tabs has been removed to prevent accidental deletion. To close a tab, recall it and use Cancel Sale (which respects security settings). All POS apps.

iPad cart indicators — iPad cart now shows violet dot for items with addons and cyan message icon for items with notes, matching the other POS apps. Addon and note details display in the expanded panel.

Platforms: Windows, Web, Android, iPad, Waiter

v1.2.27 Addon printer routing, main thread fixes, iPad login fix
6 Apr 2026

Addon-level extra printer routing — Individual addon choices can now be configured to print to an additional order printer. Set up in the back office addon form via a small printer icon on each item. When the addon is selected on a sale, an extra ticket is sent to the configured printer alongside the normal kitchen ticket. Windows, Android, iPad POS.

Android main thread bottlenecks — Fixed 10 Firestore calls that were running on the Main thread (pool diary rates, booking special requirements, table locking, bar tab updates). UI now stays responsive during these operations on lower-end hardware.

iPad login password field fix — The password field was losing focus after the first character because SwiftUI was swapping between two different `SecureField` views based on whether the field was empty. Now uses a single field with a prompt.

Back office fixes — AI Assistant load error fixed (previous30DaysSales → previous7DaysSales). AI Assistant tenant scope fixed (useAuth call added for Lite product limit checks).

Platforms: Windows, Web, Android, iPad

v1.2.26 EOD Generator fixes, statement payments, printer listeners
6 Apr 2026

EOD Generator — category + group breakdown fix — Category breakdown was showing all sales as "Uncategorised" because sale items store categoryId, not categoryName. Now looks up names from loaded categories. Group breakdown also added.

EOD Generator — VAT breakdown — Per-rate VAT breakdown (20% Standard, 5% Reduced, etc.) now shown on screen and in PDF download, matching the POS receipt output.

Statement payments fix — Account statements now read from both accountPayments and invoicePayments collections, fixing missing payments for tenants using iPad POS Settle Invoice.

Statement print overlap fix — Customer info block hidden on print so only the DL envelope-positioned address block renders.

Real-time printer listeners — Android and iPad POS now use Firestore snapshot listeners for kitchen printers (matching Windows/Web), so printers load on app startup regardless of staff login.

Platforms: Windows, Web, Android, iPad

v1.2.25 Android order printer fix, Current Financial on Android + iPad
6 Apr 2026

Android order printer fix — Kitchen/order printers were not firing on Android POS due to the printer list not being loaded on cached logins. Printers and ticket format are now fetched on every staff login regardless of cache state.

Current Financial on Android + iPad — The Current Financial (X report) is now available on Android and iPad POS, matching the Windows and Web implementation. Options menu, function bar, and receipt printing all supported.

iPad build fixes — Resolved Settle Invoice postcode references, ProductSetupModal scope issue, and other compile errors for iPad.

Platforms: Windows, Web, Android, iPad

v1.2.24 Current Financial report, Group Sales fix, Android OOM fix
5 Apr 2026

Current Financial report — A new read-only report (the classic X report) that shows all the same data as an EOD report without resetting any figures, saving a record, or opening the cash drawer. Available in Options → Reports and configurable as a function bar button. Windows and Web POS.

Group Sales breakdown fix — Group Sales were not appearing on EOD reports or receipts for tenants who hadn't explicitly toggled the setting. The default was mismatched between the settings UI (on) and the report code (off). Fixed on all 4 platforms.

Android OOM fix — Added largeHeap to Android POS and Waiter manifests (192MB → 512MB heap). Customer listener now filters to active customers only, reducing memory usage for venues with large customer databases.

Platforms: Windows, Web, Android, iPad

v1.2.23 Colourful function buttons, split bill seats, Lite restrictions
5 Apr 2026

Colourful function buttons — Function bar buttons and home screen buttons now use a colour-tinted style matching product buttons (15% colour fill, 50% colour border, coloured icon, white text) on all 4 POS platforms.

Split Bill seat adjustment — + and − controls in the Split Bill header let you add or remove guest seats on the fly. Seats with items cannot be removed.

Lite plan report limits — Lite accounts restricted to 13 months lookback and 12-month max date range across all back office and POS reports.

Lite plan 500 product limit — Lite accounts capped at 500 active products. Enforced on all creation paths: back office, import, AI, and POS product management.

Platforms: Windows, Web, Android, iPad

v1.2.22 Performance fix, floating point precision, DL envelope address
5 Apr 2026

Performance — listener debounce — Firestore real-time listeners now batch their initial data into a single UI update on login, reducing ~200 redundant re-renders to one. Eliminates the brief freeze some Windows terminals experienced on staff login.

Performance — printer status — Windows POS printer status polling no longer triggers a re-render every 10 seconds when the status hasn't changed.

Floating point precision — Sale totals are now rounded to 2 decimal places on all platforms, preventing values like £65.52000000000001 from appearing in Firestore records and reports.

DL envelope address positioning — A4 invoices and account statements now position the customer name and address at 20mm/45mm for alignment with standard DL envelope windows when printed and C-folded.

Settle Invoice fixed height — Windows POS Settle Invoice modal now uses a fixed 90vh height instead of variable sizing.

Platforms: Windows, Web, Android, iPad

v1.2.21 Settle Invoice redesign, expandable invoice detail
5 Apr 2026

Settle Invoice — 2-panel redesign — All 4 POS apps now feature a wider modal with a customer list on the left (searchable by name, address, postcode, phone) and invoices on the right. Multi-select invoices with checkboxes, expandable line-item detail per invoice, running total, and streamlined payment flow.

Expandable invoice detail — Tap the chevron on any invoice to view individual line items, quantities, and totals without leaving the modal.

Manual Payment — Record unallocated payments (cheques, bank transfers) directly from the POS. Allocate to specific invoices later in the back office.

Platforms: Windows, Web, Android, iPad