# March 2026

## 2026-03-24

### Added

* New tenant setting: **EnforceStrongPin** — require strong PINs when users create their app PIN. No more "1234", folks.
* New store setting: **EnableUnlinkedPayments** — stores can now receive incoming payments that aren't linked to a specific order. The feature is available in both the API and the **Windows/Mac client**.
* New **monthly report** (automated): Sold but not delivered — keep track of items that have been paid for but haven't left the building yet.
* New **poster base templates** with 2 and 4 products per page for printed marketing materials.
* **Settlements** with state *authorized* can now be **cancelled** in the **Windows/Mac client**.
* **"Copy from role"** button in the Admin role modal — merge permissions from an existing role into the one you're editing. Permissions are added cumulatively with no duplicates.
* **Sales Hub** (Assistant app) — a brand new landing page replaces the direct sales list in the bottom navigation, with tiles for Parked orders, Customer orders, Confirmed orders, Settled orders, Sold not delivered, and Offers. Everything at a glance.
* **Customer Orders page** (Assistant app) — a stock-enriched order list with color-coded product availability chips, reservation info with purchase order status, and quick actions to navigate to orders, purchase orders, or send SMS.
* **SMS pre-fill** (Assistant app) — when sending SMS from Customer Orders, the message is pre-filled with a goods received notification template. A warning banner is shown if SMS is not configured on the tenant.
* **Purchase order confirmation flow** (Assistant app) — confirm purchase orders with warehouse selection, expected dispatch and arrival dates, supplier reference, reservation linking, and support for updating existing confirmations.
* **Confirmation overview** from purchase orders (Assistant app), including a list of existing confirmations and a reservation summary dialog.
* **Customer notification dialog** (Assistant app) for confirmed and received purchase order items — notify customers that their goods are on the way or ready for pickup.
* **Paid indicator** on order items (Assistant app) — a green checkmark with settlement date for partially or fully paid items.

### Improved

* **Order items**: When allowQuantity is false, quantity can now be changed from positive to negative (e.g. 1 → −1, 2 → −2) via the API if allowCredit is true. Previously only 1 → −1 was allowed.
* **Receipt invoice PDFs** now show the payment reference for other payment types.
* **Focus and shortcut improvements** to the Select Customer Contact dialog in the **Windows/Mac client**.
* **Order details dialog** and **payment dialog** improvements when handling payment orders in the **Windows/Mac client**.
* **Order handling badge** in the **Windows/Mac client** now shows the number of orders with handling state *New* — so you know exactly how many fresh orders need attention.
* Removed the statistics section from the **keyboard sale dashboard** in the **Windows/Mac client** for a cleaner layout.
* **Tenant payment method** edit modal in Admin now supports **requirements**, **amount input**, and **rounding** configuration.
* **Reservation info** in the Assistant app now displays color-coded **purchase order receivement status** (green for received, red for unconfirmed).
* **Goods receipt flow** (Assistant app) now carries confirmation metadata through the receivement process and reduces or removes linked confirmations as stock is received.
* **Purchase order and receivement views** (Assistant app) now show richer confirmation and reservation context for reserved items.

### Fixed

* **Product search**: Fixed filtering by product property fields and options returning incorrect results.
* **Product barcode search** is now faster by checking GTIN (barcode) first.
* **Order import**: Items in the same import can now link to each other — for example linking an insurance product to the product it covers.
* Correct **AllowAmount** value on available payment methods for device and order.
* **Profrakt shipment labels** now use the order's delivery address instead of the customer's stored address. This fixes incorrect labels when orders (e.g. from Shopware) have a different shipping address than the customer profile.
* **Receipt PDFs**: Product external info (ExternalInfo) was not being rendered. It is now displayed on all receipt types: receipt, invoice, bong, offer, order confirmation, and exchange note.
* In the **Windows/Mac client** payment dialog, contact info was not always requested when selecting a payment method that requires it.
* Fixed display of **Flow Giftcard** remaining balance in the **Windows/Mac client**.
* **Quick totals** and **Seller report** dialogs in the **Windows/Mac client**: custom date range fields no longer lose focus while typing.
* Opening a sales order from the reservation dialog in the **Windows/Mac client** now correctly opens the order details in view mode.
* **Settlement code validation** in Admin no longer incorrectly requires the `EXTERNAL_` prefix on non-external payment methods.
* Fixed **API error swallowing** across all report server actions in Admin — real error messages are now shown to users instead of generic "completed but returned no data".
* **Product stock tab** in Admin no longer fails to load for tenants with stores across multiple organizations.
* Products with the **NOT\_VISIBLE** flag are no longer missed in stocktaking lists.

