# February 2026

## 2026-02-24

### Added

* New endpoint for **order search counts**: `POST /tenants/{tenantUid}/orders/search/counts` — get order counts by search queries without fetching full order data.
* Support for **downloading payment receipts as PDF**.
* Client: **Danish**, **Swedish**, and **Nynorsk** translations added. Hej! Hei! Heisann!

### Improved

* **Product search** now supports operators `&` (AND), `|` (OR), and `!` (NOT) for more specific and powerful searches.
* NETS payment integration now allows **unreferenced refunds**, similar to how Adyen already works — enabling refunds without requiring a reference to the original transaction.
* Adjustments to **ESCPOS receipt print** formatting.

### Fixed

* **Product media batch update**: Fixed an error when updating existing images via `POST /products/{productUid}/media/batch`.
* **Required options** now show correctly on store product search.
* **Order settlement**: Added null checks for Till and StorePaymentMethod to prevent crashes when processing settlements for Adyen, Stripe, Softpay, and cash payment methods.
* Vipps: Now uses the actual **settlement amount** for capture operations instead of a hardcoded 0. That's... kind of important.
* Vipps callback: Added validation to ensure callback amounts match settlement amounts.
* Client: Fixed **revenue percentage** value in quick totals report.
* Client: **Confirmed order state** could be lost while interacting with an open order — now it sticks.
* Client: Orders with multiple invoices now properly show a selection dialog for **Pay Invoice**, **Manual Payment**, and **View Payments** actions.

## 2026-02-19

### Added

* **Variant property labels** now visible on the main product search page and in sales view when your search matches an exact product. No more guessing which variant is which.
* **Purchase orders** now fully support **package products** — both adding and receiving.
* Admin: **Device name** now shown in the till list, and you can **quickly create a new till** when setting up a new device.
* Client: **Confirmation dialog** when updating a customer's email address for receipt sending — no more accidental email changes.
* Client: Improvements to the **Find delivery options** dialog, which now displays errors from the lookup service and disables confirm if there are issues.
* New **accounting key**: `CASHFLOAT_EXPENSE_WITHDRAWAL`.
* New **supplier fields** in product response — now includes supplier purchase price, supplier SKU, and more.
* **Health endpoint** now returns `minimumVersions` containing the minimum required app versions (Client: 1.27.0, Assistant: 2.6.0).
* **Store update** now validates **cash reconciliation** toggling.

### Improved

* Admin: **Drag-and-drop reordering** for product media — no more fiddling with manual position inputs. Works across the media tab, upload modal, and product creation.
* Client: **Serial number handling** reworked — you can now add serial number products with a blank serial number when set to "deliver now". When entering the payment dialog, any products missing serial numbers are shown in a dialog, and once resolved, you proceed straight to payment.
* Client: The payment dialog now runs an **order status check** and displays any warnings or errors before you proceed.
* Client: On **Windows/Mac**, the window size on startup will only reset to default if the app was previously closed at a smaller-than-default size.
* **Flowbox connection status**: Now checks RabbitMQ consumer connection when listing store flowboxes and updates **ONLINE/OFFLINE status** accordingly.
* **Insurance** and **VAS** (value-added services) products can no longer be sold without an associated main product — because selling insurance on nothing doesn't make much sense.
* Admin: **Warehouse modal** now pins the owner store row at the top, auto-refreshes after access changes, and has improved UX overall.
* Admin: **Import template description** is now optional.
* **Property options** can no longer be added to a **text property field** — only to selection-type properties where they belong.

### Fixed

* Client: **Hardware scanner** now works properly in open sale.
* Client: **Orders with multiple invoices** now show a selection dialog for Pay Invoice, Manual Payment, and View Payments actions.
* Client: Fixed an issue where the app **was not working** when onboarded to a device without a till.
* Client: Order items missing a **serial number** no longer incorrectly block payment when those items are set for later delivery.
* **Partial order address updates** no longer clear the entire address if the phone number is invalid.
* **Price import** no longer sets dates to the year 0001. Time travel is cool, but not in your price lists.
* **Sold-not-delivered report**: Credited order lines are now properly taken into account.
* **Package products**: Delivered quantity now correctly remains 0 when settling an order — only components are delivered.
* Fixed **upserting text properties** on a product update.
* **ORDER\_STATE\_CHANGE webhook** now triggers correctly when an order is canceled.
* **ESCPOS receipt encoding** is now correct.
* Profrakt: Fixed agreement number handling — now stores only the product identifier and looks up agreement information dynamically from the Profrakt API.
* **Open-Item-Report**: Currency code now uses the store's country instead of defaulting to NOK.
* **Order import**: Improved error message when a delivery is not used by any order item.
* Admin: **Import errors** now show actual API error messages instead of generic ones.
* Admin: **Badge colors** display correctly in **dark mode** across all modules.
* Admin: **Order PDF download** shows the actual API error instead of a generic message, and the button is disabled with a tooltip for payment orders.
* Admin: **Media position ordering** preserved correctly during product creation when mixing URL and uploaded images.
* Client: Various undisclosed security improvements.

### Removed

* Admin: Removed unused full-page permissions blocker — superseded by more granular permission controls.

## 2026-02-11

### Added

