EG POS v. 4.161

Prev Next

EG POS v. 4.161.1

Released 4 May 2026

Scanning items in Convenience Menu Sales

(RTP-44689)

Items can be scanned in Convenience Menu Sales now. Items scanned within the Convenience Menu are automatically selected when not previously chosen, while scanning an already-selected regular item correctly prompts a dialog offering to add it outside the menu.

Scanning an item not belonging to the menu also triggers the appropriate dialog for adding it as a standalone sale. For recipe items, scanning an unselected one auto-selects it, whereas scanning an already-selected recipe item displays a dialog indicating it cannot be added again.

Additionally, the maximum item limit is handled correctly, when the limit is reached, scanning another menu item prompts a dialog to add it outside the menu instead.

Finally, items added outside the menu during a convenience sale are retained on the transaction once the menu selection is completed.

Convenience Menu Sales waste transactions

(RTP-44367)

It was not previously possible to register waste (breakage) transactions for Convenience Menu Sales items and their ingredients.
Users can now process waste transactions for these items, ensuring that correct stock reduction data is sent to the inventory system.

Logs - scanning unknown items

(RTP-45794)

The ‘ItemWithThisEanNotFound’ exception has been extended to include two additional data fields:

  • EAN - The specific barcode associated with the failed lookup.

  • EntryMethod - The method used to enter the EAN (Manual or Scanner).

This enhancement provides clearer diagnostics and enables more precise analysis of lookup failures.

Examples:

  • Manual entry of unknown EAN:
    Error in the application. / ReceiptExceptionEnum.ItemWithThisEanNotFound | Manual | 1250

  • Scanner entry of unknown EAN:
    Error in the application. / ReceiptExceptionEnum.ItemWithThisEanNotFound | Scanner | 57610274503361159502

Images on the tandem items

(RTP-46315)

Images of the Main EANs are now displayed on the tandem items connected to them.
This makes product identification straightforward and efficient for both cashiers and customers.

PLU List language in self-service

(RTP-41129)

It was not previously possible to display PLU List category names in the language selected by the customer on self-checkout.

Users can now see category names in their chosen language (e.g. English) when browsing the PLU List in self-service mode.

PLU List language by culture

(RTP-41130)

It was not previously possible to display PLU List category names based on the culture/language configured for the POS.

Users can now see category names shown according to the POS culture setting when browsing the PLU List in cashier and customer view.

Pre-approval of Coopay payment

(RTP-42859)

Customers can approve a Coopay payment in the member app before reaching the payment step. When the member QR code is scanned in the sales view, the app shows a request to approve the ongoing purchase. The customer can accept, decline, or ignore the request.

In self-service:

  • If accepted, payment completes automatically when entering the payment page, reducing wait time.

  • If declined, the customer selects a payment method manually.

  • If ignored, payment starts on the payment page and requires confirmation in the app.

In cashier mode:

  • If accepted, payment completes automatically when the cashier opens the payment view, speeding up checkout.

  • If declined, the cashier selects the payment method using the standard payment options.

  • If ignored, payment starts in the payment view and requires confirmation in the app.

POS Configuration: No configuration in EG POS.

Complaint flow for item returns

(RTP-40463)

Users can now initiate a complaint directly from the Finished Receipt View or POS Receipt Journal, select the affected item, choose a service type, reason code, and action code to complete the complaint registration.

Automatic Walley refund on return

(RTP-45472)

It was not previously possible to have the original Walley payment method
pre-selected automatically when processing an online return.
Users can now navigate to the tender view during a Walley-paid return and have
Walley automatically set as the default refund method, streamlining the return process.

Improvements POS

Automatic reconciliation of payment terminal (AeraNexo) (RTP-46936)

The automatic reconciliation of AeraNexo payment terminals runs based on the PayTerminalReportTime parameter, even when no cashier is logged in to EG POS. The POS connects to the terminal to complete the reconciliation, ensuring it is performed as scheduled without requiring user interaction.

Relevant exiting parameters in POS Configuration:

  • 'PayTerminalType' = 'AeraNexo'

  • 'PayTerminalReportTime' <> 'Disabled' (format HH:MM)

Reconciliation report header per currency ** for AeraNexo pay terminal (RTP-48343)

The reconciliation report printed from the AeraNexo pay terminal shows one header line per currency. Each header includes the currency name and the columns for Quantity, Cashback, and Amount. This structure matches the layout used by the AeviXPay terminal, which makes the report easy to read and recognize across terminals.

Reconciliation report (AeraNexo terminal) (RTP-47895)

