Hotfixes on LS Central version 28.1.x.x
Tip: Partners can download the LS Central hotfixes directly from the LS Retail Portal (login required).
Expand All / Collapse All button:
LS Central hotfixes
87781 V28 Card Payment Only Attempting Once Instead of Three Attempts
- There was a bug where card payments at the POS were not retrying up to the configured number of attempts. This was fixed.
86970 Job queue entries not working / Background session in V28 issue
- Job queues no longer stall when sending POS e-receipt emails.
- Sending e-receipt and customer-order emails from the back office no longer starts POS background sessions for every till in head office. Job queues that process these emails now run reliably instead of stalling.
- On busy head-office setups, processing pending email requests could spin up background sessions for each POS at once, exhausting available sessions and blocking the job queue — and other job queues under the same user — from running. This was most visible after upgrading to version 28. Emails now send without that overhead.
- Suppresses the POS background sessions (send transaction, Azure Storage replication, job-queue refresh) only while the back-office Process Pending Requests job runs; normal POS behavior is unchanged.
- Action required by partners:
- None — the fix applies automatically after upgrade.
84930 Always print out receipts is payment is cash
- Details not available.
87887 Azure SAS token renewal on POS fix
- Fix renewal of azure SAS tokens on the POS.
87217 Possibility to change Customer Balance Calculation
- Event OnAfterCalculateCBalanceOverLimit added in POS Functions.
86833 SAS Token generation issue in Sending Transaction using Storage Queue
- Expiration of SAS access tokens was fixed.
86165 SC-4636-Events needed in LS Central v25
- The OnBeforePrintLineFormatString event has new SectionID and NodeName parameters.
- New overload procedure PrintLine with SectionID and NodeName parameters.
- PrintTenderDeclSlip, PrintTenderDeclLines and PrintRemoveAddTenderLines now trigger new PrintLine overload.
- The OnBeforePrintInfoCodeLine event has new ICode and ISubCode parameters.
85285 Mobile POS replicates wrong staff permissions after full device resync (manager privileges denied)
- Staff with manager privileges can once again void transactions, process returns, and complete sales on Mobile POS. Previously, on a device that cleared its database and did a full resync, everyone in a store could be replicated with the wrong permissions — copied from a single staff record — so managers were wrongly told they don't have manager privileges. Now each staff member's own permissions replicate to the device correctly.
- Action required by partners
- Update to a build that includes this fix, then let devices replicate. Corrected permissions apply on the next sync — no manual cleanup needed.
- If a device was worked around by manually deleting rows from its local permission table, no further action is needed.
- Affected versions: 28.0 and 28.1 (also in latest).
84501 Bugfix: do not use ItemUOMBuffer.Code when generating item labels
- Generating item labels through the scheduler no longer fails for items that lack the unit of measure last used during shelf label generation.
86874 Membership upgrade/downgrade batch job upgrades members with zero points
- Membership upgrades and downgrades now count only the award points a member earns within the tier calculation period. Points earned outside that period — including points that have expired — no longer push a member into a higher tier.
- Date range filters on member statistics work correctly too, so point totals match the range you set.
- Action required by partners:
- None. Run the Upgrade/Downgrade batch job (or wait for the scheduled run) to re-evaluate members on the corrected logic.
86807 PrintExtraSlip Error After Upgrade to BC/LS28
- Extra Print now works again for negative-amount lines that are not linked to a data entry, such as ordinary return items.
- After upgrading to LS Central v.28 these lines showed an error instead of printing; they now print as before.
- Voucher and gift card remaining-balance details introduced in LS Central 28 still work for the lines that have them
85193 Member account downgraded with sufficient point balance
- Members are no longer moved to a lower scheme by the upgrade/downgrade job when their points still meet the downgrade limit. The member's scheme now stays unchanged.
84177 Scale Item is conflicting with UOM and asking for weigh when the UOM does not require it
- Details not available.
83315 Bug: POS Web Templates "brick" price ignores the UoM configured on the Retail Hierarchy node
- Details not available.
86325 Returning transaction based on transaction with both sales entry and income expense fails
- Returning a POS transaction that generated a Customer Order and a Sales Order, with both a sales entry and an income/expense entry no longer fails with The POS Trans. Line already exists error.
85373 Declare Tender as Currency
- Operators can now declare foreign-currency tenders and the keypad opens, fixing a silent failure that occurred when no currency setup rows existed for that tender type.
84051 Deal Modifier “Added Amount” Not Charging Per Selection
- Selecting a deal modifier item more than once now charges the added amount for each selection.
- Previously, choosing the same item twice only added the amount once, undercharging the total.
- Action required by partners:
- None.
83793 CO Prepayment Invoice
- You can now reduce an item’s quantity — or remove it entirely — on a customer order at the POS when prepayment invoicing is turned on, without hitting an error. Prepayment invoices and credit memos stay in step with your change, so cancelling a whole order no longer posts a duplicate prepayment credit or invoice.
- Action required by partners:
- None. No setup or configuration changes are needed.
85300 Sales Type location not working in version 28
- Sales Type location is now respected when posting POS sales and refunds; returns against an original receipt still post to the store handling the return.
84710 Stores can view and modify other stores worksheets
- A user working on a Store Inventory Journal can no longer access other stores' journals by changing or clearing filters. Also fixed an issue where duplicating the browser page, or changing the region on the My Settings page, opened a new browser window without filters.
84633 Deadlock on LSCSendSerialCoupon causes double transactions in database
- Fixed an issue where a failed serial coupon synchronization to Head Office during POS posting could cause the same receipt to be posted twice, creating duplicate transactions in the Transaction Register. Posting now rolls back cleanly on a synchronization failure, so a retry no longer creates a duplicate.
84176 RFID-Error message "Scanned item not found" during RFID return - the line has already been marked for refund so we should skip the message
- Details not available.
84014 Scheduler message text overflow
- Data Distribution scheduler jobs no longer stop with a string-length error when a source location is unreachable and the connection error message is long. Previously, when a job replicated from several source locations and one could not be reached over the network, an overly long connection error aborted the entire run before the remaining locations were processed. The error message is now shortened when it is too long to store, so the job records the failure for the affected location and continues replicating from the other locations as expected.
- Action required by partners: None.
83765 LSC Statement-Calculate: GetSerialLotSalesQty missing transaction Filters
- Fix on calculation of qty. on hand for lot/serial items during statement calculation / posting.
83588 Item lines not compressing on Store Inventory Journal
- Importing items into a Store Inventory Journal from a barcode file now fills in both the variant code and the unit of measure for every line, taken directly from the scanned barcode. With the variant code in place again, the compress lines function now works correctly.
- This affects only the file import path. Lines received from Inventory Mobile are not affected, including the safeguard that blocks an unwanted unit-of-measure change when changing the unit is not allowed.
85151 OnBeforeCheckIfSOFullyShipped #683
- New event OnBeforeCheckIfSOFullyShipped_SalesLineOnBeforeDeleteEvent to bypass the "Sales Order is fully shipped and can be deleted" message.
84893 Modify existing event for OnBeforeAssignVATCode
- The OnBeforeAssignVATCode event now provides the VAT Code.
83992 codeunit 10000853 "LSC POS Print Utility Impl" procedure PrintExtraIncomeExpense Changes
- Income/Expense extra-print slips can now show the dates from the related POS data entry. When the extra print setup line for an Income/Expense account uses the %VF (Date Created) and %VT (Expiring Date) placeholders, the slip now prints those dates. Previously these placeholders were always blank on Income/Expense slips.
84091 V28.1 Customer Order Create - Confirm Button Disabled
- The Customer Order Confirm button in the POS is now configurable. You can assign one of two commands to it:
- CO_OK - the Confirm button stays disabled until a sourcing option (ship, collect, or vendor) is selected for the order. This is the standard behavior introduced in v28 and remains unchanged.
- CUSTOM with parameter CO_OK - the Confirm button is always enabled, so staff can confirm the order without selecting a sourcing option first. This restores the order flow that existed before v28.
- Action required by partners: none for the standard setup. If you want the pre-v28 flow (Confirm always available), assign a Confirm button using the CUSTOM command with parameter CO_OK in your POS layout.
84361 [LSC26] Discount Calculation incorrectly for transaction retrieved from suspend
- Fixed an issue where discounts were recalculated incorrectly after retrieving a suspended POS transaction. When a higher-priority discount offer excluded specific items from a lower-priority, store-wide member discount, those items could pick up the store-wide discount anyway once the transaction was suspended and retrieved. The exclusion is now respected correctly after retrieval.
83229 POS rounding differences after July 2025 update
- Fixed how rounding differences are distributed across a transaction's lines. On transactions with many low-amount lines, a line's proportional share of the difference could be smaller than the smallest allowed amount and was left unadjusted, leaving a residual difference at the transaction level. The full remaining difference is now assigned to the highest-value line instead, so the transaction total is rounded correctly.
84471 OnBeforeSendResetCode on LSCSPGResetPasswordUtils #678
- Added the OnBeforeSendResetCode integration event to codeunit LSCSPGResetPasswordUtils (ScanPayGo password reset). Subscribe to it to send a custom — for example HTML-formatted — password-reset email in place of the default plain-text message that contains only the reset code. Set IsHandled to true in the subscriber to suppress the default email.
83947 Add new integration events to codeunit "LSC POS Post Utility" #672
- Five new integration events were added to codeunit LSC POS Post Utility to enable extensions to hook into POS transaction posting workflows without modifying base code.
- New Events:
- OnAfterCollectTransAddBenefits
- OnBeforeWriteTransactionToDatabase
- OnBeforeSetOtherOfferParamCompressDiscountEntry
- OnAfterWriteTransactionToDatabaseCustom
- OnAfterApplyCouponEntry
83738 Selling Item for UOM with qty per different from base causes discount calculation issue
- Details not available.
83551 Make SetPOSFunctionalityProfile accessible for LSCCreateCustomerOrderV6 integrations #668
- Procedure SetPOSFunctionalityProfile has been made public. External apps can access this procedure and implement LSCCreateCustomerOrderV6 integration.
83424 When explode at posting a recipe the statement process fails because it cannot find the right gen. bus. prod group.
- Posting a Statement now picks the correct Gen. Bus. Posting Group for items with BOM Method = Explode at Posting.
83412 Seat lost at payment state for a splitted bill
- Pay for a guest on the Split Bill panel and the seat number now stays with the transaction all the way through payment. Previously the seat was cleared the moment the bill moved to the payment stage, so if a waiter stepped away without choosing a tender, the pending payment was hard to find and pick up again. Now the payment keeps its seat, so it can always be located and finished.
83715 Store Inventory Journal - Duplicate Purchase Orders when posting, when journal contains “Import Incomplete” lines
- Post a Store Inventory journal that still holds lines imported from the Mobile Inventory app but not yet fully received, and you do not get duplicate purchase orders anymore.
- Posting now skips those incomplete lines until the mobile import finishes, and processes them on a later post once they are received.
83600 Discount Amount Issue On Customer Orders
- Details not available.
83594 Collect for Compressed CO Lines Not Working
- There was an issue were Collect did not finish when partially collecting. This was fixed.
83221 EFT Card Printing "Print Buffer" does not have correct Transaction No.
- Details not available.
83144 Resend Kots that were send giving a duplication error
- When the push Kot was being used, the success was, to never send the Touched to false, making the next push send old kots too.
82960 SC-3929-V25 | POS data entry not found issue
- Web requests GetDataEntryBalance and GetVoutcherEntries have been backported to versions 26.1 to 25.0.
82759 Customer Order lines are marked as click and collect = true on ship orders
- Customer Order — POS Collect with inventory transfer
- When pressing Collect for a Customer Order at POS and the POS store has no inventory of the requested item, sourcing locations configured as ship-only (Will Ship Orders = Yes, Orders can be Collected = No) are now offered in the sourcing-locations lookup as collect-with-transfer options.
- Selecting such a location creates the Customer Order together with a Transfer Order that moves the item from the remote sourcing location to the POS store where the customer collects it.
- Previously these locations were excluded from the lookup.
- Customer Order — Optional upfront Sales Order for POS ship orders from stores
- A new opt-in setup field Derive C&C from Sourcing was added to Customer Order Setup (Click and Collect group).
- When the field is left disabled (default), the existing behaviour is preserved: POS Customer Order lines sourced from a store-mapped location are marked as Click and Collect and fulfilled via picking and a Sales Order Posted Shipment.
- When the field is enabled, the line's Click and Collect classification is instead derived from the sourcing location's Orders can be Collected setting.
- A store-mapped ship-only sourcing then produces a regular ship line with a Sales Order created upfront — allowing the order to be routed through the standard back-office Sales Order workflow (rate shopping, carrier integration, label printing).
80717 POS : SalesPerson Selection Modify Record and Update instead of Multiple Insert
- When a Sales Person is selected the current sales person line is updated instead of adding a new line.
Autotests hotfixes
87887 Azure SAS token renewal on POS fix
- Fix renewal of azure SAS tokens on the POS.
86833 SAS Token generation issue in Sending Transaction using Storage Queue
- Expiration of SAS access tokens was fixed.
86874 Membership upgrade/downgrade batch job upgrades members with zero points
- Membership upgrades and downgrades now count only the award points a member earns within the tier calculation period. Points earned outside that period — including points that have expired — no longer push a member into a higher tier.
- Date range filters on member statistics work correctly too, so point totals match the range you set.
- Action required by partners:
- None. Run the Upgrade/Downgrade batch job (or wait for the scheduled run) to re-evaluate members on the corrected logic.
85193 Member account downgraded with sufficient point balance
- Members are no longer moved to a lower scheme by the upgrade/downgrade job when their points still meet the downgrade limit. The member's scheme now stays unchanged.
86325 Returning transaction based on transaction with both sales entry and income expense fails
- Returning a POS transaction that generated a Customer Order and a Sales Order, with both a sales entry and an income/expense entry no longer fails with The POS Trans. Line already exists error.
84051 Deal Modifier “Added Amount” Not Charging Per Selection
- Selecting a deal modifier item more than once now charges the added amount for each selection.
- Previously, choosing the same item twice only added the amount once, undercharging the total.
- Action required by partners:
- None.
85300 Sales Type location not working in version 28
- Sales Type location is now respected when posting POS sales and refunds; returns against an original receipt still post to the store handling the return.
84176 RFID-Error message "Scanned item not found" during RFID return - the line has already been marked for refund so we should skip the message
- Details not available.
83588 Item lines not compressing on Store Inventory Journal
- Importing items into a Store Inventory Journal from a barcode file now fills in both the variant code and the unit of measure for every line, taken directly from the scanned barcode. With the variant code in place again, the compress lines function now works correctly.
- This affects only the file import path. Lines received from Inventory Mobile are not affected, including the safeguard that blocks an unwanted unit-of-measure change when changing the unit is not allowed.
84091 V28.1 Customer Order Create - Confirm Button Disabled
- The Customer Order Confirm button in the POS is now configurable. You can assign one of two commands to it:
- CO_OK - the Confirm button stays disabled until a sourcing option (ship, collect, or vendor) is selected for the order. This is the standard behavior introduced in v28 and remains unchanged.
- CUSTOM with parameter CO_OK - the Confirm button is always enabled, so staff can confirm the order without selecting a sourcing option first. This restores the order flow that existed before v28.
- Action required by partners: none for the standard setup. If you want the pre-v28 flow (Confirm always available), assign a Confirm button using the CUSTOM command with parameter CO_OK in your POS layout.
83715 Store Inventory Journal - Duplicate Purchase Orders when posting, when journal contains “Import Incomplete” lines
- Post a Store Inventory journal that still holds lines imported from the Mobile Inventory app but not yet fully received, and you do not get duplicate purchase orders anymore.
- Posting now skips those incomplete lines until the mobile import finishes, and processes them on a later post once they are received.
83144 Resend Kots that were send giving a duplication error
- When the push Kot was being used, the success was, to never send the Touched to false, making the next push send old kots too.
82759 Customer Order lines are marked as click and collect = true on ship orders
- Customer Order — POS Collect with inventory transfer
- When pressing Collect for a Customer Order at POS and the POS store has no inventory of the requested item, sourcing locations configured as ship-only (Will Ship Orders = Yes, Orders can be Collected = No) are now offered in the sourcing-locations lookup as collect-with-transfer options.
- Selecting such a location creates the Customer Order together with a Transfer Order that moves the item from the remote sourcing location to the POS store where the customer collects it.
- Previously these locations were excluded from the lookup.
- Customer Order — Optional upfront Sales Order for POS ship orders from stores
- A new opt-in setup field Derive C&C from Sourcing was added to Customer Order Setup (Click and Collect group).
- When the field is left disabled (default), the existing behaviour is preserved: POS Customer Order lines sourced from a store-mapped location are marked as Click and Collect and fulfilled via picking and a Sales Order Posted Shipment.
- When the field is enabled, the line's Click and Collect classification is instead derived from the sourcing location's Orders can be Collected setting.
- A store-mapped ship-only sourcing then produces a regular ship line with a Sales Order created upfront — allowing the order to be routed through the standard back-office Sales Order workflow (rate shopping, carrier integration, label printing).
80717 POS : SalesPerson Selection Modify Record and Update instead of Multiple Insert
- When a Sales Person is selected the current sales person line is updated instead of adding a new line.
Duty Free Add-On hotfixes
88205 POS Currency Utility shows 0.00 for all currency conversions after BC 28.4 upgrade
- You can now convert amounts correctly in the POS Currency Utility panel. Previously, opening the panel or entering an amount showed 0.00 for every listed currency, regardless of whether the sale was in the store's local currency or a foreign currency.
- Each currency row now displays the correctly converted, non-zero amount using the current exchange rate.
- Action required by partners:
- None.
88340 POS Currency Utility: Price Check does not accept item number input
- You can now type an item number directly into the Currency Utility panel to look up its price with Price Check. Previously, tapping Price Check left the panel's number pad active, so a typed item number was not accepted — you had to scan the item's barcode instead.
- Price Check now opens a keyboard for entry, so you can type any item number and see its price and description right away.
- Action required by partners:
- None.
85675 Route Leg Process Update
- Scanning a multi-leg boarding card at the POS now reliably sets a leg on the transaction, even when the card does not match a registered leg. If there is no exact match, the system automatically falls back to the first available leg instead of leaving the leg details blank.
- Selecting a leg from the list, and canceling out of the boarding pass panel, also work correctly now.
- Action required by partners:
- None.
87551 Lock NotAvailableLbl to fix Seat Number overflow crash on DF-DOMESTIC (Danish; latent in Swedish, Dutch)
- Details not available.
87602 Flight Redirection panel always fails to save; found 2 more shim procedures with the same missing-exit() bug
- Details not available.
Hardware Station hotfixes
78098 Shift 4 - Commerce engine integration Epic
- Details not available.
80723 Plugin - PrimaVista
- Details not available.
81599 Update Nets Baxi to 1.14.2
- Nets Baxi DLL updated to version 1.14.2.
83845 Adyen Tap2Pay Error - Unable to decode
- Fixed the Adyen Tap2Pay Unable to decode error.
83891 Adyen - set taxfree flag - Pay
- AdyenLocal and AdyenCloud now each have a setting added to toggle the Tax-free Shopping indicator.
84470 Nepting - DateParsing error on Init User Story
- Fixed the device failing to initialize when the stored last-login date could not be parsed.
84485 Nets Baxi - "TerminalOffline" Auth status
- Nets Baxi: PurchaseOffline no longer incorrectly returns AuthorizationStatus Terminal Offline instead of the actual approved/declined outcome.
84984 HWST settings lost when updating
- Fixed an issue where EFT settings would get reset to default when updating from Hardware Station 28.0.2 to a newer version.
85677 NordicID RFID GetSentTags returns empty on API polling
- Fixed Nordic ID Sampo RFID readers returning no tags when tags are retrieved through the GetSentTags API. When an integration polls for RFID tags using the GetSentTags API instead of events, the Nordic ID Sampo reader previously returned an empty result on almost every call, only occasionally returning tags.
- GetSentTags now reads the tags currently on the reader on demand, independent of the background tag stream, so each call reliably returns the tags in the field.
- The event/streaming reading mode is unchanged.
- Customers using the RFID polling API (GetSentTags) with Nordic ID Sampo readers on Hardware Station — for example LS Central versions that must use the API approach rather than events.
86241 In case of network loss, the HWST service gets auto-stopped when connection returns & next transaction is performed
- Fixed a Hardware Station crash triggered by a NordicID RFID reader disconnecting and reconnecting after a network loss.
- On a transient reader disconnect the driver disposed the native reader handle while polling continued against it, corrupting the .NET runtime and terminating the Hardware Station service on the next transaction.
- The driver now keeps the reader handle alive across disconnects, guards every reader operation so it safely no-ops while the reader is unavailable, and allows the connection to restore automatically when the reader reconnects.
- Sites using a NordicID (Sampo) RFID reader with LS Hardware Station; the service no longer stops after a network drop and RFID reading resumes automatically on reconnect.
86583 Release 2.62.0.0
- Details not available.
87584 LSPay 2.63.0.1 User Story
- LSPay 2.63.0.1 release.
88107 — LSPay 2.65.0.0
- Details not available.
78098 Shift 4 - Commerce engine integration Epic
- Details not available.
80723 Plugin - PrimaVista
- Details not available.
81599 Update Nets Baxi to 1.14.2
- Nets Baxi DLL updated to version 1.14.2.
83845 Adyen Tap2Pay Error - Unable to decode
- Fixed the Adyen Tap2Pay Unable to decode error.
83891 Adyen - set taxfree flag - Pay
- AdyenLocal and AdyenCloud now each have a setting added to toggle the Tax-free Shopping indicator.
84470 Nepting - DateParsing error on Init User Story
- Fixed the device failing to initialize when the stored last-login date could not be parsed.
84485 Nets Baxi - "TerminalOffline" Auth status
- Nets Baxi: PurchaseOffline no longer incorrectly returns AuthorizationStatus Terminal Offline instead of the actual approved/declined outcome.
84984 HWST settings lost when updating
- Fixed an issue where EFT settings would get reset to default when updating from Hardware Station 28.0.2 to a newer version.
85677 NordicID RFID GetSentTags returns empty on API polling
- Fixed Nordic ID Sampo RFID readers returning no tags when tags are retrieved through the GetSentTags API. When an integration polls for RFID tags using the GetSentTags API instead of events, the Nordic ID Sampo reader previously returned an empty result on almost every call, only occasionally returning tags.
- GetSentTags now reads the tags currently on the reader on demand, independent of the background tag stream, so each call reliably returns the tags in the field.
- The event/streaming reading mode is unchanged.
- Customers using the RFID polling API (GetSentTags) with Nordic ID Sampo readers on Hardware Station — for example LS Central versions that must use the API approach rather than events.
86241 In case of network loss, the HWST service gets auto-stopped when connection returns & next transaction is performed
- Fixed a Hardware Station crash triggered by a NordicID RFID reader disconnecting and reconnecting after a network loss.
- On a transient reader disconnect the driver disposed the native reader handle while polling continued against it, corrupting the .NET runtime and terminating the Hardware Station service on the next transaction.
- The driver now keeps the reader handle alive across disconnects, guards every reader operation so it safely no-ops while the reader is unavailable, and allows the connection to restore automatically when the reader reconnects.
- Sites using a NordicID (Sampo) RFID reader with LS Hardware Station; the service no longer stops after a network drop and RFID reading resumes automatically on reconnect.
86583 Release 2.62.0.0
- Details not available.
87584 LSPay 2.63.0.1 User Story
- LSPay 2.63.0.1 release.
78098 Shift 4 - Commerce engine integration Epic
- Details not available.
80723 Plugin - PrimaVista
- Details not available.
81599 Update Nets Baxi to 1.14.2
- Nets Baxi DLL updated to version 1.14.2.
83845 Adyen Tap2Pay Error - Unable to decode
- Fixed the Adyen Tap2Pay Unable to decode error.
83891 Adyen - set taxfree flag - Pay
- AdyenLocal and AdyenCloud now each have a setting added to toggle the Tax-free Shopping indicator.
84470 Nepting - DateParsing error on Init User Story
- Fixed the device failing to initialize when the stored last-login date could not be parsed.
84485 Nets Baxi - "TerminalOffline" Auth status
- Nets Baxi: PurchaseOffline no longer incorrectly returns AuthorizationStatus Terminal Offline instead of the actual approved/declined outcome.
84984 HWST settings lost when updating
- Fixed an issue where EFT settings would get reset to default when updating from Hardware Station 28.0.2 to a newer version.
85677 NordicID RFID GetSentTags returns empty on API polling
- Fixed Nordic ID Sampo RFID readers returning no tags when tags are retrieved through the GetSentTags API. When an integration polls for RFID tags using the GetSentTags API instead of events, the Nordic ID Sampo reader previously returned an empty result on almost every call, only occasionally returning tags.
- GetSentTags now reads the tags currently on the reader on demand, independent of the background tag stream, so each call reliably returns the tags in the field.
- The event/streaming reading mode is unchanged.
- Customers using the RFID polling API (GetSentTags) with Nordic ID Sampo readers on Hardware Station — for example LS Central versions that must use the API approach rather than events.
86241 In case of network loss, the HWST service gets auto-stopped when connection returns & next transaction is performed
- Fixed a Hardware Station crash triggered by a NordicID RFID reader disconnecting and reconnecting after a network loss.
- On a transient reader disconnect the driver disposed the native reader handle while polling continued against it, corrupting the .NET runtime and terminating the Hardware Station service on the next transaction.
- The driver now keeps the reader handle alive across disconnects, guards every reader operation so it safely no-ops while the reader is unavailable, and allows the connection to restore automatically when the reader reconnects.
- Sites using a NordicID (Sampo) RFID reader with LS Hardware Station; the service no longer stops after a network drop and RFID reading resumes automatically on reconnect.
86583 Release 2.62.0.0
- Details not available.
78098 Shift 4 - Commerce engine integration Epic
- Details not available.
80723 Plugin - PrimaVista
- Details not available.
81599 Update Nets Baxi to 1.14.2
- Nets Baxi DLL updated to version 1.14.2.
83845 Adyen Tap2Pay Error - Unable to decode
- Fixed the Adyen Tap2Pay Unable to decode error.
83891 Adyen - set taxfree flag - Pay
- AdyenLocal and AdyenCloud now each have a setting added to toggle the Tax-free Shopping indicator.
84470 Nepting - DateParsing error on Init User Story
- Fixed the device failing to initialize when the stored last-login date could not be parsed.
84485 Nets Baxi - "TerminalOffline" Auth status
- Nets Baxi: PurchaseOffline no longer incorrectly returns AuthorizationStatus Terminal Offline instead of the actual approved/declined outcome.
84984 HWST settings lost when updating
- Fixed an issue where EFT settings would get reset to default when updating from Hardware Station 28.0.2 to a newer version.
85677 NordicID RFID GetSentTags returns empty on API polling
- Fixed Nordic ID Sampo RFID readers returning no tags when tags are retrieved through the GetSentTags API. When an integration polls for RFID tags using the GetSentTags API instead of events, the Nordic ID Sampo reader previously returned an empty result on almost every call, only occasionally returning tags.
- GetSentTags now reads the tags currently on the reader on demand, independent of the background tag stream, so each call reliably returns the tags in the field.
- The event/streaming reading mode is unchanged.
- Customers using the RFID polling API (GetSentTags) with Nordic ID Sampo readers on Hardware Station — for example LS Central versions that must use the API approach rather than events.
86583 Release 2.62.0.0
- Details not available.
78098 Shift 4 - Commerce engine integration Epic
- Details not available.
80723 Plugin - PrimaVista
- Details not available.
81599 Update Nets Baxi to 1.14.2
- Nets Baxi DLL updated to version 1.14.2.
83845 Adyen Tap2Pay Error - Unable to decode
- Fixed the Adyen Tap2Pay Unable to decode error.
83891 Adyen - set taxfree flag - Pay
- AdyenLocal and AdyenCloud now each have a setting added to toggle the Tax-free Shopping indicator.
83909 Adyen taxfree.indicator flag
- Details not available.
84470 Nepting - DateParsing error on Init User Story
- Fixed the device failing to initialize when the stored last-login date could not be parsed.
84485 Nets Baxi - "TerminalOffline" Auth status
- Nets Baxi: PurchaseOffline no longer incorrectly returns AuthorizationStatus Terminal Offline instead of the actual approved/declined outcome.
84984 HWST settings lost when updating
- Fixed an issue where EFT settings would get reset to default when updating from Hardware Station 28.0.2 to a newer version.
85677 NordicID RFID GetSentTags returns empty on API polling
- Fixed Nordic ID Sampo RFID readers returning no tags when tags are retrieved through the GetSentTags API. When an integration polls for RFID tags using the GetSentTags API instead of events, the Nordic ID Sampo reader previously returned an empty result on almost every call, only occasionally returning tags.
- GetSentTags now reads the tags currently on the reader on demand, independent of the background tag stream, so each call reliably returns the tags in the field.
- The event/streaming reading mode is unchanged.
- Customers using the RFID polling API (GetSentTags) with Nordic ID Sampo readers on Hardware Station — for example LS Central versions that must use the API approach rather than events.
78098 Shift 4 - Commerce engine integration Epic
- Details not available.
81599 Update Nets Baxi to 1.14.2 User Story
- Nets Baxi DLL updated to version 1.14.2.
83845 Adyen Tap2Pay Error - Unable to decode
- Fixed the Adyen Tap2Pay "Unable to decode" error.
83891 Adyen - set taxfree flag - Pay User Story
- AdyenLocal and AdyenCloud now each have a setting added to toggle the Tax-free Shopping indicator.
83909 Adyen taxfree.indicator flag
- Details not available.
84470 Nepting - DateParsing error on Init User Story
- Fixed the device failing to initialize when the stored last-login date could not be parsed.
84485 Nets Baxi - "TerminalOffline" Auth status
- Nets Baxi: PurchaseOffline no longer incorrectly returns AuthorizationStatus "Terminal Offline" instead of the actual approved/declined outcome.
84984 HWST settings lost when updating
- Fixed an issue where EFT settings would get reset to default when updating from Hardware Station 28.0.2 to a newer version.
Hotels hotfixes
87261 Folio not created when confirmation email fails during reservation Confirm
- There was an issue where an error sending an automated reservation email could block the update. If the email fails to send, you now see a message instead of the process stopping.
- Action required by partners:
- None.
- Known Issue: When a group reservation is created starting from an individual reservation that is already Confirmed, the new group master is created directly in Confirmed status. Because the status change itself is skipped, the automatic confirmation email is not triggered for the group. A fix for this scenario is being tracked separately.
87018 Issue of Discount Entry not updated to Hotel Detail Revenue Entry after Charge to Room
- Discounts applied at the POS for a room charge no longer disappear when invoice routing runs on a reservation without a Routing Rule. Previously, something as ordinary as updating a guest's name could silently clear the discount and leave the guest billed the full price.
- Action required by partners:
- None. The fix applies automatically after upgrade.
- Optional: if you run LS Hotel without Routing Rules, you may want to spot-check recent Detailed Revenue Entries for discounts that were cleared before this fix - look for a line where Discount Applied is None but the linked POS receipt shows a discount.
84664 Hotel Night Audit does not consume deposit in accrual accounting
- Night Audit now consumes deposits correctly on properties that use accrual accounting. Upgrading backfills any existing deposits that were missing a payer, so they're no longer skipped. Several related issues have also been fixed: a deposit collected for one invoice type could pay off a charge under a different invoice type; assigning a customer to a reservation could overwrite a folio's payer even though it already held a deposit; and on reservations with deposits collected under more than one invoice type, a payer's deposit could occasionally be consumed twice by Night Audit, or not be fully released after a deposit refund was reversed.
- Action required by partners:
- None beyond the standard upgrade. After installing this version, run the LS Hotel upgrade as usual — it backfills any deposit entries with a missing payer automatically.
85122 Keep current rate does not work when rate lines were changed outside of upgrade page
- If you manually change a room's Unit Price on the Invoice Management page or through Room Rate Change, and later move the reservation with Keep current rates turned on, the Rate Change page now shows the price you actually set instead of the calculated rate. This is especially noticeable on rate codes billed in a foreign currency.
- Action required by partners:
- None.
86988 LS Hotel BEC - Overbooking in TOPAS Production for SiteMinder Hotel reservation integration
- Reservations from a channel manager that fall within a hotel's configured oversell allowance for that channel are now correctly accepted, instead of being rejected even though the channel was told the room was available.
- Overbooking rejections from a channel manager also now report the correct no availability error code (10) instead of the generic error code (1), so the channel knows to resync availability rather than retry.
- Action required by partners:
- None.
87264 Suppress "Nothing was posted for property %1" message on checkout-triggered night audit
- Checking out a guest on a property that uses Accrual Accounting or Checkout Accounting no longer triggers a confusing night audit message. Previously, an automatic night audit message could pop up at checkout even when everything posted correctly, making it look like checkout had failed. These messages now only appear when night audit is run manually from the Hotel Manual Job page.
- Front desk and POS staff can trust that checkout completed successfully without stopping to interpret an unexpected system message.
- Affected components:
- LS Hotels Night Audit Management codeunit (checkout-triggered posting)
- Integration touch points:
- None
- Configuration / setup changes:
- None
- Breaking changes / upgrade impact:
- None — manual night audit runs from the Hotel Manual Job page are unaffected
- Action required by partners:
- None.
85688 Keep current rates now preserves the local-currency amount on foreign-currency rate codes
- Previously, when a reservation used a rate code denominated in a currency other than the property local currency (for example reservations received through the Booking Engine Connector), changing the room type with the Keep current rates option enabled kept the rate in the rate-code currency but silently recalculated the amount in the property local currency (LCY) from the target room type standard rates.
- As a result the posted and invoiced LCY amount drifted away from the agreed rate, and the individual nights of a stay could even end up with different amounts.
- This is now fixed: when Keep current rates, is used, the LCY amount is preserved exactly, consistent with the kept rate-code-currency amount. Room-type changes made without Keep current rates continue to reprice to the new room type standard rate as before.
86750 Channex Modify on group reservation fails with "The record in Activity Group Member already exists"
- Fixed: Channel manager modify on a group reservation failed
- A ReservationUpdate from a channel manager (Channex) against a reservation belonging to a group failed with The record in Activity Group Member already exists. Guest sequence numbers were generated per reservation, but the sequence is unique per group — so adding a guest to one room collided with a guest in another room of the same group.
- Sequence numbers now continue the group's numbering.
- Fixed: Adults and Children reset to 0 after a group reservation update
- After a channel manager modify, the Adults and Children counts on the affected group reservation line showed 0, on sub-reservation list on group reservation page, until the guest list was opened and closed.
- Moving a reservation's guest list into a group rebuilds it by deleting and re-inserting the rows; each delete recalculated the reservation's guest counts, leaving them at 0 once the list was momentarily empty, and the re-insert did not restore them.
- The counts are now recalculated once after the rebuild completes.
- Fixed: Hotel Group Reservation page closed with an error
- The page could close with The field 'Adults' on table 'Hotel Reservation' has changed in the database between initial and JIT load when reservation data changed while the page was open.
- An unused field read that forced an unnecessary database reload on every row was removed.
86123 "Green" pay button not always usable on POS Reservation View
- Details not available.
86079 Tax Calculation issue in Balance/Folio on POS
- Reservation balances no longer omit tax on properties whose rates exclude tax
- On properties where Hotel Setup Rate Includes Tax is disabled, reservation and payer balances were calculated from the tax-exclusive charge total, while deposits and payments are always recorded tax-inclusive.
- The POS Folios panel therefore showed a payer balance that was short by exactly the tax amount, which appeared as a negative balance equal to the tax once a deposit or payment covered the charges.
- Balances are now always calculated tax-inclusive, so they compare like for like against the money actually collected. Displayed charge totals are unaffected and keep the tax basis configured for the property. Properties where Rate Includes Tax is enabled behave exactly as before.
- On properties where Hotel Setup Rate Includes Tax is disabled, reservation and payer balances were calculated from the tax-exclusive charge total, while deposits and payments are always recorded tax-inclusive.
- Impact on existing data
- No data upgrade runs - balances are recalculated on the fly. On affected properties, reservation Payment Status is corrected the next time it is evaluated: reservations that are genuinely fully paid change from Partially Paid to Fully Paid, and reservations where only the tax-exclusive amount was collected change from Fully Paid to Partially Paid. This also changes which reservations appear in the Open Balance lists and the Back Office cues.
- Action required for extensions and integrations
- The reservation balance is now tax-inclusive everywhere it is exposed: the ReservationSummary and ReservationBalance integration procedures, and the balance field in the JSON returned by the ReservationGetByNo web service operation.
- On properties where Rate Includes Tax is disabled, the value returned by these changes, because it was previously calculated from a tax-exclusive charge total while the deposits and payments subtracted from it were always tax-inclusive. The previous value was not a valid figure to build on.
- If your extension or integration compensated for this - for example by adding the tax back to the returned balance, or by recalculating the balance from the charge lines - that adjustment must be removed. Leaving it in place will apply the correction twice and overstate the amount due by the tax.
86124 Routing Rule Descriptions no longer populating on Folios
- Fixed an issue where the folio descriptions defined on a routing rule's folio templates were not applied to the folios created for a reservation. Folios were labelled with the payer name and invoice type instead of the configured description.
- Folios created from a routing rule now show the folio description configured on the folio template, with the #GuestName, #GroupName and #CompanyName parameters resolved.
- Changing a folio description on a routing rule now also updates the description of folios that already exist on reservations.
- Folio descriptions that use more than one parameter now resolve all of them. Previously only the last parameter was applied.
- The Reset template description action no longer clears the description when it is used on a folio that does not come from a folio template. It now restores the default payer and invoice type description.
- Action required by partners:
- Folios created before this update keep their previous description. Use the Reset template description action on the folio to apply the configured folio template description.
86112 Upsell and upgrade indicators on hotel reservations
- Fixed: The upgrade indicator on a reservation now turns on when you upgrade a room type.
- Fixed: the upsell indicator only turns on when the new room type actually costs more — a downgrade no longer gets marked as an upsell.
- Fixed: Changing a room type again now updates the upgrade and upsell indicators to match your latest change, instead of keeping an outdated indicator from an earlier change.
- Action required by partners:
- None — the fix applies automatically once you update.
83678 Service charge on a discounted POS line is calculated inconsistently
- When you discount an item that carries a service charge (added on top of the price), the service charge now reflects the discount everywhere — on the POS line and in the reservation's Detailed Revenue Entries.
- Previously the service charge could ignore the discount at the POS (charging the full amount) or apply it twice in the back office (charging too little).
- Action required:
- None — the correct amount is calculated automatically.
86247 Change Ninja Range Description
- Internal development change only — no partner-facing impact.
- The AL Object ID Ninja object range description was updated.
86125 ConsumedByDRE() filters the wrong field - returns 0 deposit consumed on group/paymaster bookings - and other export data tools
- Room and other charges billed to another reservation in a paymaster or group booking now show the correct deposit-consumed amount, instead of incorrectly showing zero.
- Exporting a hotel reservation to Excel now also includes a Deposit Consumed sheet and a Payment Entry Log sheet, plus new currency columns (including Rate Code Currency) on the Detailed Revenue Entry and Detailed Revenue Entry Log sheets.
- Action required by partners:
- None
85990 Group Reservation: manual Unit Price edits lost on Confirm Group
- Manual room prices now survive Confirm Group.
- When you set the Unit Price yourself on a Price/Availability line of a new group reservation, the confirmed reservations and the group totals keep your price instead of reverting to the rate code's published price.
- Any rate discount on the line still applies on top of the price you enter, so the Unit Price you type is the price before discount. For a rate code in a foreign currency, the amount in the rate code's currency is now filled in as well, so Rate Change shows the right figures.
- Action required by partners:
- None.
85401 Missing Rate Code Currency on DRE lines for earlier BEC Reservations affects to upgrade calculations
- Older reservations created through the Booking Engine Connector (BEC) in a foreign currency now show correct amounts. An upgrade step backfills the missing rate code currency on their detailed revenue entry lines, so factbox totals, extra charges, and rate changes made through room type upgrades calculate correctly again.
- Action required by partners: None — the fix applies automatically on upgrade.
84467 Unable to update Guest Name and Guest List
- Rename a guest on a reservation and the new name now sticks. When you change the guest name and confirm the prompt, the reservation, the guest list, and the guest's member contact all update to the new name — no more re-selecting the guest to force it, and no "information on the page is not up-to-date" error.
- Action required by partners: None — the fix applies automatically on upgrade.
84096 Keep current rates does not preserve the price on date changes, room-type changes, or upgrades
- Set Keep current rates on the Rate Change page and the price you already have sticks — no matter how you change the reservation. When you move the stay to new dates, change the room type, or upgrade to a higher room type, each night keeps its current rate instead of jumping to the standard rate for the new dates or room. If you manually set a price on a night you add, that price is kept after you confirm.
- Action required by partners: None. Apply the hotfix. The Keep current rates option works as before — no reconfiguration needed.
83958 No. of persons in Room type setup is not taken into account when adding guests to a room from v27.1 to 28.1
- The Guest List now evaluates two Room Type capacity caps when adding or modifying guests in the back office:
- Total cap: Adults + Children + Infants must not exceed No. of Persons. No. of Extra beds is not part of this calculation.
- Children cap: Children + Infants must not exceed No. of Children.
85121 Checking in multiple reservations errors out on Room assignment
- You can now check in several reservations together when rooms are assigned manually. Before, selecting two or more arrivals on the Hotel Front Desk and checking them in failed with an error the moment the room picker opened for the second reservation, so staff had to check guests in one at a time. Now every reservation in the selection checks in, and you pick each room as usual.
- Action required by partners: None — the fix applies automatically once you update.
84284 Blank Accounting: When posting an invoice with deposit the deposit is not appearing in Deposit Consumed table
- On a property using Blank Accounting, when you post an invoice covered by a reservation deposit, the deposit now appears in the Deposit Consumed list. Before, it was applied to the invoice but never recorded as consumed, so it still looked refundable — and refunding it could push the reservation balance negative.
- Action required by partners: None — the fix applies automatically once installed.
84178 Group reservation invoice posts wrong revenue lines and inflates sub-reservation balances (filter by Paying Res. No., not Group Res. No.)
- When you post an invoice on a group reservation, it now includes only the charges routed to that group. Charges that belong to the individual reservations under the group stay on their own folios, so each reservation keeps its correct balance and can still be settled separately. Additionally, confirmation dialog for creating invoice has been updated to remark when user is creating an invoice to default hotel customer.
- Action required by partners: None.
83694 Hotel API - response consistency and detail improvements (PaymentsGetByNo naming, optional ReservationSave payment, activity/extra lineNo)
- We've made the Hotel API easier and more predictable to work with. If you integrate with it, here's what changed and how to adapt:
- Consistent name for deposits and payments — the deposit/payment collection is now always returned under payments. Previously it came back as payments when a booking had no deposits but as reservations when it did. Update any code that read the reservations key in that response to use payments instead.
- Payment is now optional when saving a booking — to save or update a booking without a payment, either leave out the payment field entirely or set it to null. Both are accepted, the booking saves normally, and no empty deposit is created. Send the payment object as before whenever a payment applies.
- More detail when looking up a booking — the booking response now exposes the line numbers you need to manage activities and extras: activityDetails now includes a lineNo field; a new reservationExtraDetails array is returned at the booking level listing each reservation extra with its lineNo, item number, description, quantity, and unit price.
- Action required by partners: Update any integration that reads the deposit/payment collection from PaymentsGetByNo under the reservations key — read payments instead. No other action required.
78829 Primary Guest created by webservice does not fill "Guest Type" field on "Member Contact" page
- Book a hotel guest through a web service and, if they're not already in your member database, LS Central now fills in their Guest Type automatically. You no longer have to set it by hand before you can close the guest's Member Contact page.
- Action required by partners: None.
85119 Keep current rates sets the new rate to 0 on a BEC-created reservation (instead of keeping the existing rate)
- Keep current rates now keeps the existing rate on reservations created through the Booking Engine. Before, turning it on zeroed the nightly rate on these reservations; now each night keeps its rate, just like reservations you create in the back office.
- This version also fixes two related issues on the Rate Change and Upgrade pages, on rate codes that use a foreign currency:
- Keeps a single night's room type change when you turn on Keep current rates, instead of reverting it.
- Shows the new rate in the rate code currency after a room type change, instead of converting it to the local currency.
84357 LS Hotels: Access to Invoke UpdateAvailability
- Three procedures were added to the public integration codeunit LSCHT Hotel Integration (10033538) so external extensions can force a recalculation of the Hotel Room Availability data before reading it (for example via GetRoomAvailabilityList). Until now the recalculation could only be triggered from the UI, so GetRoomAvailabilityList could return stale availability.
- UpdateAvailFromHotelReservation(HotelReservation; Trace) - refreshes availability for exactly the dates and room type of a specific reservation record.
- UpdateAvailableRoomsPerDate(RoomType; Property; Date; Trace) - refreshes availability for one specific date, room type, and property.
- CreateAvailabilityData(FromDate; ToDate; Property; RoomType) - refreshes a whole date range in one call (leave RoomType empty to refresh all room types of the property), creating any missing availability rows in the range.
- All three recalculate and store Available / Blocked / Total Rooms and raise the OnAfterHotelRoomAvailabilitySave integration event (channel-management sync).
83665 POS check-out triggers night-audit errors across all properties and doesn't auto-update reservation status
- When you check a guest out at the POS, the night audit now runs only for that guest's property. You no longer see "Nothing was posted for property..." messages for unrelated properties, and you won't hit a "No. Series" error when another property has no Night Audit number series set up. The reservation status also updates to checked out on its own, so you don't have to select Refresh.
82678 Auto-allocating for group reservations changes
- When you allocate rooms to a group, you're no longer asked how to allocate if none of the group's rooms are assigned yet — the rooms are simply allocated. You're prompted to choose only when some rooms are already assigned and there's a real decision to make. The two choices are also reworded so it's obvious what each one does.
- No prompt appears when the group has no rooms allocated yet — rooms are allocated straight away.
- The prompt appears only when at least one room is already allocated, offering "Allocate rooms to unallocated reservations only" and "Allocate rooms to all reservations (reallocate existing)".
- Allocating a group from the Tape Chart never shows the prompt.
81300 On changing "Customer No." in Hotel Group Res does not update Customer Invoice Details correctly
- Change or clear the customer on a hotel group reservation and its folios now keep the right payer automatically. Set a customer and the folios bill that customer; clear the customer and they bill the reservation's guest instead. Before, the invoice wouldn't post — it failed with a "customer does not allow multiple posting groups" error — and you had to run Reset Invoice Fields by hand first. This works whether you change the customer from the Group Reservation Card or from Invoice Management.
84971 Room rate recalculated too low (included rate-attribute amount deducted) for reservations created through the API
- Fixed an issue where the room rate on reservations created or updated through the LS Hotels web service (Web and Channel Management) was recalculated too low.
- When the rate code carried rate attributes marked as Included in Rate, the attribute amount was deducted twice from the room rate.
- The room rate now reflects a single deduction, and the reservation total matches the price sent by the API.
84187 New Contact Created for Reservation Is Incorrectly Flagged as a Child
- Details not available.
83995 Hotel POS charge-to-room does not pass the correct unit of measure to the revenue entry
- Items you charge to a guest's room now keep their unit of measure.
- When you charge a POS item to a room, the resulting revenue entry now shows the unit of measure you selected, instead of leaving it blank.
- Action required by partners:
- None. The correction applies automatically once you're on a version that includes it.
- Not included in this fix:
- This update doesn't change the Invalid Unit of Measure warning that can appear when you change a unit of measure at the POS. That warning doesn't block posting — you can dismiss it and post the charge — and we're addressing it in a separate issue.
83970 Blank Accounting: Customer balance shows negative amount when invoice is fully covered by deposit
- Post an invoice that's fully covered by a deposit collected at the POS and the customer balance now settles at zero.
- Before, Blank Accounting showed a negative balance — for example, -600 — even though nothing was outstanding.
- A partly covered invoice still leaves the correct outstanding amount.
- Action required by partners:
- None. Any earlier workaround for the negative balance is no longer needed.
83128 Changing price on one DRE line changes applies same change for all DRE lines if adding a routing rule to the reservation
- Manual room-rate prices on a reservation now stay put.
- Previously, changing a routing rule — or switching the reservation's customer or payer — could reset every included-in-rate line back to the standard rate, flattening a multi-night stay to a single price and overwriting any price you'd entered by hand.
- Routing changes now only re-route charges, and changing the customer or payer keeps each night's own rate along with any manual prices you've set.
- Action required by partners:
- None. The fix applies automatically on upgrade — per-night rates and manual price changes are preserved from then on, with no setup or configuration changes.
84096 Keep current rates does not preserve the price on date changes, room-type changes, or upgrades
- Set Keep current rates on the Rate Change page and the price you already have sticks — no matter how you change the reservation.
- When you move the stay to new dates, change the room type, or upgrade to a higher room type, each night keeps its current rate instead of jumping to the standard rate for the new dates or room.
- If you manually set a price on a night you add, that price is kept after you confirm.
- Action required by partners:
- None. Apply the hotfix. The Keep current rates option works as before — no reconfiguration needed.
83879 Balance Recalculation Incorrect After Moving Charges Between Reservations
- When you move a charge from one reservation to another within a group and then take payment, the charge now stays on the reservation you moved it to. Balances on both reservations stay correct, so you no longer see the moved charge lingering on the original reservation, or a negative balance on the reservation you moved it to.
- Action required by partners:
- None.
83656 Charge-to-room fails for service-charge items from outlet POS ('Property[] not found in Hotel Setup'); add Select All to refund lookup
- Charge an item that carries a service charge profile to a guest's room directly from an outlet POS, such as a restaurant. Selling the item, sending it to the kitchen, and charging the table to the room now posts the item and its service charges to the reservation.
- Previously this failed with Property[] not found in 'Hotel Setup' and nothing was posted.
- The POS item-refund lookup also gets a Select all command that marks every line at once — the inverse of the existing Reset all.
- Action required by partners:
- None. To use the fix, make sure outlet stores have their Service Charge Location configured in Hotel Setup as usual.
83151 ReservationExtraSave API - Updating an existing extra (lineNo ≠ 0) fails with "record is not up-to-date"
- Updating an existing reservation extra through the hotel web API now works.
- Previously, re-sending an extra with its assigned line number to change a value — such as quantity, unit price, or discount — failed with a record is not up-to-date error, and the change was lost.
- The line now updates in place, with no duplicate line, and the linked revenue stays in sync.
- Action required by partners:
- None, beyond applying the 27.1 hotfix.
83150 ReservationExtraSave API - postingPattern=3 (Reservation) silently persists nothing
- Saving a reservation extra with the Reservation posting pattern through the hotel web API now works.
- Previously the call reported success but saved nothing — no extra line and no revenue entry were created.
- The extra and its revenue entry are now created.
- You can also send an optional consumption date to set when the extra posts; omit it and it defaults to the reservation arrival date (matching the back office), and any date you supply must fall within the reservation window.
- Posting patterns the API cannot handle now return a clear error instead of silently doing nothing.
- Action required by partners:
- None. Optionally, send the optional consumptionDate field on a Reservation-pattern extra to control its posting date; if you omit it, the reservation arrival date is used.
Hotels BEC hotfixes
86988 Overbooking in TOPAS Production for SiteMinder Hotel reservation integration
- Reservations from a channel manager that fall within a hotel's configured oversell allowance for that channel are now correctly accepted, instead of being rejected even though the channel was told the room was available.
- Overbooking rejections from a channel manager also now report the correct no availability error code (10) instead of the generic error code (1), so the channel knows to resync availability rather than retry.
- Action required by partners
- None.
Localization hotfixes
87043 Incorrect Sales Tax handling on Customer Order pickup
- Details not available.
87047 Customer Order linked Sales Order Tax G/L lines missing Customer Order ID
- Sales tax G/L entries created when you post a sales order that originated from a customer order now carry the customer order number, just like every other G/L entry from that posting.
87045 Tax Not Populating on First transaction after logging in (High priority)
- Sales tax now calculates correctly on the first transaction after you log in at a POS terminal — including quick-service and drive-through setups.
- Before this fix, the first sale after logging in could post with no sales tax; voiding it and ringing it up again always worked.
87986 Tax not calculated on Customer Orders when Tax Area Code arrives pre-populated via web service
- Details not available.
86802 LSCNA - Bug related to NA Statement Posting when there are returns across Tax Areas
- Details not available.
86800 Customer Order Tax and Posting Issue in Canadian Buy in Store, Ship to Customer Flow
- Details not available.
86686 Shopify BC connector for LS Central - Tax Sync Issues in NA Shopify Store
- Details not available.
86801 LSCNA - Bug related to NA Statement Posting when there are returns across Tax Areas
- Details not available.
86264 German Language: Fix incorrect POS Action Relation translations (Funk. Steckbrief)
- A German translation error was fixed: POS actions of type Func. Profile showed as Funk. Steckbrief (CV/resume) instead of Funk. Profil. You now see the correct term wherever this action type appears in the German interface.
85634 LSCNA - POS Sales Tax not posted to Sales Tax in G/L
- Sales tax on POS transactions now posts to the correct Tax Posting Setup account, even when a single statement includes sales tax for more than one jurisdiction
- For example, state and county tax on the same sale. Previously, some of these tax lines were silently skipped during posting and landed in the rounding account instead.
85634 LSCNA - POS Sales Tax not posted to Sales Tax in G/L
- Sales tax on POS transactions now posts to the correct Tax Posting Setup account, even when a single statement includes sales tax for more than one jurisdiction — for example, state and county tax on the same sale. Previously, some of these tax lines were silently skipped during posting and landed in the rounding account instead.
85326 Modifying Customer Order and Adding Item Results in $0.00 Balance
- Reopening a Customer Order that already has a full deposit and adding another item no longer shows a $0.00 balance when you go to tender. The POS now recalculates the balance right away, so it reflects the price of the new item.
86098 POS discounts are posted to wrong G/L account for ALL Canadian customers
- POS discounts now post to the correct G/L account for line discounts, total discounts, and Mix & Match offers on Sales Tax stores. Previously, every discount type posted to the same customer discount account, ignoring the separate accounts set up in Gen. Posting Setup for each offer type.
- Action required by partners:
- Correct any G/L entries posted to the wrong discount account before this fix was applied. Available across LS Central 27.0, 27.1, 28.0, and the current release.
85634 LSCNA - POS Sales Tax not posted to Sales Tax in G/L
- Sales tax on POS transactions now posts to the correct Tax Posting Setup account, even when a single statement includes sales tax for more than one jurisdiction — for example, state and county tax on the same sale. Previously, some of these tax lines were silently skipped during posting and landed in the rounding account instead.
85326 Modifying Customer Order and Adding Item Results in $0.00 Balance
- Reopening a Customer Order that already has a full deposit and adding another item no longer shows a $0.00 balance when you go to tender. The POS now recalculates the balance right away, so it reflects the price of the new item.
86095 Fix German Language for LS Central
- You will see correct, consistent German wording across LS Central again. A translation update earlier this year introduced inconsistent and sometimes wrong terms — for example, Statement showed up as three different German words on the same page — making some functions and pages hard to find. We've restored the accurate, professional German translations and added correct wording for the terms introduced in version 28.1.
85369 LSTS-45362-LSCNA-EBT Balance Inquiry sent as GIFT (INVALID PAYMENT TYPE) - LS Pay / Verifone Point
- EBT balance inquiries at the POS no longer fail with an invalid payment type error. The balance inquiry now uses the correct request method again, so staff and customers get the SNAP EBT balance without interruption.
85325 LSC NA App incorrectly handles Tax Area infocodes
- Selecting a Tax Area infocode subcode at the POS now sets the correct tax area on the transaction. Previously it applied the infocode's own code instead of the subcode's trigger code, which could assign a tax area that doesn't exist.
84696 LSC NA Balance on Cancelled Customer Order Shows Penny Rounding Amount Instead of Full Payment Amount
- Cancelling a fully paid Customer Order that had a rounding adjustment now refunds the full amount collected, not just the penny-rounding remainder. Both the POS receipt and the payment ledger now show the correct refund.
85218 Follow-up to LSTS-46094: German Translation wrong
- This release corrects a display issue in the German (de-DE) language where some menu, action, and option captions showed extra "amp;"-style text instead of rendering cleanly. No functional behavior or data is affected — only the caption text itself has been corrected.
85325 LSC NA App incorrectly handles Tax Area infocodes
- Not needed for end customer. Corrected how the North America localization app resolves Tax Area Code infocodes: the OnProcessOtherInfoTrigger event handler now applies the info subcode's own code — matching how VAT Bus. Posting Group infocodes are already handled — instead of the parent infocode's code, so selecting a subcode no longer assigns a non-existent tax area that forced the transaction to be voided.
85369 LSTS-45362-LSCNA-EBT Balance Inquiry sent as GIFT (INVALID PAYMENT TYPE) - LS Pay / Verifone Point
- EBT balance inquiries at the POS no longer fail with an invalid payment type error. The balance inquiry now uses the correct request method again, so staff and customers get the SNAP EBT balance without interruption.
84696 Balance on Cancelled Customer Order Shows Penny Rounding Amount Instead of Full Payment Amount
- Cancelling a fully paid Customer Order that had a rounding adjustment now refunds the full amount collected, not just the penny-rounding remainder. Both the POS receipt and the payment ledger now show the correct refund.
84776 GST print issue
- Printed and posted receipts now show the right GST percentage for every tax rate. Previously, rates of 10% or higher — like 12%, 18%, or 28% — printed as asterisks instead of the actual percentage.
83842 LSC NO - EOD Norwegian Fiscalisation - Open Drawer
- You can now finish your end of day tender declaration and count the cash drawer without hitting the "drawer is open" block. That block still protects regular sales — it just steps aside for end of day, then switches back on right after you post the declaration if the drawer's still open.
82863 LSC DE Local functionality - Fiskaly problem in offline mode
- If your internet connection drops while Fiskaly is set to automatic signing, checkout no longer gets stuck. The transaction posts, the receipt prints, and it's sent to head office as soon as the store's back online.
84193 LSC NA - EBT Balance Inquiry sent as GIFT (INVALID PAYMENT TYPE) – LS Pay / Verifone Point
- EBT balance inquiries at the POS now reach the payment terminal with the correct EBT tender type, so cashiers can check a SNAP EBT cardholder’s remaining balance without the terminal rejecting the request.
82863 LSC DE Local functionality - Fiskaly problem in offline mode
- If your internet connection drops while Fiskaly is set to automatic signing, checkout no longer gets stuck. The transaction posts, the receipt prints, and it's sent to head office as soon as the store's back online.
83842 LSC NO - EOD Norwegian Fiscalisation - Open Drawer
- You can now finish your end of day tender declaration and count the cash drawer without hitting the "drawer is open" block. That block still protects regular sales — it just steps aside for end of day, then switches back on right after you post the declaration if the drawer's still open.
84776 GST print issue
- Printed and posted receipts now show the right GST percentage for every tax rate. Previously, rates of 10% or higher — like 12%, 18%, or 28% — printed as asterisks instead of the actual percentage.
83833 LSC de-DE - Incorrect translation on POS Terminal card
- The German translation of "Terminal" showed up as Klemme (an electrical clamp) instead of Kasse (cash register) in several places, including the POS Terminal card. It now reads correctly everywhere.
84603 German (de-DE) translation regression in LS Central - unreviewed TM auto-fill shipped as final (LSTS-46094)
- Corrected German (de-DE) text across LS Central. A March 2026 translation pipeline error had wiped the German language file and replaced it with unreviewed machine translations, so a lot of labels showed the wrong word sense — for example, Pickups as Tonabnehmer (guitar pickup), Outstanding as Herausragend (excellent), No. as Nein., and Store as StErz. Those are now fixed, and thousands of previously reviewed translations lost in the incident have been restored.
Pharmacies hotfixes
87221 Check on quantity in dispensation has been removed
- A check for zero quantity on dispense lines was added when confirming a dispense line.
-
Confirming a dispense order process was improved.
-
A new report found dispense orders that were confirmed with empty lines and can send them back to Draft, so staff can add the missing quantities and dispense them again.
81494 In the Technical Control view, the FMD details are incomplete; the expiry date and the status fields are not shown
- In the Technical Control view, the FMD information is now complete.
83925 Verify Child Use Cases
- Parent list page in Customer Info panel and Delegate panel now display the custody type for each parental responsibility entry.
86780 Wrong "begrunnelseForTilgang" sent in Eik common used classes description
- POA usage documentation (payment report) now sends the correct reason for access to EIK — Informasjon til fullmakthaver (4) instead of Reseptekspedering (1).
86781 Parental responsibility - over/under 16 yo
- Updated Parental Responsibility visibility based on the customer and child’s age, ensuring relevant parents are displayed only where applicable in Customer Information and the Power of Attorney window.
84071 Not possible to dispense as LS Central uses the same dispensation ID twice on error from Hekla
- Posting of dispensation batch works even though last posting ended with an error causing a rollback resetting the No series for Dispensation ID to the last successful number - 1.
86168 EIK Delegate Request not sent when identifying customer before Final Control
- Details not available.
87997 Pharmacy Dispense: Missing customerID in reimbursement
- There was an insurance request from a dose dispensing order that was preventing Icelandic Health Insurance from identify the customer and calculate the reimbursement. This was fixed.
83739 The ReseptutleveringslisteID (PrescriptionDispensingListID) is not mapped to the reimbursement panel in the GUI, and the field is also not editable on the BackOffice page
- The Beregn ID field in the reimbursement panel must be mapped with the value from Prescription Order Line.
84265 H-prescription in transitional arrangement give DoNet Error in Beregn
- DotNet error was fixed, for H-Prescription in transitional arrangement in Beregn.
86779 Parental responsibility is not shown
- PE should be able to see a list of all persons the customer has as children AND if they have parental responsibility or not.
86785 If PE does not add start date, then start date should be todays date
- Power of Attorney: When a local delegate is added without a start date, the start date now automatically defaults to today's date.
86786 POA Not able to choose POA in BO
- Expired POA should not block active POA.
86789 Auto-generic exchange: Not choosing within equivalent pack size (ref NPF-81)
- A new rule for the Auto Select delivered item was added:
- For prescriptions of type Merkevare, Virkestoff and Merkevare/Virkestoff, the item selected automatically on download is now restricted to pack sizes whose total quantity falls within the quantity tolerance configured on the prescription setup profile, calculated from the quantity prescribed on the prescription (Mengde).
- If no pack size falls inside the tolerance, no item is selected automatically. The pharmacy employee opens the substitution window and chooses the pack manually. The substitution window itself is unchanged and continues to list every pack size available for the prescribed active ingredient.
- Setup fields this feature relies on, Prescription Setup Profile, Substitution section:
- Qty, Range Type;
- Narcotics Qty, Range Type;
- Qty. Filter Range;
- Qty. Filter in Auto-Substitution.
86803 Fields reversed when using Dose text from previous delivery
- Fields reversed when using dose text from previous delivery.
86992 POA issue with parents that have several children
- There was an issue where, for a parent with multiple children, selecting a different child via Power of Attorney (Delegate) kept the previously selected child as the prescription customer instead of the newly selected one. This was fixed.
87022 Wrong translation in Power of Attorney
- In Power of Attorney window, the following translation were fixed:
- From EIK - Helsenorge
- Parental Responsibility - Foreldreansvar.
82985 Bug when getting Customer Order on POS with Prescription Order
- Details not available.
84457 BC27 PE needs to manually input cursor in scanning field to be able to start scanning User Story
- Cursor placement, along with unwanted textbox content deletion, was corrected when scanning.
83192 NO POA Stabilization
- Details not available.
84122 Add link to Fullmakts document to PDD if exists
- Pharmacy staff can now view a customer's delegate (Fullmaktsdokumentasjon) usage directly from the PDD Details page via a new Delegate Usage action. Selecting it retrieves the current document's power-of-attorney usage from EIK and opens the Delegate Usage List, showing the delegate's ID and name, the usage date, and any limitations on the authorization.
86803 Fields reversed when using Dose text from previous delivery
- Fields reversed when using dose text from previous delivery.
82514 Implement Pharmacy Customer Orders as part of the Pharmacy Admin Tasks
- Activation of Pharmacy Customer Orders and necessary changes to existing Customer Order Controls have been moved to Pharmacy Administration Tasks.
83017 Not possible to access Page LSC PH Disp. Pst. Prodcuctions (10015679)
- Fixed Dispense Posted Productions list page could be found through search.
84382 Non existing Replenishment calculation type on Retail items - Fix via upgrade codeunit
- Items master migrated from previous versions might contain Replenishment Calculation Type = 5 or 8, values that are no longer available.
- This is fixed by changing those items to Average Usage.
- For Average Usage there needs to be one Replenishment Sales Profile defined as Default. If none is, the migrate allows the user to select one profile as Default.
- Upgrade tags 'LSCPH-ReplenSalesProfile-SetDefault-20260702' and 'LSCPH-ReplenCalcType-FixAverageUsage-20260702' are set once this has been executed.
85367 IS e-prescription list Web Template Add Last Valid Date
- The E-Prescription list now displays the fields Last Valid Date and Purpose Text as columns.
87038 Pharmacy - Hard get on AE subscriber - Go-live blocker
- Hard get on AE removed, allowing users to retrieve prescription orders on offline POS.
81683 Norwegian "Prescription order" window: LSC PH Prescr. Order (10015351, Document)
- Norwegian translations in Prescription Order and Prescription Order Line were updated.
82876 Norwegian "E-prescription list"
- Missing/incorrect translations were added.
83798 ProdGruppe Enhancements
- Product Group Selection has been reworked and converted to a worksheet so the user has a better way to add multiple items.
- A new check box to select the items was added.
- The user is now able to add Spacebar and tab to select items and switch to quantity selection.
- The selected items page part, now dynamically increases and decreases size depending on the number of items selected.
84252 POA documentation is not stored after viewing customer payment report
- There was an issue where viewing a customer payment report on behalf of a patient (as a delegate with a valid power of attorney) did not record or report the POA usage to EIK.
- This is now captured with the correct date/time, whether the report is viewed or printed.
84274 Wrong translation in suggested dosetexts
- Wrong translations in suggested dose texts were fixed
84283 Wrong translations in emergency prescription
- Norwegian translations on the emergency prescription (paper prescription) form were corrected.
84299 BC27: Not able to approve requisitions due to missing batch ID and expiry date
- This was fixed in the Norwegian Extension:
- Batch ID and Expiry Date are now, marked as mandatory on the Break Pack page for B2B requisition orders.
- The Break Pack page now opens during approval so users can enter the missing values, keeping the previously selected order line in context.
- Warning is now shown on closing the Break Pack page if Batch ID or Expiry Date is still missing for a B2B requisition order.
- Prescription order line is refreshed after acceptance so newly entered values are applied immediately.
- Quantity validation for Reserved lines and B2B requisition orders to prevent errors that blocked the page from closing are now skipped.
84323 Unable to retreive e-prescriptions linked to old NIN
- Functionality was fixed:
- It is possible to retrieve e-prescription list both on new and old NIN.
- POS tag, Old NIN is shown in the GUI and button for getting e-prescription for old NIN is active.
85543 AL-NO 27.1 Issuer Details not showing some info
- Issuer Detail page shows correct information in the Issuer Prescription Details and Prescriber Organization FactBoxes when retrieved from the e-prescripiton order process.
- No prescription data is available when being viewed from the Issuer list since there is no Prescription Order Line in focus.
86244 Parenteral responisbility is not shown at first try, need to run the request several times, before the information is mapped
- There was an issue where parental responsibility information did not appear on the first search attempt and required multiple tries to display. This was fixed.
86252 Paragraphs 101 to 105 should not be listed - controlled by setup
- A new Setup was added in Eik Setup.
- When active, the import of the Reimbursement paragraphs in that setup is prevented, both from farmalogg and HentKodeverk.
86806 Revert Changes: Beregn error message pops up for paragraph 3 when downloading prescription
- Details not available.
63458 LS Pharmacy IS - Siblings both with card
- Improved Sibling e‑Prescription: Siblings holding drug cards now correctly receive insurance benefits, regardless of who is added first.
84092 LS Central Pharmacy Dispense - Creating rationing dispensation - More than one line (pharmacy item) for same dispense prescription: Wrong calculation of dispensed packages
- Dispense production lines containing copied lines are now sent individually to Hekla at posting instead of accumulate the quantities pr. e-prescription number.
- Remaining quantity numbers are shown as Subordinate (blue text) in the Dispense Order to indicate that line is copied but those numbers are calculated for the initial line.
85812 Import of Lyfjaverdskra does not update purhcase price list
- Import of Lyfjaverðskrá, now updates the purchase price list.
81683 Norwegian "Prescription order" window: LSC PH Prescr. Order (10015351, Document)
- Updated Norwegian translations in Prescription Order and Prescription Order Line.
82876 Norwegian "E-prescription list"
- Missing/incorrect translations were added.
83461 It is not possible to access Insurance Documents from Dispense Posted Orders
- Insurance Document is now accessible from Posted Dispense Production (list and card).
86734 AE - getallacceptances error
- It is possible to get the all acceptances for today.
- Currently, it is not possible to choose the date to retrieve acceptances for, that will come later.
83923 FMD - "Medicines Verification Log" Alert ID field is missing
- Changes in W1 Extension:
- New Alert ID field (Text[250]) on the Medicines Verification Log table, populated when the log entry is created from the pack verification response.
- The Alert ID column is shown on the Medicines Verification Log page, next to NMVS ID and on Web Templates
- The value is read from the raw data response returned for the single pack verification; if the response contains no alert identifier, the field is left blank.
76787 Changes in Norway Extension: Warning when an undelivered dispatch request is downloaded directly
- When a prescription is downloaded (hentResept) that is a dispatch request (ekspederingsanmodning) and has not yet been dispensed, the user now receives the warning: The prescription must be handled as a dispatch request; keep track of "Ekspederingsanmodning", which is updated regularly.
- The prescription is automatically cancelled in Reseptformidleren (kansellerResept) so it can instead be handled through the Ekspederingsanmodning worklist.
82758 Release NO3.01.69 - 12.08.26
- Details not available.
82880 Fixed in Norway Extension:
- There was an issue, where downloading a prescription that needs a decision paper (e.g. §3 and §6) incorrectly started the reimbursement calculation right away and showed an error message. This was fixed.
- Since the decision paper is required first, the calculation is now correctly postponed.
85745 Refresh button in pharma not working
- Pharmacy commands were updated to local procedures, ensuring they are not translated.
86982 Pharmacy - Insurance request lines missing
- Prescriptions without insurance caused the error No Active Requests exist for document %1 %2. These prescriptions were not raised to the user nor was the process stopped. Now if there is an issue with the insurance it's raised to the user and the process is stopped.
84175 Add action Free Text Label to page LSC PH Prescription Order
- Free text label printing is now accessible from the Prescription Order Page.
84448 Create Order from subscription confirmation fails
- Fixed in W1 Extension
- Creating a customer order from a Subscription Confirmation failed with a duplicate key error.
- The customer order status log buffer was not declared temporary, causing a duplicate entry in the Customer Order Status Log table.
85745 Boots-UAT | ASCBC-1955 | UAT - Refresh button in pharma not working
- Updating pharmacy commands to local procedures, ensuring they are not translated.
85241 PDD shows wrong Issued qty - LSTS46193
- Keep issued quantity correct in PDD details when delivered quantity changes. PDD details now shows the original issued quantity instead of mirroring delivered quantity for these prescriptions.
84115 ORI-2088 - v27 - Orion shows wrong prescription order in the pharmacy in the issuer card in the RX order in BO
- Corrected the prescription sort order shown on the RX order issuer card in the Back Office.
83865 Boots-UAT | ASCBC-1383 | UAT - Cannot open Emergency Comments in PDD
- Emergency comment added to the posted prescription details page where applicable.
78453 Pharmacy - SI connection "greidsluthatttaka" is incredibly overactive
- IS localization: Insurance processing was optimized to avoid duplicate requests and improve system performance.
84768 Assistive Equipment: Not possible to get customer AE Cards from SÍ
- Debug logging for SÍ communication was improved. User is informed if a response is not successful in HTM communication.
84526 B2B - The Break-Pack Details feature cannot be opened
- Fixed an issue where the Break-Pack Details dialog could not be opened from B2B orders.
84206 When a paper prescription or an emergency prescription is created from the PDD Details page in GUI, the order does not open automatically in the GUI
- Automatically close all PDD-related pages when creating a paper or emergency prescription to display the Prescription Details Panel.
84111 Boots-UAT | ASCBC-1385 | UAT - Veterinary diagnose code incorrect when copying presc.
- Veterinary prescriptions created from a PDD (PDD > New > Paper Prescription) now correctly carry over the Animal diagnose code field from the original prescription. Previously, the code was copied in the wrong format, which could cause errors when the pharmacy tried to send delivery information to EIK.
83467 The wrong user is mapped to "Registered by" on the prescription order line - which results in incorrect user beeing sent to EIK in KvalitetssjekkUtleveringsMelding & LagreUtleveringsMelding.
- Mapping the correct user on "Registered by" field on the prescription order line instead of using the database user.
84111 Boots-UAT | ASCBC-1385 | UAT - Veterinary diagnose code incorrect when copying presc.
- Veterinary prescriptions created from a PDD (PDD > New > Paper Prescription) now correctly carry over the Animal diagnose code field from the original prescription. Previously, the code was copied in the wrong format, which could cause errors when the pharmacy tried to send delivery information to EIK.
84206 When a paper prescription or an emergency prescription is created from the PDD Details page in GUI, the order does not open automatically in the GUI
- Previously, creating a paper or emergency prescription from the PDD Details page left the PDD Details and PDD List pages open, so the resulting order did not open automatically in the GUI until you closed those pages manually. PDD-related pages now close automatically when the prescription is created, so the order opens as expected.
84526 B2B - The Break-Pack Details feature cannot be opened
- Fixed an issue where the Break-Pack Details dialog could not be opened from B2B orders.
84079 B2B order: Requester name is not populated when the Requester ID is registered on the order
- Populate the issuer name on the B2B prescription order when the Requester ID is entered.
84069 Show if remaining qty of ePrescription goes to 0 after withdraw (is last withdraw ?) LSC PH Final Control (10015580, Card)
- Final Control page shows Last Withdraw as true and Remaining Quantity in red and bold italic if the withdraw will finalize the e-prescription.
83889 Error when setting ATC filter = TRUE
- Turning on the ATC filter in the Item Substitution Search page (opened via Substitution on a prescription line) could fail with an error stating that a record in the Pharmacy Substitution Item table already existed. The filter would appear enabled after dismissing the error, but the item list would not refresh correctly. This has been fixed — the ATC filter can now be toggled without error.
80571 PH EPRESCRIPTION web template not showing remaining Quantity (only issued / total)
- Field "Remaining Quantity" added to the e-Prescription Panel to allow the pharmacist to see the remaining quantity as on the Prescription Details Page.
80569 LS pharmacy fnlctrl page not showing remaining packs (only remining qty as i.e. pills) - LSC PH Final Control 10015580
- A pharmacist can now see the remaining packs when reviewing in final control.
80569 LS pharmacy fnlctrl page not showing remaining packs (only remining qty as i.e. pills) - LSC PH Final Control 10015580
- Previously, Final Control only showed the remaining quantity in the drug's base unit of measure (for example, pills). A pharmacist can now also see the remaining packs when reviewing a prescription in Final Control.
84138 Paper prescription for Active substance – The mapping of the prescribed active substance in the GUI is taken from the dispensed item and not from the active substance table
- The prescribed active‑substance description in the GUI is now taken from the active substance selected in the Active Substance table, and not from the product chosen as the dispensed item.
- The display of the prescribed active substance in the GUI is now consistent with how it is shown for e‑prescriptions.
83712 SIT - Space missing in additional information field on dosage label when Norwegian
- Fixing a translation issue, adding a space missing in the additional information field on the dosage label.
83736 PDD details for magistral prescriptions are missing the mapping to instructions
- Instructions are mapped to Posted Prescription Order Line and PDD Details.
82723 The field ‘Locked’ is missing on the page for PDD details for reference‑number prescriptions
- Fixed an issue where the Locked Prescription field was not displayed in the PDD Details Page. The field is now shown correctly, matching the behavior from previous versions.
SCO hotfixes
83996 SCO Connector New Feature Request: Suspend Transaction
- A new web service lets you suspend a POS transaction through the Self-Checkout Connector and send it to Head Office, so it can be retrieved and completed from another POS terminal.
79428 Add functionality to add Member to AddtoTrans SCO webservice
- Added new modification type to web service SCOModifyOrder. Through this web service it is now possible to add or modify "Customer No." and "Member Card No." This web service is also easily extendable to modify any other field on the Pos Transaction table.
Shopify BC Connector hotfixes
84924 Fix Event
- Event Fix.
84722 Unit of Measure Code to Shopify Order Line
- Fix assignment of Unit of Measure during Customer order create.
83586 AL: Order Events and more
- New Event:
- OnBeforeInsertTempCOHeader
- Public Functions:
- MakeGQLId
- GetGQLId
- ShopifySendGQLReq.
System hotfixes
85858 Add POS Tag to display the status of the RFID Device
- Tag that tracks the RFID status.
Web Kitchen Service hotfixes
84018 Not failing when the QueueProfile is set but we don't have a visual for it or vice-versa
- Fixed an issue with WebKDS queue profiles not showing orders without a manual refresh.
84098 A large / bulk order does NOT clear from the KDS when bumped
- Increased the max value accepted on the Column field, resolving the issue where large or bulk orders wouldn't clear from the KDS screen when bumped.
84666 WEB KDS - Undo List still has records or lines that have blank orders
- Fixed the Undo list so it no longer shows stale/old data.
84678 Deleting Station Action History after deleting orders
- Cleaned up the Station Action History table so it is properly cleared when orders are deleted.
85282 CFD ready-order screens intermittently flash/disappear across unrelated stores
- Fixed so that updates only affect the intended store instead of triggering flashing/disappearing screens across unrelated stores.
85407 Aggregating the Deals with Items when the Layout doesn't have Deals in its JSON
- When deal headers are not included in the layout profile, deal items are now correctly aggregated together with other item lines.
85561 Removing sonar for Hotfix/latest while waiting for limits updates
- Details not available.
86571 KDS crashes when KOT tickets are voided before Web KDS picks them up
- Web KDS order routing is now atomic and crash-resistant. Web KDS integration now reliably routes orders to the kitchen without sending duplicate kitchen tickets, even when order submissions overlap during high-volume service. Business Central claims each ticket atomically before sending it to Web KDS — if overlapping order events occur at the same time, only one push can claim a given ticket. If any ticket fails to send, it is automatically resubmitted on the next push attempt, so no order silently gets lost.
- A race condition in the previous push mechanism could send the same kitchen ticket multiple times when concurrent order operations happened at the same store. If the Web KDS endpoint received a duplicate ticket, it would reject the entire batch and crash the kitchen display, requiring manual database recovery. High-volume restaurants were affected most severely. This fix closes the concurrency window entirely.
- Action required by partners:
- None. This fix is applied automatically on upgrade and requires no configuration or setup. No schema/data changes and no breaking changes.
86792 Clarification about printer kitchen station in Web KDS
- Fixed critical concurrency bugs in order processing that could allow administrative operations to run unsafely alongside live order data.
- The Kitchen Display System's internal request coordination layer had three related bugs that could allow order processing to run concurrently with administrative operations (configuration reload, database reset, order purge) even when those operations required exclusive access. In rare cases, this could also cause the system to hang completely.
- The fix ensures administrative operations execute safely without interference from concurrent order processing, and that order processing remains efficient when no administrative operation is in progress. As a correctness improvement, order requests that arrive while an administrative operation is running now correctly wait for it to finish before processing.
- This is an internal reliability and correctness fix with no changes to the API, configuration, or user-facing behavior. No customer action is required.
- Order processing throughput under normal conditions remains unchanged; when an administrative operation is in progress, new orders will experience a small latency increase to ensure data consistency, but this is the correct and intended behavior.
87278 KDS stations don't update when a new KOT/order arrives - StoreUpdateScheduler drops coalesced requests (race condition)
- Details not available.
84018 Not failing when the QueueProfile is set but we don't have a visual for it or vice-versa
- Fixed an issue with WebKDS queue profiles not showing orders without a manual refresh.
84098 A large / bulk order does NOT clear from the KDS when bumped
- Increased the max value accepted on the Column field, resolving the issue where large or bulk orders wouldn't clear from the KDS screen when bumped.
84666 WEB KDS - Undo List still has records or lines that have blank orders
- Fixed the Undo list so it no longer shows stale/old data.
84678 Deleting Station Action History after deleting orders
- Cleaned up the Station Action History table so it is properly cleared when orders are deleted.
85282 CFD ready-order screens intermittently flash/disappear across unrelated stores
- Fixed so that updates only affect the intended store instead of triggering flashing/disappearing screens across unrelated stores.
85407 Aggregating the Deals with Items when the Layout doesn't have Deals in its JSON
- When deal headers are not included in the layout profile, deal items are now correctly aggregated together with other item lines.
85561 Removing sonar for Hotfix/latest while waiting for limits updates
- Details not available.
86571 KDS crashes when KOT tickets are voided before Web KDS picks them up
- Web KDS order routing is now atomic and crash-resistant. Web KDS integration now reliably routes orders to the kitchen without sending duplicate kitchen tickets, even when order submissions overlap during high-volume service. Business Central claims each ticket atomically before sending it to Web KDS — if overlapping order events occur at the same time, only one push can claim a given ticket. If any ticket fails to send, it is automatically resubmitted on the next push attempt, so no order silently gets lost.
- A race condition in the previous push mechanism could send the same kitchen ticket multiple times when concurrent order operations happened at the same store. If the Web KDS endpoint received a duplicate ticket, it would reject the entire batch and crash the kitchen display, requiring manual database recovery. High-volume restaurants were affected most severely. This fix closes the concurrency window entirely.
- Action required by partners:
- None. This fix is applied automatically on upgrade and requires no configuration or setup. No schema/data changes and no breaking changes.
86792 Clarification about printer kitchen station in Web KDS
- Fixed critical concurrency bugs in order processing that could allow administrative operations to run unsafely alongside live order data.
- The Kitchen Display System's internal request coordination layer had three related bugs that could allow order processing to run concurrently with administrative operations (configuration reload, database reset, order purge) even when those operations required exclusive access. In rare cases, this could also cause the system to hang completely.
- The fix ensures administrative operations execute safely without interference from concurrent order processing, and that order processing remains efficient when no administrative operation is in progress. As a correctness improvement, order requests that arrive while an administrative operation is running now correctly wait for it to finish before processing.
- This is an internal reliability and correctness fix with no changes to the API, configuration, or user-facing behavior. No customer action is required.
- Order processing throughput under normal conditions remains unchanged; when an administrative operation is in progress, new orders will experience a small latency increase to ensure data consistency, but this is the correct and intended behavior.
84018 Not failing when the QueueProfile is set but we don't have a visual for it or vice-versa
- Fixed an issue with WebKDS queue profiles not showing orders without a manual refresh.
84098 A large / bulk order does NOT clear from the KDS when bumped
- Increased the max value accepted on the Column field, resolving the issue where large or bulk orders wouldn't clear from the KDS screen when bumped.
84666 WEB KDS - Undo List still has records or lines that have blank orders
- Fixed the Undo list so it no longer shows stale/old data.
84678 Deleting Station Action History after deleting orders
- Cleaned up the Station Action History table so it is properly cleared when orders are deleted.
85282 CFD ready-order screens intermittently flash/disappear across unrelated stores
- Fixed so that updates only affect the intended store instead of triggering flashing/disappearing screens across unrelated stores.
85407 Aggregating the Deals with Items when the Layout doesn't have Deals in its JSON
- When deal headers are not included in the layout profile, deal items are now correctly aggregated together with other item lines.
85561 Removing sonar for Hotfix/latest while waiting for limits updates
- Details not available.
84018 Not failing when the QueueProfile is set but we don't have a visual for it or vice-versa
- Fixed an issue with WebKDS queue profiles not showing orders without a manual refresh.
84098 A large / bulk order does NOT clear from the KDS when bumped
- Increased the max value accepted on the Column field, resolving the issue where large or bulk orders wouldn't clear from the KDS screen when bumped.
85282 CFD ready-order screens intermittently flash/disappear across unrelated stores
- Fixed so that updates only affect the intended store instead of triggering flashing/disappearing screens across unrelated stores.
85407 Aggregating the Deals with Items when the Layout doesn't have Deals in its JSON
- When deal headers are not included in the layout profile, deal items are now correctly aggregated together with other item lines.
85561 Removing sonar for Hotfix/latest while waiting for limits updates
- Details not available.
84098 A large / bulk order does NOT clear from the KDS when bumped
- Increased the max value accepted on the Column field, resolving the issue where large or bulk orders wouldn't clear from the KDS screen when bumped.