NX Restaurant - Release 26.09
26.09.29
π What's New
π’ Split Navigation on Multi-Way Splits
Checks split many ways now show a clear "N of M" split indicator with previous/next navigation, replacing a row of small, hard-to-count seat dots once a check has more than a handful of splits. Tapping the indicator opens a full split overview showing every split's total and payment status (paid, partial, or open) side by side with the selected split's items and remaining balance, with a "Go to Split" button to jump straight to it β useful for quickly finding which split a payment belongs to on a large check.
π± Guest Name & Phone Prompt Improvements
Several improvements to the order-type Guest Name/Phone prompt used for To-Go, delivery, and pickup orders:
- Selecting a customer from the phone field's autocomplete no longer overwrites a guest name the operator already typed. Instead, the matched customer's name appears as a tappable suggestion below the field β nothing is written until it's tapped.
- Phone number matching now uses the same ranked, exact-match-first search engine as the dedicated Customer Search screen, and requires at least 4 digits before searching β cutting down on noisy, low-confidence matches on venues with large customer lists.
- The Order List's Customer Name and Phone Number columns now correctly populate for walk-in and phone-in orders using this prompt (previously they stayed blank for anything other than delivery orders).
- A new setting allows the customer lookup dropdown to be disabled entirely on the phone field for venues that don't want it, showing a plain phone number field instead.
π¨οΈ Printer Status β Unified Device Info View
The Device Info printing screen's separate "Venue Printers" and "Seen Printers" tabs have been combined into a single list. Each printer now shows one clear status (Ready, Warning, Offline, or Not Yet Checked), whether it's currently visible on the network, and when it was last checked.
π§Ύ Payment Voucher Print Formatting
The Tip, Total, and Signature lines on payment vouchers, along with the tip-suggestion checkboxes and rows, now correctly respect the print format size configured for the routing format β previously these always printed at normal size regardless of what was configured. Text and checkbox rows now also wrap correctly at wider print sizes instead of being cut off mid-word by the printer.
π³ Third-Party Kitchen β Table & Customer Name Fallback
When using a third-party kitchen integration (such as Crunchtime Kitchen), NX now sends the check's name as the course table name and/or customer name when those aren't already set from a table or customer record.
π Loyalty Points Can Now Be Worth More Than One Cent
Loyalty plans can now be configured with a point value greater than 1Β’ per point. Every place points are shown or calculated β the Customer Info balance card, the guest-facing rewards panel on the customer display and PAX terminal, the printed receipt points line, and tier redemption β now correctly reflects the configured point value.
π¨οΈ Office Printer Support for Reports
Reports can now be printed to a conventional office printer β any printer discoverable on the venue's network, or saved as a PDF β through the standard system print dialog, instead of only the POS receipt printer. The Shift Summary report continues to print on the receipt printer as before; every other report now opens the office print dialog with a proper printer picker, copy count, and orientation options. Report layout on paper matches what's shown on screen, including colors, fonts, and icons.
π Dynamic Lead Time Controls for Online Orders
The Online Order screen in Manager View now shows each channel's current lead-time mode and quoted wait, with quick actions to pause/resume a channel, edit prep time (for channels using static lead times), and add or clear a temporary surge delay β all from a single menu on each channel row.
π₯οΈ Kiosk Enhancements
Empower Your Guests: Complete Guide to Kiosk Setup in NX POS
NX Kiosk: Guest Ordering & Usage Guide
Picture Perfect: Kiosk Artwork & Image Specs Guide
π₯οΈ Kiosk β Vertical Category Layout
Menu categories on the kiosk browse screen can now be displayed as a vertical sidebar of image tiles instead of the default horizontal scrolling row β useful for venues with many categories that would otherwise require guests to scroll off-screen to find one. Category images also now appear on the horizontal row's pills when configured.
π₯οΈ Kiosk β "We're Closed" Screen
A new screen displays a simple branded closed message instead of the attract screen whenever no idle screen is configured for the current time (or none is configured at all), rather than showing a blank or broken screen.
π₯οΈ Kiosk β Two-Stage Inactivity Timeout
Kiosk sessions left idle now show an "Are you still there?" prompt with a countdown before resetting, instead of resetting immediately β giving a distracted guest a chance to continue their order rather than losing it outright.
π₯οΈ Kiosk β Rotating Idle Screen Content & Image Scaling
The attract screen now displays configured rotating promotional content with a cross-fade transition. Each slide can also be set to display its image whole (Fit) instead of always being cropped to fill the screen (Crop) β useful for a logo or other image where showing the whole graphic matters more than filling the screen edge to edge.
π₯οΈ Kiosk β Order-Complete Logo & Special Instructions
The order-complete screen can now display a configured logo. Item customization can now include an optional special instructions note field for guests to add a comment on an item, and a configurable header above the modifier groups.
π₯οΈ Kiosk β Additional Improvements
- Fixed a pricing bug where selecting a modifier option charged that option's own full menu price instead of its configured upcharge β for example, a $3.50 upcharge item was charging its full $18 price.
- Fixed being unable to select the same modifier option twice (e.g. two orders of the same meat choice) when a category allows multiple selections.
- Fixed the "Add to Order" button always showing $0 for items with no required modifiers.
- Fixed the category tab highlight staying on a previous guest's last-browsed category after starting a new order.
- Added a configurable text color for item descriptions, and automatic readable text coloring throughout the item customization screen based on the configured background.
- Category rows and modifier option lists now show a soft edge fade when there's more content to scroll to.
- Restored a hidden hotspot for dealer login on the attract screen, and fixed the hidden triple-tap device settings hotspot being missing on the live attract screen.
- A modifier with its own price now shows on its own line with its price at checkout, instead of being folded silently into a comma-separated list.
- Fixed text overflow on the category sidebar (names could break mid-word) and the order-complete screen's "Notify me" button (label could wrap awkwardly).
- Fixed visual issues on the checkout upsell strip where an item's Add button or price could wrap onto multiple lines, and items with no photo appeared shorter than items with one.
- The on-screen keyboard now closes properly after entering special instructions.
- Promo code matching is now more flexible, matching on a partial code rather than requiring an exact match when configured to do so.
- Stored payment methods can now be disabled per venue for kiosk checkout.
π Bug Fixes
- Fixed automatic gratuity by guest count (e.g. an 18% gratuity for parties of 5 or more) never applying, for any venue. Three separate issues were involved: the configured gratuity wasn't being matched correctly, the guest-count comparison only applied at exactly the threshold instead of at or above it, and the check-open guest count prompt never triggered the calculation at all. The gratuity now also applies correctly when a guest-count-incrementing menu item pushes a party over the threshold.
- Fixed the "Loyalty Prompt" receipt block never printing for any venue, due to a leftover internal flag that nothing in the portal ever set.
- Fixed a discount configured to include modifiers applying $0 to a modifier line even though it correctly applied in full to a sibling item at the same moment.
- Fixed office report printing failing entirely on managed kiosk devices, where an internal step meant to make the print dialog easier to back out of was instead causing the whole app to be evicted mid-print by the device's kiosk management software.
- Fixed a blank access code on the manager-override screen being accepted as a valid approval with no PIN, swipe, or fingerprint ever entered. Also fixed a terminated employee's access code or card continuing to grant manager overrides indefinitely after they left.
- Fixed a Star mG-T scale that lost its USB connection only reconnecting after a full app or device restart, and occasionally ringing a weight-based item at a stale price instead of prompting for manual entry.
- Fixed the system print dialog for office report printing offering no clear way to back out of it on some devices, making the screen appear stuck.
- Fixed several buttons app-wide showing clipped or invisible sibling buttons in the same row β including the Reports screen's action bar, End of Day's Print/Refresh row, the kiosk receipt options row, and a couple of manager dialogs β caused by a button sizing issue affecting rows with more than one button. A single button's text (such as a dollar amount on a tender button) could also wrap and get clipped.
- Fixed "Credit payment already in progress" incorrectly blocking every subsequent credit card attempt after a payment was cancelled or errored, until an automatic 75-second recovery kicked in.
- Fixed a check with a real balance and no payments being force-closed with a $0 total moments after being opened, due to a race between the item finishing its sync and the check being backed out of.
- Fixed a guest being charged the pre-discount amount on a check that had just been reduced by a loyalty redemption seconds earlier, on non-cash tender types.
- Fixed a check with a fractional-cent value anywhere in its totals (a floating-point artifact from summing payments) failing to sync and silently disappearing from the device β most visibly, an online order that other staff could see but one device could not.
- Fixed the guest payment screen's "Pay with Tap" button appearing visually squished on some checks.
- Fixed moving an item onto a seat that had already been fully paid, leaving that seat permanently unable to take a new payment even though it now owed money again.
- Fixed a crash that could occur when a background sync update and the order screen tried to read the same item's history at the same moment.
- Fixed an issue where moving an item onto a different, already-closed check with a captured payment left that check's header permanently showing as fully paid while the actual balance went uncollected.
- Fixed a gap where transferring an item to a different check had no safeguard against landing on an already-closed check.
- Fixed voiding a fee shortly after a check auto-closed on full payment leaving the total overstated by the voided fee and its tax.
- Fixed a rare case where a rung item could fail to sync and get excluded from a check's closing total, undercharging the guest.
- Fixed an SNBC receipt logo printing off-center, with its left edge landing near the middle of the paper instead of true center.
- Fixed intermittent input-dispatch delays traced to a background connectivity check running on every screen redraw, and a related freeze on the login screen from the same underlying cause.
- Fixed an issue on the kiosk where an item with a required modifier group restricted to POS-only could incorrectly leave the "Add to Order" button disabled, and where the "Make it yours" heading could appear above an empty modifier section for items with no kiosk-visible modifier groups.
- Fixed an issue where a modifier category restricted to online orders only was incorrectly affecting the POS ordering screen β causing the modifier screen to reopen automatically after every selection and blocking the item from being rung even when its POS-visible requirements were satisfied.
- Fixed an issue where picking a second or third option in a required modifier group on an item rung at a quantity greater than 1 could incorrectly show "Modifier requirements have already been satisfied" and block the selection.
- Fixed a crash on Display Boards where a narrow category list element on a 4K screen could crash the app.
- Fixed an issue where a menu board's second monitor could go black after a remote support session and never recover, requiring a device restart.
- Fixed an issue where splitting an item left every resulting share stuck showing "Modifier requirements have not been satisfied," even when the original item's modifiers were complete.
26.09.15
π What's New
π³ Card Processing Enhancements
π’ Card Reader Status Messaging
The card payment status dialog now shows accurate status text from the moment it opens instead of jumping straight to "Processingβ¦" before the reader has even been engaged. When the reader is ready for a card, the app shows a "Connected to card reader" confirmation and displays the canonical "Insert, tap or swipe" prompt regardless of how a particular reader model or firmware phrases its own message internally.
π§Ύ Partial Approval Indicator on Tip Adjust
The Tip Adjust screen now shows a persistent detail line when a payment was a partial card approval, and a warning banner if the tip or total being entered would exceed what the card actually approved. This helps catch a case where an operator might otherwise adjust a tip based on a total the card never actually authorized.
π§ IDTech Firmware β Remote Index and Remote Trigger
IDTech VP3350 and VP3300 firmware versions are now fetched from a remote index rather than hardcoded in the app, so new firmware can be published without an app update. Firmware updates can also now be triggered remotely rather than requiring a staff member to use the Device Info screen. Updates are refused if a card transaction is currently in progress, and the update process now times out safely rather than potentially hanging indefinitely. Maintenance Guide: Updating Card Reader Firmware (VP3300 & VP3350)
π³ Guest-Terminal β Custom Tip Amount and Venue-Configured Values
The PAX A3700 guest terminal's tip prompt now offers a Custom amount option, letting guests enter any tip on the keypad β matching the POS guest display. The terminal also now shows the actual tip percentages configured for the area instead of a hardcoded 18/20/25% set.
Β
π° Discount Enhancements
π Order-Level Discounts
Any discount configured as "Order" type in the portal now applies as a seat-level discount line β the same mechanism previously used only for loyalty reward redemption. This means an order-level discount can now be applied even when every item on the seat is already discounted. Open-value order discounts now correctly prompt for a dollar or percent amount before applying. Β Master Your Savings: Item-Level vs. Order-Level Discounts in NX POS
π¨ Discount Tile Colors
Discounts can now be assigned a background color in the portal, which displays on the discount's tile in Order Entry. Text color is automatically chosen for readability against the background β no separate text color setting needed. Brighten Up Your Screen: How to Customize Discount Button Colors in NX POS
π·οΈ Cleaner Discount Tiles
Discount tiles in Order Entry no longer show the selection-rule subtext (such as "All Items" or "Subtotal") beneath the discount name β just the name itself, giving the label more room and one less thing to parse when picking a discount quickly.
π Stable Discount Tile Order
Discount tiles in Order Entry now appear in the same alphabetical order whether or not an item is selected. Previously the order could change depending on selection state, which broke the tap-position muscle memory staff rely on.
Β
π³ KDS Enhancements
βοΈ Double-Tap to Bump
Double-tapping a ticket's header on KDS now bumps it directly, without needing to select the ticket first. A single tap still selects the ticket as before; a second tap shortly after bumps it.
π₯οΈ Β Simple Header Option
KDS stations can now be configured with a simplified header showing just the station name, Recall, All-Day, and the connectivity icon β a lighter alternative to the existing detailed header. Configured per station. Streamline Your Line: Kitchen Display Header (Simple vs. Detailed)
β±οΈ Print Chit on Tag
A new per-station option prints a chit for an individual item when it's tagged (marked done) on the KDS. Routed through the station's configured on-demand printer or a separate optional destination. Off by default.
Β
π§Ύ Printing Enhancements
π¨οΈ Kitchen Chit β Modifier Style
Routing formats now support a Modifier Style option for kitchen chits: list (one line per modifier, the existing default), wrapped (modifiers joined on a single comma-separated line under the item), or none (modifiers omitted entirely). Configured per routing format.
π¨οΈ Star Micronics Printer Support
NX now supports Star Micronics printers via the StarXpand SDK. Supported models include the TSP143, TSP100, TSP654, MC-Print3, MC-Print2, SP742, and MC-Label3. Star printers connect over Ethernet (by IP address), USB, or Bluetooth and support receipt printing, kitchen chits, cash drawer kicks (including dual-drawer selection), and live status reporting (paper-out, cover-open, error) in the top-bar warning, System Status console, and Device Info printer screen. International character sets are applied automatically based on the venue's language setting. Certified & Compatible Accessories & Devices
π§Ύ SNBC BTP-L580 Label Support
Printed labels on the SNBC BTP-L580 now correctly advance to the tear-off position after printing. Certified & Compatible Accessories & Devices
Β
π Bug Fixes
- Fixed an issue where lists with Date Pickers would not default to the current business date.
- Fixed an issue where the Order List and Check Select "Total" column could show $0.00 on a check whose stored total was stale, even though the check's actual balance was correct.
- Fixed a regression where every credit card voucher printed $0.00 in the tip field regardless of whether a tip was actually left β caused by a recent fix that had removed a necessary guard, marking every card sale as "tip adjusted" the instant it authorized rather than only when a tip decision was actually made.
- Fixed an issue where a check's header could read Closed with a $0 total while its own seat remained In Progress with a real, unpaid balance β caused by a zero-balance cash shortcut closing a check based on a stale balance snapshot that hadn't yet picked up a concurrent item addition from another device. A related guard was also added to the Guest Payment screen to prevent it from silently switching to a different check mid-session.
- Fixed an issue where the KDS V3 per-item rush marker (β‘) still didn't appear after an earlier fix β it was only wired to the GRID layout while FLOW is the default layout, and the KDS's own Rush button wasn't setting the per-item flag at all.
- Fixed an issue where the Order Status Board's Ready column only showed one order at a time, cycling through the rest, while Preparing correctly filled with several per page.
- Fixed an issue where voided items on KDS V3 showed no visual indication at all. Voided items now show a strikethrough and a red "VOIDED" badge. Also fixed: an already-bumped or off-screen voided item was incorrectly generating a brand-new KDS ticket β nothing should happen if the item isn't currently visible on the board.
- Fixed an issue where the floor plan and tab list dollar badge could go stale indefinitely at venues with frequent sync failures. Changes made on other stations to seat totals now correctly trigger a badge recompute.
- Fixed an issue where selecting "No Tip" on a rear display or payment handheld left the tip marked as unresolved, blocking employee clock-out with a phantom missing tip. An explicitly declined tip is now correctly recorded as resolved.
- Fixed an issue where a receipt printed immediately after payment showed the guest's pre-transaction loyalty points balance instead of the updated post-transaction balance.
- Fixed an issue where wrapped modifiers on kitchen chits and guest receipts split a short trailing word onto its own line even though it fit beside the previous word β the line was being built assuming a fixed 48-column width instead of the printer's actual configured column count.
- Fixed an issue where the "Transaction Progress" Continue button was enabled immediately when the dialog opened β before the card reader had even received the request β allowing an operator to return to order entry and ring additional items while a card was still authorizing. The card would then be approved for the original, lower balance.
- Fixed an issue where deleting an item on one station before it synced to the server could cause that item to reappear permanently on other stations and be charged to the guest's card, if the delete and create messages arrived out of order over real-time sync.
- Fixed a crash where a corrupted timestamp on a synced entity record caused the app to crash on every incoming update for that entity type until the app was reinstalled or the row was cleared.
- Fixed an issue where tapping Fulfill on a drive-thru order left it on the screen until the operator navigated into the order and back out.
- Fixed an issue where a venue's job settings could fail to sync at all if any single job had a boolean field stored as an empty string in the backend. This caused Enforce Schedule and other job-level settings to appear broken across the whole venue.
- Fixed an issue where a long menu item name on a printed receipt pushed the price onto its own line, sometimes splitting it mid-digit. The price is now always kept whole and right-aligned on the first line, with the name wrapping beneath. Fixed on Epson, Star, and ESC/POS (SNBC) printers.
- Fixed issues with SNBC label printers where a multi-item label burst could drift and misfeed across labels, and where a second label in a "1 item per label" format could land on the first label before it had fully ejected.
- Fixed an issue where the KDS V3 light theme reverted to dark after every reboot.
- Fixed an issue where the alert bell's position on the screen didn't survive a relaunch β it would return to its default position regardless of where it had been dragged.
- Fixed an issue where POS reports were failing seconds after being requested.
- Fixed a crash when the print receipt printer picker was opened β a threading conflict in the dialog system could crash the app. A related fix addresses the same class of crash when opening a dialog while another was being confirmed or dismissed.
- Fixed an issue where Star and ESC/POS (SNBC) network printers never received a periodic status check, so paper-out, cover-open, and error conditions never appeared in the top-bar warning, System Status, or Device Info printer screens.
- Fixed an issue where an SNBC USB receipt printer showed the USB permission prompt and then printed nothing β the print queue became stuck until the app was relaunched. Also fixed: several recognized USB printer brands (SNBC, Star, Citizen, Bixolon, Zebra, Rongta) were never being prompted for USB permission at all on some devices.
- Fixed a crash when deleting a modifier from an item in order entry.
- Fixed an issue where double-width printing (used for headers and rules) calculated the wrong available column count on eight Epson printer models, causing text to overflow the printable width.
- Fixed an issue where the horizontal rule on an ESC/POS (SNBC) chit printed at double the correct width and wrapped onto a second line.
- Fixed an issue where loyalty earnings were accrued on every plan a guest was enrolled in, not just the plan mapped to the order's area. A guest at a venue with multiple loyalty plans was earning on all of them for every order.
- Fixed an issue where swiping a gift card or access card could leave the card reader unsettled, causing the next card transaction to fail.
- Fixed an issue where a menu item still printed on the guest receipt with "Print on Guest Check" turned off. Also fixed: zero-price items were not being properly excluded from receipts on formats configured to hide them.
- Removed the automatic IDTech card reader reboot that triggered on certain decline codes. Analysis of fleet-wide data showed the reboot completed cleanly only on already-healthy readers β on chronically affected devices it timed out and immediately retried the failed transaction, sometimes for hours. Recovery is now dwell-and-reset only, consistent with Datacap's guidance.
- Fixed an issue where a closed check could be missing its close time, closing employee, or closing device information on the server, even though its status correctly showed as closed.
- Fixed an issue where a single tap on certain buttons (including Adjust Tip and some order commands) could occasionally trigger the action twice β traced to a rare case where scanning a receipt QR code while already in Order Entry could create a duplicate copy of that screen.
- Fixed a significant performance issue where vector icons were being re-parsed from XML on the main thread once per second on nearly every screen, causing intermittent input delays and app freezes on some devices.
- Fixed an issue where rapidly double-tapping Exact Cash captured the full balance twice, recording two payments on one order.
- Fixed an issue where printing a receipt from a different terminal on a fully-paid, closed order could revert the order back to open β in one case, a check stayed open for 22 minutes after a correct payment before being closed by hand.
- Fixed an issue where the PAX A3700 guest terminal reported an incorrect, always-outdated build version to the backend, which could cause it to be flagged as needing an update it already had.
- Fixed an issue where the PAX terminal's Terminal Config dialog could only be closed with the Close button, and where the deprovisioning passcode entry was hidden behind the on-screen keyboard.
- Fixed an issue where an auto order-type fee (such as a takeout service charge) was saved on the device but never reached the server β reports showed only a fraction of the fee amount when it recalculated after a second item was rung.
- Fixed an issue where the cash price shown on screen at a cash-discount venue wasn't the amount that would actually settle the check β keying the quoted exact cash price left a few cents owing. The same underlying issue also affected gift card payments at cash-discount venues, where a partial gift card payment could be charged less than the amount entered.
- Fixed an issue where an "even" split charged one guest more than the others due to a rounding error that compounded across the split. Receipt item ordering after a split was also inconsistent across receipts for the same order.
26.09.01
π What's New
π₯ SafePlate β Allergies and Dietary Restrictions
NX now supports structured allergy and dietary restriction tracking from booking through to the kitchen. A venue sets up a list of allergens and restrictions in the portal β each with a severity level and the specific handling instructions for the line (separate board, change gloves, no shared fryer). That list syncs to every device and works offline.
Restrictions can be recorded in five places: a guest's profile, a reservation or waitlist entry at booking, the kiosk question, the POS order screen, or typed directly onto the order for a walk-in. All five end up in the same place on the order.
The server sees the allergen name, severity color, and handling instructions on the KDS ticket, printed kitchen chit, and expo screen as a per-table summary. The cashier sees it on the order header while ringing β in time to choose modifiers before the ticket fires. Ordering an item tagged with something the guest reacts to raises a warning, records the outcome, but never blocks the order.
On the KDS and kitchen chit, each station controls how much detail it shows: names only (the default), names plus full instructions, or nothing. The ticket stays flagged red regardless. Allergens print on the kitchen chit by default and on the guest receipt only if the venue enables it.
The old free-text word search still works β a venue with no list set up loses nothing.
Also fixed: seating a reservation used to discard the guest's special requests (window seat, anniversary, etc.). They now carry onto the order.
π§Ύ Gratuity Calculation Basis
A gratuity now carries a Calculation Basis configured in the portal: Subtotal (the sale before any discount), Discounted Subtotal (the sale after discounts), or Total (the discounted sale plus tax).
This changes what existing gratuities charge on a discounted order. The new setting defaults to Subtotal, so a venue that hasn't set one will start charging gratuity on the pre-discount sale where it previously used the post-discount sale. Venues that want the previous behavior should set Discounted Subtotal in the portal. Orders with no discount are unaffected β the two figures are the same. Fixed and per-guest gratuities are unaffected.
π Restore a Voided Item
A voided item can now be undeleted with the new Undelete command. It clears the void, returns the item as active (back to Fired if it had already reached the kitchen, or Held if it hadn't), and leaves the price, quantity, and any discount untouched. Requires the same permission used for managing void reasons.
π½οΈ Set Course Command
A new Set Course command puts every item rung next onto the chosen course β so staff pick Appetizers once, ring the appetizers, then switch to Entrees instead of setting the course line by line after the fact. The button shows the active course name while one is set. Selecting No Course clears it and returns to the menu's default. Only appears in areas configured for coursing.
π Swipe Between Floor Plans
A venue with several floor plans can now swipe left or right across the plan to move between them β patio, bar, main dining β without tapping the name row. The plan cycles continuously.
π³ Pay with a Saved Card via Texted Code
A signed-in guest is now offered any card saved on their account as a payment option on guest-facing screens. Choosing it texts a one-time code to the number on the account β nothing is charged until the code is entered. Available where the venue already allows card payments on guest screens. Kiosks offer it as the first payment option once the guest signs in.
π Loyalty Sign-Up After Payment
Guests who aren't already signed in are now offered the chance to join the rewards program after their payment is approved, with the number of points the order earns shown on screen. Entering a phone number attaches them to the order and credits the points β even though the order has already been paid. A number that matches nobody creates the guest and enrolls them. A returning guest recognized from their card is greeted by name with a Continue option.
This prompt appears on the POS payment flow, the customer-facing display, and the PAX terminal. It only appears when the area has a rewards program and the guest isn't already signed in.
π± Rewards Sign-In on the Payment Handheld
The "Sign in for Rewards" button on the guest payment handheld is now fully wired. It follows the same venue setting that controls rewards on the customer display β configure it once and it applies to both. The handheld and customer display now use the same sign-in prompt, rewards screen, and welcome card.
Rewards close once a seat has been paid on both screens β applying a reward after money is collected would lower a total already settled. A voided payment doesn't count as paid. On a split order, a guest who hasn't paid yet keeps their rewards.
π² Receipt by Text β Pre-Filled with Masked Number
When the order already has a phone number (from a to-go order, delivery address, or recognized customer account), choosing Text now shows that number ready to send β masked to the last four digits for privacy. A guest can send it as-is, clear it with the circle-x, or start typing a different number. Applies on the guest payment handheld, customer display, and PAX terminal.
Also fixed: if a guest chose Text on the receipt prompt and the venue also sends automatic close receipts, they could receive two identical texts. The same receipt is now never texted to the same number twice for the same order. A different number still sends.
π³ Manual Card Entry β Rebuilt
Keying a card in by hand now uses an NX screen instead of the payment provider's popup. The new screen matches the rest of the POS, is driven by the on-screen keypad, and advances from card number to expiry to security code automatically as each field is filled.
Manual card entry now validates the number length against the card type β 16 digits for most cards, 15 for American Express, 14 for Diners Club. Cards with a valid 19-digit format (Visa, Discover, JCB) are also accepted. The security code field already validated correctly; one gap is fixed: editing a card number after entry so the type changes now flags a now-incorrect security code instead of blocking the payment silently.
A failed attempt no longer closes the payment β the screen stays up with what was already entered so a mistyped digit or dropped connection is a single tap to retry. Wrong number, wrong security code, and expired date each say so on the field that needs fixing. The card number is visible while typing, then masks to the last four digits once you move on. The card number is excluded from screenshots and screen sharing while the prompt is open.
πΊ Customer Display β Full Totals Panel
Discounts, gratuities, service fees, and payments already taken now appear on the customer display totals panel β previously it showed only Subtotal, Tax, and Total, with the subtotal reflecting the pre-discount amount. Guests were looking at numbers that couldn't produce one another with nothing on screen to explain the difference. The same lines the register shows now appear on the customer display, in the same order, only when there's something to show. All labels are now translated into the venue's language.
π₯οΈ Guest Terminal β First-Time Setup and Deprovisioning
The PAX A3700 now registers itself as a device on first launch so a venue pairing code attaches correctly on a factory-fresh terminal. A new Deprovision Device action in the terminal's hidden config menu releases it from its current venue β after a staff passcode β so it can be paired elsewhere. No order or payment data is affected.
π Menu Boards β Any Google Font
Menu boards can now use any font from the full Google Fonts catalog, not just the 8 bundled in the app. Fonts are downloaded and cached when the board's design syncs to the device while online, so a board never flashes the wrong font on its first showing. If a font can't be fetched, the board falls back to Roboto and retries on the next sync. The original 8 fonts remain bundled and work with no network at all.
π« Menu Boards β Out-of-Stock Item Treatment
A menu item marked out of stock can now be configured per board element to be hidden entirely, shown with a red "Out of Stock" badge, or shown with the badge and name dimmed. Reflects live from the same out-of-stock flag the terminal uses β marking an item out of stock updates the board immediately. A hidden item is dropped before the item-count limit is applied so the next item slides into place instead of leaving a gap.
π― Consistent Design Across the App
Rounded corners are now the same size everywhere, field label colors are consistent, the smallest text on phone-sized terminals is now larger and matches tablets, and a handful of screens were rendering text in the wrong typeface. This affects the appearance of Order Entry, the floor plan, Manager View, Time Clock, Host, Kiosk, and the guest display.
π Bug Fixes
- Fixed a critical issue where a gratuity could be added to an already-closed, fully-paid order, leaving the order showing an uncollectable balance and the day's payments below accountable. Adding a gratuity to a closed order is now refused with a message to reopen it first. Removing a gratuity from a closed order is still allowed to correct existing affected orders.
- Fixed the command-state check that was supposed to disable order commands on closed orders β it was never running, leaving Gratuity, Discount, Add Fee, Round Up, Add Seat, Transfer, and Pre-Auth active on closed, abandoned, and parked orders. Also fixed: Park now only appears on closed orders as always intended; Note, Refire, Remove Discount, and Recombine Items were permanently grayed out in the item menu β all four now work.
- Fixed an issue where cash rounding and cash discounting used together left orders a penny over or under after a cash payment, requiring a manual correction to close. The payment screen now applies discount first then rounding, matching the order's own arithmetic. Split cash tenders are handled correctly.
- Fixed an issue where reprinting a receipt from a different terminal could rewrite a closed order's total and leave a balance owing. Printing now only updates the print counter.
- Fixed an issue where adjusting a payment down after voiding items left the order's balance wrong β usually negative β even though the card was charged the correct lower amount. Adjusting a payment now recalculates the order's running totals immediately.
- Fixed an issue where voiding an item could leave it still counted in net sales on the day's reports, causing Total Accountable to sit above Total Payments. Voided items are now cleared immediately rather than at the end of the recalculation.
- Fixed an issue where closing a pre-authorized tab at a venue with both order rounding and a credit surcharge could leave the order a cent or two over or under. The pre-auth close now applies the same arithmetic as a regular card payment. The same fix was applied to the Search Orders β reapply payment flow.
- Fixed an issue where an order named at the Guest Name prompt showed as "null" on the Order Status Board. The board now uses the order's own name when no customer is attached. The same null display was fixed on printed receipts and in data sent to third-party kitchen systems.
- Fixed an issue where menu items or categories flagged "Allowed In: POS only" still appeared and were orderable on the kiosk. Also fixed: POS item search and barcode/camera scanning could find and ring channel-restricted items, bypassing the same channel scoping the main ordering screen already enforced.
- Fixed a kiosk crash where double-tapping "Add to Order" while a ring was in flight added the same item twice under one id, crashing the cart on render. Also fixed: the kiosk's category tabs and the Reorder dialog's item list were rendering without checking for duplicate ids, which could crash either screen.
- Fixed an issue where clocking out on a time card with no job attached caused the app to shut down after the shift saved but before the terminal signed the employee out β leaving the next person at a still-signed-in terminal with no idea whether the shift had been recorded. Starting and ending a break had the same issue. Also fixed: clock-out failed the same way when the employee couldn't be found in the staff list during a brief refresh.
- Fixed an issue where a job, area, or schedule setting changed in the portal could be ignored until the app was restarted if the push notification was missed. All three now refresh on the 30-minute sync cycle. Schedule changes bring shifts with them, and the refresh window recalculates as the business date rolls over.
- Fixed an issue where Enforce Schedule triggered even with the setting turned off on every job and employee β any published schedule gated clock-in as if enforcement were on.
- Fixed an issue where cancelling a manager approval prompt instead of answering it left the gated action permanently stuck β on the time clock, Clock In stopped responding entirely until the terminal was refreshed.
- Fixed an issue where terminals could keep taking orders after signing out, recording rung items and actions against no employee. The terminal now detects an order screen with nobody signed in and returns to login automatically.
- Fixed an issue where an order fully paid could remain open indefinitely, blocking clock-outs. The close now happens regardless of what interrupts the moment after payment, and any paid-but-open order is closed the next time it is touched.
- Fixed an issue where removing a paid modifier left its price in the check's total β the subtotal, tax, and amount tendered still included the removed modifier.
- Fixed an issue where splitting a discounted item gave every portion the full discount instead of its proportional share β a 100% comp on a $34.00 item split two ways removed $68.00 from the check.
- Fixed an issue where a check could close with a total that didn't match its items. Moving an item left its price on the originating seat; deleting an item while editing removed the item but not its price. Both are fixed, and the check now recalculates as part of closing.
- Fixed an issue where moving items onto a new seat caused the new seat's automatic gratuity and fees not to appear in the check header total.
- Fixed an issue where "Remove All Discounts" only cleared the currently highlighted line β on one check a $143.90 discount survived thirteen presses by two managers. Remove All now clears every discounted line on the seat.
- Fixed an issue where a fixed-dollar discount on multiple items applied the full amount to each line with no warning. A confirmation now shows the total before applying.
- Fixed an issue where an open percent discount opened a dollar keypad and applied $0.00 with no error, while the same discount from its own tile worked correctly.
- Fixed an issue where a discount applied just before printing and closing showed correctly on the receipt and header but left individual items at the undiscounted price in the saved record.
- Fixed an issue where a percentage discount on a multi-quantity line calculated rounding per item and multiplied it β 10% off ten $1.05 items took $1.10 instead of $1.05.
- Fixed an issue where a card surcharge could charge one cent more than the check total, leaving a β$0.01 balance and DSR payments above accountable.
- Fixed an issue where a check with two taxes and a card surcharge or cash discount could present a card balance one cent above the check total.
- Fixed an issue where the Adjust Tip button on the payment completion box did nothing β the order was being released on a countdown timer while the box was still on screen. The countdown now pauses while the tip box is present. Every tender's payment box now also closes on the same timer β Check and Gift Certificate previously had no timer and stayed up indefinitely.
- Fixed an issue where the Gift Card tip box closed the moment the card approved, leaving no time to press Adjust Tip. The On Order Close Seconds setting is now configurable in the portal for all tender types.
- Fixed an issue where the Reclassify Tax modifier setting had no effect β a modifier configured to reclassify an item's tax class now correctly applies the new rate, and removing the modifier restores the item's own tax.
- Fixed an issue where the rewards prompt on the customer display never appeared after payment β the receipt step went straight to the thank-you screen. Also fixed: recognized guests were never greeted by name, the guest lookup never started at tip-prompt venues, and a previous guest's identity was never cleared between orders.
- Fixed an issue where the PAX terminal showed a phone sign-in prompt to guests already recognized from their card instead of greeting them by name.
- Fixed an issue where signature capture on the customer display never worked β the tip screen advanced before the guest could sign. Also fixed: the "require signature over X% tip" threshold was never firing because it was evaluated in whole numbers, making it only trigger at 100% or above.
- Fixed an issue where a cash payment caused the customer display to return to idle within about one second. The countdown now starts from when the screen appeared if the guest hasn't touched it yet, giving an untouched prompt the full two minutes.
- Fixed an issue where the customer display and PAX terminal had opposite screen-handover behaviors when a new order started β the customer display immediately took the screen from a guest mid-interaction, while the PAX held indefinitely with no timeout. Both now use one rule: the new order waits while the guest is active, hands over immediately if the screen is untouched, and never interrupts a card in progress.
- Fixed an issue where "Not you? Sign in" showed a second confirmation dialog before detaching the recognized guest. The correction now happens immediately. Also fixed: signing in after "Not you?" could re-attach the declined guest, or match a secondary number on the declined guest's account. Phone and email matching now uses the primary number and address only and requires an exact match.
- Fixed an issue where splitting a table's order created the new order with no table, making it invisible on the floor plan. Split now prompts for the destination table, defaulting to the current one. Tapping an empty table in the Split screen now correctly starts the new order there.
- Fixed an issue where a new PAX terminal couldn't be paired because it hadn't registered itself as a device first.
- Fixed an issue where a terminal moved to a different location kept reporting its old venue on every request until the app was restarted.
- Fixed an issue where menu items, categories, areas, and other reference data were being fetched without a venue scope on refresh, causing multi-location accounts to occasionally see data from the wrong location.
- Fixed an issue where adjusting a tip wrote the payment but left the seat's own tip total showing the pre-adjustment figure β visible offline where the server can't repair it.
- Fixed an issue where moving items between orders left no audit record. Every item move now writes an Item Transferred entry on the order the item left, naming the item, destination, amount, and seats involved.
- Fixed an issue where closing an order by card left no audit trail entry. Closes are now recorded every time.
- Fixed an issue where a rewards sign-in failure showed the guest the thank-you screen with points displayed as if they'd signed in successfully. The guest now stays on the sign-in prompt with a plain-language message.
- Fixed an issue where Manual Entry on a guest-pay station handed the payment to the guest instead of the cashier. Also fixed: Search, saved card tile, and a pre-read card had the same behavior. A partial payment amount was also not traveling with the payment β the guest was asked for the full check.
- Fixed an issue where the card reader's "Insert Tap Swipe" instruction appeared before the reader was actually listening. Also fixed: pressing X on the tip screen kept the already-read card for the next payment. A card that fails in milliseconds is now treated as a broken reader with retry back-off and a clear "Card reader not responding" message after three failures.
- Fixed an issue where the Venue Cloud Logging switch had never worked. Turning Cloud Logging off for a venue now actually turns it off.
- Fixed an issue where a Display Board element with a zero border size still rendered a hairline outline. A border size of zero now renders no border.
- Fixed dark mode dialogs showing black text on near-black backgrounds. Also fixed: the notifications panel, reservation and table-picker dialogs, shift and hours reports, customer lookup suggestions, and the search bar now follow dark mode instead of staying in the light palette.
- Release 2, Release 3 β Fixed an issue where scanning a printed receipts QR code may not take the user to the appropriate check and/or seat. Introduced in 26.09.01 when preparing for upcoming feature.
π Early Adopter?
Interested in trying the latest BETA features of NX? Contact our Support Team at support@joinnx.com or submit a Support Request for more info.