## 2026-03-17

### Added

* **Tenant payment method requirements** — define requirements on payment methods at the tenant level, including enforcement during settlement creation.
* **Shipping ID on order deliveries** — new `shippingId` field on order deliveries for storing shipping provider consignment IDs (e.g. Profrakt shipping IDs).
* New endpoint `POST /tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/verify` — verify an order (or specific product lines) for serial number and stock checks before completing a handling.
* **Receivement item sync** — creating or updating a receivement item now automatically syncs order reservations. New reservations are confirmed and removed ones are reverted.

### Improved

* **VAT-free orders** now look up the free VAT code dynamically by country instead of using a hardcoded ID — one less thing to worry about when operating across borders.
* **Accounting reports** now use the VAT code from the order line instead of the product when determining ledger accounts, giving more accurate bookkeeping.

### Fixed

* **Order import**: `itemPrice: 0` is now respected when explicitly provided — lines no longer fall back to the product price when the price is intentionally set to zero.
* **Order import**: Percentage discounts are now correctly applied when validating line totals against grand total, fixing validation failures for orders with `itemDiscountPercentage`.
* Inactive **order handling triggers** no longer run when they shouldn't.
* Correct **payment methods** are now listed for payment method orders.

### Removed

* `CreateSplitOrderProductLinesForAllowQuantity` has been merged into `CreateSplitOrderProductLines` with a `forAllowQuantity` parameter.

## 2026-03-10

### Added

* **Excel import** now supports **SKU** (varekode) as an alternative to product UID when importing stock, prices, and supplier products. No more hunting for UIDs.
* You can now **update the external ID and due date** on invoice settlements — also available as a **"Change due date"** action directly in the Order details dialog in the **Windows/Mac client**.
* **Serial number validation** got a major upgrade across the platform:
  * Products requiring a serial number are now validated before a handling can be set to complete (when `requireSerialnumberForComplete` is enabled).
  * In the **Assistant app**, you're prompted for a serial number when changing warehouse on items that require one.
  * Serial number validation also runs **before payment** — a dialog lets you fix any items missing serial numbers.
  * Serial numbers can be skipped when adding products or changing warehouse, and will be caught at the payment stage instead. Flexibility where it matters.
* **Price list search** now supports searching by **GTIN** (exact match), in addition to product name and SKU.
* **Search in product group selection** when setting up campaigns in the **Windows/Mac client** — finally, no more scrolling through hundreds of groups.
* If you've **just logged in**, you no longer need to re-enter your PIN when creating a new sale in the **Windows/Mac client**.
* **Order details dialog** in the **Windows/Mac client** now shows the store name with created at/by info, and displays the originating store in the heading if it's from another store.
* In the sale **delivery options dialog** (Windows/Mac client):
  * Internal info, allow sale, and age restriction are now shown when selecting a service.
  * Freight product info can be opened via the ℹ button or `Cmd/Ctrl+I`.
  * Default filter is now **10 days**, with a 20-day option added.