Reconciliation report for AeraNexo pay terminal, as printed on the receipt printer, has equal layout as previous pay terminal solution AeviXPay. The Debit amount is listed on the report in a separate column, as it is calculated as the Cashback amount subtracted from the Grand total amount.

Check Communication in Bank admin menu (AeraNexo terminal) (RTP-47223)

Running the “Check communication” function in the Bank Admin Menu verifies both the AeraNexo payment terminal and its connection to Host. This helps identify connection issues when e.g. a payment transaction does not succeed, making it easier to find and resolve the cause.

Pay terminal reconnection handling (AeraNexo terminal) (RTP-47201)

When EG POS loses connection to the AeraNexo payment terminal, a payment attempt detects the connection issue and performs a login to the terminal before continuing. This reduces the risk of failed transactions after events such as terminal restarts.

Card Issuer values in POSLog (AeraNexo terminal) (RTP-47142)

Numeric Card Issuer values received from AeraNexo payment terminals during transactions are stored unchanged in the POSLog.XML file. This ensures accurate tracking of card issuer information for each payment.

Logging of aborted payment transactions (AeraNexo terminal) (RTP-46896)

When a cashier aborts a started payment transaction on an AeraNexo payment terminal, the action is logged as Information. This reflects that the operation is a valid and expected part of the payment flow, helping keep error logs focused on actual issues.

Handling of mixed positive and negative amounts on receipts (RTP-47352)

Receipts that start with a negative item line, such as a deposit refund or returned item, complete correctly with Credit/Debit payment when the total amount is positive.
This ensures consistent handling of payments, regardless of the order or combination of positive and negative item lines, and provides accurate payment processing for all receipt scenarios.

Handling of late error messages in pay terminal transactions (RTP-46447)

Error messages received after a payment is reported as successful are ignored during the transaction process. This ensures the receipt completes correctly and allows customers in self-service to finish their purchase without interruption.

Handling of electronic gift cards via pay terminal (RTP-47387)

Electronic gift cards that are charged/loaded through a physical pay terminal remain on the receipt and cannot be removed. This ensures that any amount loaded onto a gift card is always accounted for. If the customer cannot complete the payment, the same gift card has to be used as payment within the same receipt for the amount that was charged.

Age verification reset on Coopay cancel (RTP-45279)

Previously, cancelling a Coopay payment in self-checkout would reset the age verification for age-restricted items, even if the age had been approved through a different method — causing the customer to go through age control a second time in the same sale.
This has been corrected so that the age verification is only reset when the approval was originally performed as part of a Coopay payment flow.

Coupon is redeemed only when discount conditions are met (RTP-46575)

Previously, a Reitan Loyalty coupon could be redeemed during payment even when the item linked to the coupon discount was not included in the sale. This could cause the coupon to be used without the customer receiving the intended discount.

This has now been improved. The POS now checks that the required item is included in the sale before redeeming the coupon. If the condition is not met, the coupon is cancelled and remains available for future use, ensuring coupons are only redeemed when the customer receives the discount.

TenderName for iCoupon and Reitan loyalty coupons (RTP-46229)

Coupons from iCoupon and Reitan Loyalty include TenderName in the POSLog.
This ensures all coupon types contain consistent payment information and supports accurate and complete transaction records.

Adding member to customer order with redeemed coupon (RTP-46705)

An AppWide error no longer occurs when adding member to customer order with redeemed coupon.

Thanks to it cashier is not confused and it's possible to pay for a customer order with added member without any errors.

Discount on item line (RTP-46395)

In certain scenarios, a single item line could end up with two separate member price discounts applied instead of one. While the total discount amount was correct, the duplicate discount entries in the transaction log were incorrect and did not match the expected behavior.

The issue has been fixed so that only a single member price discount is applied per item line.

Fuel Integration - registering drive-off (RTP-46527)

Previously, registering a drive-off after first viewing a fuel filling in Sales View incorrectly activated Breakage mode on the POS terminal.
This has been corrected so that registering a drive-off no longer triggers Breakage mode in this scenario.

Epsilon fuel voucher printing (RTP-47638)

Previously, purchasing a fuel voucher caused the system to print a car wash voucher instead of the correct fuel voucher receipt.
This has been corrected so that the proper fuel voucher is now printed when a fuel voucher is sold.

Fuel pre-payment configuration (RTP-47490)

Previously, the pre-payment option for fuel was not configurable and was always enabled.
This has been corrected so that pre-payment availability now depends on the forecourt provider setup — it is enabled for Tokheim and disabled for Fusion.