* New **cash report** endpoint: `GET /tenants/{tenantUid}/stores/{storeUid}/cashreports` — list all cash reports for a store in one go.
* New **accounting keys** for cash float operations: `CASHFLOAT_DEPOSIT`, `CASHFLOAT_WITHDRAWAL`, and `CASHFLOAT_TO_BANK`.
* **Subscribers** for automated reports — stores can now subscribe to receive **sales summary reports** automatically. Manage subscribers from the new **Notifications tab** on store details in Admin.
* New **accounting config endpoints** for easier setup:
  * `GET /tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/productGroups`
  * `GET /tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/treatcodes`
  * `GET /tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/accountnumbers`
  * `GET /tenants/{tenantUid}/stores/{storeUid}/accountingConfigs/vatTypes`
* Ability to **receive payments on an invoice** from an external system.
* Omnium order sync now **auto-delivers items** when Omnium has set DeliveredQuantity — less manual work for warehouse staff.
* Admin: **Advanced search** added to the orders list.
* Admin: **Swedish translations** added.
* Client: **"Last modified at" filter** added to the order handling list — find recently touched orders faster.
* Client: **Confirmation dialog** now appears before closing order handling, so you won't accidentally lose your work.

### Improved

* **Order confirmation** now includes more detailed **delivery information**.
* Admin: Redesigned **pre-login pages** with an animated gradient background, new card layout, and consistent styling across sign-in, no-tenants, and clear-session views.
* Admin: **Accounting page** layout redesigned for better overview.

### Fixed

* **Cash reports** now show the correct `cashRevenueAmount` when listing till reports.
* **Open items report**: Payments were not being taken into account — now they are.
* **Product searches** sped up with database index improvements.
* Creating an **order delivery** now properly saves the `countryCode`.
* **Purchase Order**: Fixed inconsistent expected delivery date handling when no date is provided.
* **Qualified Product Campaign**: Fixed discount calculation when the campaign uses an amount-based discount.
* Omnium: Customer relation sync now sets relations the correct way.
* Admin: Missing **Flowbox label settings** for barcode printer now available.
* Admin: Missing **webhook types** added.

### Removed

* Time for more housekeeping! The following deprecated API fields have been **permanently removed**:
  * **Product API**: `requireCustomer`, `productLinkUid` (addon response)
  * **Order API**: `customerContactUid`, `shippingAddress`, `reserveStock` (use `reservationType`), `createdAt` in import (use `orderDate`), `deliveryProviderUid`/`deliveryProviderMethodUid` in import delivery (use `shipping.*` equivalents), and backward compatibility for these fields on the delivery update endpoint
  * **Stocktaking API**: `productUid` on stocktaking item schema
  * **Tenant API**: `availableExtensions`
  * **Settlement API**: `paymentAomunt` (use `paymentAmount` — yes, it was a typo all along), `storeSettlementIssuerUid` (use `storeSettlementIssuer.storeSettlementIssuerUid`)
  * **Receivement API**: `unitPrice` (use `unitCost`)
  * **Product API**: `brandUid` in search (use `brandUids`)
* **Purchase Order API**: The deprecated `currency` field is now optional and will be removed in a future release.
* **Order API**: Deprecated fields `warehouseUid` and `timeslotName` are now optional on order delivery responses — will be removed in a future release.
* **Tenant API**: Deprecated `defaultCustomerGroupUid` field is now optional. Use `TenantAppSettingsResponseSchema` instead.

## 2026-02-03

### Added

* **Extended Finnish language support** — the Admin interface is now available in Finnish 🇫🇮
* **Store settlement**
  * **Multiple store settlements per day** — you're no longer limited to one store settlement per day. Perfect for stores with shift changes or multiple reconciliation windows.
  * **Store settlement cut-off time** — new option to set a cut-off time for store settlements. Tills cannot be opened after this time until the previous store settlement is completed. No more "I forgot to close the till" excuses.
  * **Print option for store settlements** — generate printable PDF reports directly from the store settlement page.
  * **Change amount check** — the system now verifies change amounts before counting till on the store settlement page.
* **Settled state indicator** — orders now show their settled status on both the order list and in the order dialog.
* **Purchase order search filter** — new `hasConfirmedReceivements` filter to find purchase orders with or without confirmed receivements.
* New endpoint field: VAT number and contact person are now included on <kbd>Omnium</kbd> orders.

### Improved

* **Till management** — stores with the Cash Reconciliation feature enabled can now close tills without counting, and view a till list with status information.
* Layout adjustments on the products table in Admin for better readability.
* <kbd>Omnium</kbd> sync now includes comprehensive Sentry error tracking and panic recovery for all sync processes (orders, receivements, warehouse sync, and cleanup jobs).
* <kbd>Omnium</kbd> receipts now include sellercode on order lines.
* Device list now shows the **app version number** for easier troubleshooting.

### Fixed

* **Campaign calculation** — the campaign engine now correctly calculates campaigns for order lines even when the current price is higher than the original price.
* <kbd>Adyen</kbd>: Fixed the store settlement issuer for referenced refund requests to use the original settlement.
* <kbd>Omnium</kbd> customer loyalty ID mapping now correctly uses ExternalIds (ProviderName) instead of the Properties field for both B2B and B2C customers.
* <kbd>Omnium</kbd> customer sync now properly adds customerRelations for business customers.
* <kbd>Omnium</kbd> orders without lineItemId are now handled gracefully — flagged as errors and the sync continues to the next order.
* Cash report comment field is now properly included in the store cash reconciliation response.
* Store cash reconciliation cut-off time is now read and used correctly internally.
* Tills are now blocked from opening while a store settlement is in progress.
* Admin UI no longer jumps back to the first tab on the store page unexpectedly.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flowretail.com/docs/february-2026.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