* **Banking information fields** added for organizations in Admin: account number, bank name, IBAN, and SWIFT. The organization modal also got a new **accordion layout** (General, Banking Information, Advanced sections).
* **Purchase Requests page** in the Assistant app Warehouse section — view requests grouped by product or by order, with filters for store, supplier, and order state.
* **Bulk actions from purchase requests** (Assistant app): create a new purchase order or add selected items to an existing one.
* **Delivery and invoice address support** in purchase order creation (Assistant app), using store addresses.
* **Auto order proposal options** in purchase order creation (Assistant app), including warehouse selection and reserved-item handling.
* **Order handling items** in the Assistant app now show **warehouse name** and **warehouse-specific stock** instead of total stock across all warehouses. An edit button lets you change the warehouse an item is reserved from.

### Improved

* **Product search** now works correctly for **all languages**.
* **Seller turnover report** in the **Windows/Mac client** has been improved with drilldown into product groups, products, and orders.
* Improved **styling of product properties** in product lists in the **Windows/Mac client**.
* **Linked addons** in both the **Windows/Mac client** and **Assistant app** are now added with the same quantity as the parent order item — sell 3 sodas, get 3 "pant" automatically.
* **Select warehouse dialog** in the **Windows/Mac client** now allows selecting a warehouse without stock quantity, since stock is checked upon payment anyway.
* **Serial number** is cleared when switching an order item from deliver-now to reserve in the Assistant app.

### Fixed

* **Invoice PDF**: Credited amount is now shown in the invoice summary and subtracted from the total to pay.
* **Orders**: Reserved quantity is now used instead of ordered quantity when validating stock for non-reservation type lines.
* **Existing customers** dialog in the **Windows/Mac client** is now scrollable when many results are returned.
* **Purchase order reservation** dialog no longer shows an error when the selected purchase order doesn't have an expected delivery date.
* **User PIN** behavior now correctly follows tenant app settings — it was always required in keyboard mode and never in touch mode, regardless of settings.
* Attempting to **deliver out a credited item** on a parked order no longer locks the deliver out dialog.
* **Return of an undelivered order item** requiring a serial number no longer demands a serial number for something that was never delivered out in the first place.
* In the sale delivery options dialog, **products without any services** no longer appear under the services section.
* **Removing a customer** from an order now also cleans the customer address from the order.
* **Guest customers** are no longer treated as sufficient for products that require a registered customer.
* **Percentage shortcut** in the payment dialog amount field now handles negative amounts correctly.
* **Invoices** can no longer be sent from the Order details dialog when the tenant has enabled sending invoices externally or the customer has EHF enabled.
* **Stocktaking list** pagination now works correctly.
* Fixed various **delete actions** in Admin silently swallowing API errors (properties, SOAs, warranties, users, stocktaking, printers, categories).
* Fixed **organization UID** not being sent with create requests in Admin.

## 2026-03-03

### Added

* **Gift Card support** in the Assistant app — a big one! You can now:
  * **Sell** Flow and PayEx gift cards as products directly in sales.
  * **Return/credit** Flow gift cards using the existing card number.
  * **Look up** gift card balance, status, and validity for Flow, PayEx, and Britannia cards from the More page.
  * **Edit** the valid-until date on Flow gift cards.
  * **Check balance** during payment — the amount is fetched and auto-filled before confirming.
  * **Send gift card by email** from the settled order page after payment.
* **Split payments** are now supported in the Assistant app — customers can pay with multiple payment methods in a single transaction.
* **Add-ons** support in the Assistant app for order items, including insurance, accessories, services, and freight services.
* **Order item reference dialog** in the Assistant app for products that require a reference (e.g. serial numbers or customer references).
* **Serial number requirement on order completion** — new support for `requireSerialnumberForComplete` and `templateUidForComplete` fields when creating and updating order handling.
  * Ensures serial numbers are captured before an order can be marked as complete.
  * Lets one set a template for sending pre-defined text to customers upon order handling.