Item search performance fix (RTP-48249)

Previously, searching for items in POS caused a significant delay (up to 20 seconds) when the database contained duplicate price entries for an item, resulting in a constraint error in the background.
This has been corrected so that item searches now return results at normal speed without errors, regardless of duplicate price data in the database.

Line note keyboard overlap (RTP-43702)

Previously, when entering a long text in the line note dialog, the on-screen keyboard pushed the dialog buttons out of view, making them inaccessible.
This has been corrected so that the line note dialog is now scrollable, keeping all buttons accessible while the keyboard is displayed.

Reason entry for deposit refund (RTP-45745)

With the line note parameter activated, the system prompts the cashier to enter a reason during a deposit refund. This supports clear documentation of the deposit refund.

Manual line discount function (RTP-45747)

The Manual Line Discount function includes a line note dialog when the line note parameter is enabled. Selecting Manual Line Discount opens a dialog where the cashier enters a discount by percentage, amount, or new price. After confirming the discount, a dialog appears to enter a note.

The cashier enters a required note and confirms the dialog. The note is saved as a line note on the discounted item to support clear documentation of manual line discounts.

If the cashier cancels the discount dialog, the discount operation stops and no discount is applied to the item. The line note dialog does not appear.

Manual return line note (RTP-45744)

Manual Return includes a line note dialog when the line note parameter is enabled. After selecting a reason code for the return, a dialog prompts the cashier to enter a note describing the reason for the manual return. The note is required to continue the return process and is printed on the receipt together with the returned item.

If the cashier cancels the dialog, the return operation stops and the item is not added to the receipt.

Campaign item netcost in POSLog (RTP-47070)

Previously, when a campaign price matched the normal price, the system incorrectly used the normal netcost in the POSLog instead of the campaign netcost.
This has been corrected so that the campaign netcost is now always used in the POSLog when an item is sold on a campaign, regardless of whether the store uses the “Lowest Price Last 30 Days” feature.

Parameter for PDF Generation in POSLog (RTP-38135)

The system creates a PDF for every transaction and embeds it in the POSLog XML. This ensures all transactions include a complete and accessible document representation for integrations.

Configuration: “GeneratePDFforAllPOSLogs” = True.

Lottery prize payout without supervisor prompt (RTP-46281)

When a lottery prize is registered as paid out with Norsk Tipping, the process continues without requiring supervisor permission in POS. This ensures the transaction completes smoothly and avoids interruptions during payout.

Reminder SMS sent before order pickup (RTP-46688)

Customers with a Reserve in Store order were receiving a pickup reminder SMS before their order had actually been picked, causing them to arrive at the store before it was ready.

The issue has been fixed so that the reminder SMS is only sent once the picking status is set to "Completed".

Click & Collect order confirmation missing price (RTP-44400)

Previously, Click & Collect order confirmations could not be printed when an order contained items missing a Normal price in EG POS, causing the order to get stuck and repeatedly prompt for printing.
This has been corrected so that order confirmations now can be generated successfully even when Normal price data is absent, provided the IncludeCustomerOrderInPriceCalculation setting is enabled.

Click & Collect order cancellation (RTP-47899)

Previously, cancelling a Click & Collect order in EG POS could fail with an error when the order contained coupons missing ID-tag and ‘IsCommitted’ check is applied, forcing store staff to cancel the order manually in Chain Web instead.
This has been corrected so that Click & Collect orders with coupons can be cancelled directly in EG POS without errors.

Fix orders not possible to pick (RTP-46759)

Stores were unable to complete order picking for certain dispatch orders due to an exception in POS WCF, causing the system to fail when a receipt contained articles that matched more than one element during calculation. While a previous fix (RTP-45577)addressed the root cause going forward, orders that had already broken (primarily since January 24) remained unresolvable.

This fix restores the ability to process those affected receipts, ensuring stores can complete order picking and customers are properly notified when their orders are ready for pickup in store.

Scanning 20-code without price (RTP-46336)

When scanning an item with a 20-code EAN that has no price configured, the system catches the exception and displays a message indicating that the price is not set for this EAN.

Thanks to it cashier gets clear information why item cannot be added.

Credit note receipt ID format for redemption (RTP-47742)

The “Receipt ID” column shows the full receipt number (Store number – Cashier number – Sequence number) for both issued and redeemed credit notes. This makes it easier to recognize, track, and check credit notes across transactions.

Credit payment dialog (RTP-44382)

Customer with ‘forcerefnum’ flag in database triggers reference number field to be required in credit payment dialog now.

Thanks to it cashier cannot press Enter until all required information is filled.

Customer orders and payment calculation (RTP-45566)

Customer orders keep the correct total amount when you open the payment window. The discount is calculated once and is not deducted again during payment.

This ensures that the total amount stays consistent throughout the sales process and matches the expected order value on the receipt. Regular cash sales continue to work as expected.

Fix EG POS user interface hang caused by processing expired picking orders from all stores (RTP-47547)

The POS terminal was blocking its user interface thread for extended periods during idle cleanup of expired picking orders.
A missing store number filter caused each terminal to process and delete expired orders for all stores in the chain instead of only its own, resulting in hundreds of sequential database calls.
The fix restores the local store filter, so cleanup only runs for orders belonging to the terminal's own store.

Dispatch orders - delivery suggestions (RTP-47513)

Previously, when creating a Web Order in POS with items out of stock locally, the ordering store was missing from the list of fulfilment candidates sent to the dispatch service, preventing it from being selected for PAC.CW orders.
This has been corrected so that the ordering store is now correctly included in the delivery candidates list and appears as a selectable fulfilment option.

Dispatch order delivery method (RTP-47678)

Previously, orders could lose their delivery method after being processed by a second workstation, making it impossible to pick and fulfill those orders in the InStore App.
This has been corrected so that the delivery method is now preserved correctly throughout the order lifecycle.

Expired dispatch order blocking cashier (RTP-47650)

Previously, when a delivered web order was automatically removed from the prepaid order view due to expiration, it was incorrectly retrieved into the sale window as an active receipt, blocking the cashier from logging out or voiding the transaction.
This has been corrected so that expired and already-delivered web orders are no longer loaded into the sale window, allowing cashiers to proceed normally.

Vensafe ticket printing for multiple items (RTP-46675)

Receipts with several Vensafe items print all related Vensafe tickets after payment is completed and the transaction is finalized. This ensures each paid item can be collected using the correct ticket.

Weborder item search by SKU/item number (RTP-43033)

Previously, adding a second or subsequent item to a Weborder from POS using a SKU/Item number in the search field caused an error, preventing the item from being added.
This has been corrected so that both SKU/Item numbers and GTINs are now accepted, and the system correctly maps the identifier to the required format when communicating with the dispatch service.

Online return handling for cross-store receipts (RTP-43565)

Improved the online return process to correctly resolve the cashier information when performing a return in a different store than the one where the original sale was made.

Previously, the system would attempt to look up the original receipt's cashier number in the returning store's user directory, which could result in an exception if that cashier did not exist locally.

The cashier performing the return is now correctly identified, ensuring smooth cross-store online returns including receipts with click & collect orders combined with regular sales items.

Adding items from PLU Lists (RTP-46763)

Previously, it was impossible to add items with a quantity of 1 from the PLU List in Self-service - now this is possible again.

Previously, the action button displayed "Change" when adding a new item from the PLU List in Self-service - now it correctly shows "Add", as "Change" should only appear when modifying the quantity of an already added item.

Customer screen PLU Lists (RTP-48465)

English titles of PLU Lists are being handled also on customer screen.

Thanks to it PLU Lists will adjust depending on the culture set in POS.

Surveillance POS – Improved control when clicking more frequent control (RTP-43100)

Selecting More frequent control in Surveillance POS opens a confirmation dialog with the options Cancel or Enable/Disable. The setting changes only after confirmation. This prevents accidental activation or deactivation and ensures the change is intentional.

eSale Products are added to the receipt one by one (RTP-40002)

eSale products, such as products validated by MBXP, are added to the receipt one item at a time. The quantity dialogue does not appear on the customer screen when adding these products. In self-service mode, the quantity dialogue remains available for now, but may be removed later.
Each item is registered individually on the receipt. This reduces the risk of adding large quantities by mistake and helps prevent long processing times when the POS registers many validated eSale products.

Member QR code recognition in Self-service POS (RTP-47037)

Self-service (SCO) mode now correctly recognizes member QR codes ([loyaltysystem]-member:<barcode>), allowing members to be registered to the sale seamlessly. The SCO mode now handles the [loyaltysystem]-member: identifier in the same way as Cashier/Manned mode -registering the member, fetching coupons from the loyalty backend, and displaying bonus information consistently across all POS modes.

Fetching receipts from on-hold (RTP-45932)

Previously, selecting an on-hold receipt could incorrectly trigger a print of the last finished receipt, causing an error when the receipt had ONHOLD status.