* **RMA\_ORDER** is now available as an assignable permission for **tenant roles**, giving you more granular control over who can manage return orders.
* **Norwegian Nynorsk (nn)** is now available as a language option — both in the API locale endpoint and in the Admin panel with full translation support.<br>

  > *Eg stod i butikken og stirde på skjermen,* *og orda var framande, langt ifrå hjartet.* *Men no kjem det nynorsk i heile systemet —* *so even kassalappen endeleg er på rett mål, berre utan dikt.*

### Improved

* **Stock validation** for order lines with `reservationType = "NONE"` has been relaxed — these lines are now accepted regardless of stock availability.
  * Validation has moved to `GetOrderStatus` and `CreateSettlement`, so you'll still get proper checks where it matters, just not at the point of adding lines.
* **Omnium** improvements:
  * **Tracking numbers** from shipments are now automatically synced to order deliveries — no more manual copy-paste.
  * Improved **home delivery** sync handling.
* **Seller turnover report** in the Client now supports **drilldown** into product groups, products, and individual orders — making it much easier to dig into the numbers.
* **Webhooks** now trigger a `PRODUCT_UPDATE` event when **product links** are created or deleted (accessories, insurance, variants, etc.). If you're listening for product changes, you'll now catch these too.
* **Order delivery tracking numbers** can now be updated after creation.
* The Assistant app now **respects backend allowed actions** for price and quantity buttons on order items — what you configure is what your staff sees.
* **Admin error handling** has been significantly improved across multiple modules (properties, consents, roles, linked products, brands, product groups, transaction templates, stores, import, and store settlement). API errors that were previously swallowed silently in production are now properly surfaced.

### Fixed

* **Cash drawer** timeout errors are now correctly detected and returned — no more silent failures when the drawer doesn't respond.
* **Permissions** for a plain seller role have been corrected after thorough testing.
* **Order delivery updates** no longer accidentally clear shipping fields (provider, timeslot, freight product, tracking number) when those fields are simply omitted from the update request. Only fields you explicitly change are updated.
* Fixed a **rounding error** in line gross profit calculation when order quantities contain decimals.
* **Turnover reports**: Fixed a crash that could occur during product group aggregation when product groups had empty paths or invalid hierarchy structures.
* **Turnover report**: Fixed an issue where counts were being **doubled** when drilling down to product group level in quick totals.
* **Customer ledger number** assignment now degrades gracefully when a store doesn't have a customer ledger number series configured — falls back to the customer's global ledger number instead of throwing errors.
* **PayEx callback**: Reduced unnecessary error noise for stores that have switched payment providers, by handling missing settlements gracefully.
* **EHF invoices** with percentage discounts now pass PEPPOL validation rules (EN16931-R040 and R120).
* **Power Direct ATP check** now uses the current date as the start date for delivery option availability checks, instead of the delivery date minus 7 days.
* **Received quantity** in product search responses now correctly excludes items with statuses other than "received."
* **Omnium**:
  * **Customer sync** now verifies the customer exists in Omnium before deciding whether to create or update — preventing duplicates and sync errors.
  * **Warehouse sync**: Fixed an off-by-one error in batch size that could send one extra item per batch.
  * **Warehouse sync**: A failed batch no longer aborts the entire sync — remaining items are still sent. Resilience for the win.
  * **Customer sync**: Fixed the "parent company" property being incorrectly set on sub-departments that also have their own departments.
* **Order import**: The `deliveryAddress` field is now supported under the `shipping` structure in the order import API. Also fixed `countryCode` handling in the legacy delivery address field.
* **Danish locale code** corrected from `dk` to `da` (ISO 639-1). Tak for your patience, Danish users.
* **Purchase order reservation dialog** in the Client no longer shows an error if the selected purchase order doesn't have an expected delivery date.
* **Admin**: Fixed API errors being silently discarded across properties, consents, roles, and linked products modules.

### Deprecated

* The `deliveryAddress` field directly on order deliveries is now **deprecated** — use `shipping.deliveryAddress` instead


---

# 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/march-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.