Receipts from on-hold can now be fetched correctly, even after previously searching for the last finished receipts on the same cash register.

Search member's receipt (RTP-26113)

The dialog displayed when searching for member receipts (SEARCH_RECEIPTS_BY_MEMBER_AND_ARTICLE) now uses the same layout and search options as the member identification dialog (SEARCH_MEMBER_BY_IDENTIFICATOR), allowing members to be looked up by Social security number, Mobile number, E-mail, Member id, or Postal address.

Store receipts printing (RTP-47211)

Store sample receipts are being printed out now when choosing "No receipt" option in "Choose printer" dialog while return in POS with SEK as Main currency.

Thanks to it there is no difference in receipt printing depending on currency set.

Receipt gets stuck in POS when coupon redemption fails (RTP-47591)

Coupon redemptions could be silently lost when the coupon service timed out, even with offline retry enabled. Timed-out redemptions are now queued for retry, ensuring no coupon usage is lost.

Reference text character limit (RTP-47389)

Previously, the POS allowed entering very long reference text, but the receipt would only print part of it, making it unclear what was actually stored.
Both the Reference number and Text fields are now limited to 45 characters at the input stage, ensuring what is entered matches what is printed on the receipt.

Receipt selection popup stability (RTP-46069)

The receipt selection popup remains visible and active during the checkout flow. If the popup loses focus, it returns to the front to ensure the selection can be completed. This prevents the process from stopping while waiting for input and reduces the risk of receipts not being fully saved.

Additional logging tracks when the popup opens, closes, and loses focus. This helps identify situations where the popup does not behave as expected and supports faster troubleshooting.

Employee discount flag on promotions (RTP-46368)

Previously, when a promotion was linked to a customer group marked as employees, the employee flag on the discount in the POS log was not set correctly, preventing the extra receipt required for employee sales from being printed.
This has been corrected so that the employee flag is now properly set to 'True' for discounts when the customer belongs to an employee group, and the additional receipt is printed as expected.

Title bar store number display (RTP-47074)

Previously, when the 'ReceiptNumber' option was active in the “InformationInTitleBar” parameter, the title bar showed the store number including the company prefix instead of the local store number.
This has been corrected so that the title bar now displays only the local store number, without the company prefix.

WebdokService offline error handling (RTP-38669)

Error handling in POS when webdok service does not respond has been implemented, a timeout (based on OnlineTimeout parameter) has been added.

Thanks to it POS doesn't look as if it's frozen.

Webdok error handling (RTP-45327)

When invalid/unknown boarding pass was scanned or Webdok returned an error, a message in POS is displayed with 'Close' button available.

Thanks to it customer can re-try scanning the boarding pass by closing the dialog.

Scanner events (RTP-46493)

POS no longer freezes when scanning while switching focus to other application.
Thanks to it POS doesn't have to be restarted so often.

Scanning already used deposit refund tickets in POS (RTP-42981)

Scanning a deposit refund ticket that is already used registers as an informational log entry. This shows that the situation is valid and helps avoid treating it as an error in the POS system.

Scheduled restart or shutdown of POS (RTP-40367)

A scheduled restart or shutdown of the POS, such as during night time, registers as an informational log entry. This indicates that the activity is expected and prevents it from being treated as an error in the POS system.

Closed loop VAT code accuracy (RTP-47908)

Previously, when items were configured with dual VAT rates (e.g. eat-in vs. eat-out), the system sent the incorrect VAT rate and tax code to the payment terminal for closed loop transactions.
This has been corrected so that the actual VAT rate is now used when communicating with the terminal, ensuring the correct tax information is reported to backend systems.

Logs improvement (RTP-45860)

When the same member was registered in two concurrent sales before either transaction was finalized, the coupon discount could be applied twice. In such cases — where IgnoreCouponCommitErrors is enabled — the system previously logged a full exception with stack trace.
The log entry has been improved so that already-committed coupons are now reported as a clear, readable warning message instead of an unhandled exception.

Logs improvement (RTP-45470)

When scanning an unknown EAN using the “Ask Price (TOGGLE_LOOKUP_ITEM_MODE)” function, the system previously logged an unhandled exception with a full stack trace.

The log entry has been improved - instead of an exception, a clear and concise warning message is now logged, including the unrecognized EAN number (e.g., OnSearchItem failed, item not found for EAN: 1111222).

Cashier login performance (RTP-42984)

Recent cashier logins are not shown. This avoids unnecessary requests, reduces delays, and keeps the log clear by preventing unnecessary error entries.

Cleanup job stalled when encountering a malformed receipt (RTP-44265)

The POS cleanup job could get stuck in an infinite loop when it encountered a receipt with a malformed or undeserializable XML document. This caused all subsequent receipts to pile up in the local POS database and stop being sent, requiring manual intervention by support to unblock the queue. Error handling has been added so that the cleanup job now skips any receipt that fails deserialization and continues processing the remaining ones, restoring normal receipt flow automatically.

Cloud service URL validation (RTP-47756)

Previously, a missing or empty cloud service URL configuration caused the application to generate a high volume of unhandled errors, making it difficult to diagnose the root cause.
The validation has been improved so that the system now detects missing URLs early, logs a clear message identifying which service is affected, and avoids unnecessary errors.

Improvements POS Server

Gift card capture on multiple partial deliveries (RTP-47035)

Previously, when an order was partially paid with a gift card and delivered in three or more separate partial deliveries, the payment capture failed on the third delivery due to already-paid order lines not being correctly accounted for during the Klarna payment update.
This has been corrected so that gift card and Klarna payments are handled correctly across all partial deliveries.

Gift card capture on partial delivery (RTP-45854)

Previously, when an order was paid with a gift card and Klarna and then partially delivered, the payment job attempted to capture the full gift card amount regardless of the delivered lines, causing the job to fail.
This has been corrected so that the gift card capture amount is correctly calculated based on the delivered lines only, allowing partial deliveries to complete successfully.

Cart discount total calculation (RTP-47997)

Previously, when a campaign price was higher than or equal to the lowest price recorded in the last 30 days, the cart discount totals section incorrectly showed a discount amount instead of zero.
This has been corrected so that the total discount in the cart response is now set to zero in this scenario, ensuring accurate discount reporting.

Cart data loss in orders across machines in POS WCF (RTP-47231)

When a user starts an order on one machine and resumes it on another, POS WCF was not persisting the POSLog between sessions. This caused items added in the first session to be lost when GetCart was called on resume, as it fetched the unpersisted POSLog state.

The fix aligns POS WCF with POS API, where PersistPOSLog was already enabled, ensuring cart data is reliably saved and restored across machines.

Return receipt now correctly registered in Voyado after post-membership registration (RTP-44188)

Earlier, when a customer made a purchase and later post-registered their membership, a subsequent return of that item were not sent to Voyado. This was because the return receipt did not carry the loyalty number linked via the post-registration. As a result, the bonus points from the original purchase were never reversed, leading to an incorrect bonus balance for the customer.

This has now been fixed. The POS and POSAPI retain the loyalty number from the post-registered receipt and include it in the return receipt, ensuring the return is correctly registered in Voyado and the customer's bonus balance is updated accurately.

New POS Configuration parameter:

“AllowPostRegisteredReturn” - When Enabled, returning items via a post-registered receipt by reference back to the original sale receipt. When disabled, returns from post-registered receipts are not supported.

Required:

Retail DB version: 2.10.0.117

Returning orders with "Group" discounts (RTP-45792)

Before, when resuming a partially captured order that had a "Group" subtotal discount applied, the discount was dropped from the new receipt on ‘BeginCartEditing’, causing a payment amount mismatch and blocking further captures or returns.

Now, "Group" subtotal discounts are now correctly preserved when resuming a partial cart, allowing the order to complete normally.

Improved exception logging for Bridge loyalty provider communication (RTP-46879)

When errors occurred during communication with the Bridge loyalty provider, the POS was discarding parts of the exception information in its logs, making it difficult to diagnose issues in production environments. The logging has been updated to preserve the full exception context, improving the ability to troubleshoot failures. This change has no impact on end users.

Prevent multiple post-registrations on the same receipt (RTP-44192)

Previously, it was possible to post-register a membership multiple times for the same receipt in POS or POS API. Even though Voyado only processed the first registration, repeated attempts could create confusion and inconsistencies.

Now, validation check ensures that membership post-registration can only be performed once per receipt. Any additional attempts to post-register the same receipt will be blocked, helping maintain consistency between POS and Voyado.

Updated Klarna API connection for Kustom partner support (RTP-46000)

The Klarna payment integration has been updated to support Klarna’s new Kustom partner API connection. A new parameter ““KlarnaKustomPartnerId has been added and related configuration updates have been made in POS, POS Services, POS Master database, and Chain Web Backoffice.

These improvements ensure the POS continues to connect correctly with Klarna and process Klarna payments without interruption.