# May 2025

## Monthly summary / tl;dr

### 🚀 Added

* **Guest customers on orders**: Add/edit guests without creating a permanent customer. Some people just want to browse in peace.
* **Flow Gift Card**: Now shows the last 4 digits of the card number in settled order view.
* **Service order images**: Upload, view, and delete images directly on service orders. More clarity, less guessing.
* **Hidden retro theme**: Unlock old-school vibes with a “chunky” ElGuide-style UI in keyboard mode. It's nostalgic. It’s unnecessary. We love it.
* **PIN code change**: Users can now change their PIN from the app bar.
* **Device info view**: Know exactly what device you're logged into. Perfect for IT troubleshooting or just feeling important.
* **Support for compact 51x25 mm labels**: Because sometimes, size does matter.
* **New API endpoints**: Print receipts directly via API and fetch devices by Till ID.
* **Custom cost/name per order item**: More flexibility when products need specific treatment.
* **EHF improvements**: EHF address fields added to customer form + SWIFT/BIC now supported in export.

### 🛠️ Improved

* **Customer search from Omnium**: Pulls email and phone directly for faster lookups.
* **PDF receipts**: Better layout, better printing, happier accountants.
* **Total discounts**: Now shown on receipts, invoices, and offers – because every krone counts.
* **Verifone & Softpay error handling**: Improved diagnostics when terminals act up.
* **Package products**: Clearer display and correct stock logic, even when components are missing.
* **Order search filters**: Now includes orders reserved via purchase requests, not just from warehouses.
* **No more auto-updates**: Receiving stock won’t overwrite purchase prices.
* **Cash drawer flow**: Now opens instantly after entering amount – feels more responsive.
* **Backoffice access**: More precise user permissions to protect reports and data.
* **Touch UI**: Warning color on negative quantity in open sales. Visual cues FTW.

### 🧯 Fixed

* **Reserved stock math**: Works correctly across multiple warehouses (finally!).
* **Missing images on RMA PDFs**: Now included, so you won’t need to email extra documentation.
* **AUTO\_ADD products**: Now auto-deleted when parent product is removed.
* **Incorrect receipt headers**: Proper titles now shown – no more “Receipt #Generic”.
* **Label printing bugs**: Labels without prices now behave, and no crash when printer isn’t connected.
* **Package availability**: Now reflects correct quantities and reservations.
* **Incorrect settlement states**: Orders now marked properly after full receipt payments.
* **Omnium VAT & discounts**: Now handled correctly, even when quantity = 0.
* **Cashback logic**: Cash drawer and settlement flows now sync properly.
* **Softpay quirks**: Fixed resume handling and disabled buttons when returning store credit.

***

## 2025-05-26

### Added

* New device service and repo method: `GetDeviceByTillId`.
* New API endpoint for printing receipts:\
  `/tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}/print`

### Improved

* Added `SupplierReferenceNumber` field to RMA order items if exists, so that the supplier can "backtrack" the RMA all the way to the original purchase order.
* Receipts now include more delivery information, like address details, etc.
* Improved error handling for Verifone payment failures.

### Fixed

* Labels without prices now print correctly when using comparison pricelists.
* Softpay: `activityToResume` parameter is now included when `client appcode = assistant`.
* Pictures added to services now show up correctly on RMA order PDFs. No more missing evidence.
* Fixed language issues in service email templates.
* Orders are now set to the correct state when all lines are paid via receipts.
* Automatically delete `AUTO_ADD` products when their parent product is deleted.
* Service orders can now be modified even if the RMA item itself is unchanged.
* Total discount layout fixed on receipt PDFs. Looking better on paper.
* Correct receipt headers are now shown. No more generic titles.
* Package products now display the correct available quantity.

## 2025-05-20

### Added

* <kbd>Flow Gift card</kbd> After selling a Flow Giftcard, the *last 4 digits* of the card number will now appear in the *settled order view*.
* **Visual warning for returns / refunds:** Order lines with *negative quantity* now show a warning indication color in *touch mode open sale*.
* <kbd>Flow Service</kbd> **Service order images:** You can now *view, upload, and delete images* attached to a service order.
* **New theme:** Hidden retro mode unlocked 🕹️: A *new “secret” theme* can now be activated in *keyboard mode* – bringing back that old-school Elguide vibe. It’s nostalgic. It’s chunky. It’s glorious'ish.
* **Change your PIN:** Users can now *change their PIN code* by clicking their name in the app bar.
* **EHF support:** Added EHF *address field* to *business customer* form.
* [**RMA**](#user-content-fn-1)[^1] **from service order:** You can now *create an RMA order directly* from a service order.
* **New price label format:** Support for new label size: **51x25 mm**.
* **Sort receivements:** Tap the *SKU or product name header* in a purchase receivement to sort products *alphabetically* (both directions).
* **Purchase request orders:** Added a *dedicated view* for orders that include a purchase request.
* **Know thy device 🔍:** Device info now shows up on *login*, in *settings*, and right there in the *app bar*. Perfect for the IT heroes among us – no more guessing which mystery box is acting up.
* **Notification list filters:** Filter the notification list report by *customer* and *store*.
* **Payment descriptions:** *Payment parameter descriptions* are now visible in the payment view. No more guessing what that payment method with the weird name is.
* **Guest customers on orders:** It’s now possible to add and edit a *guest customer* on an order without creating a permanent customer record. Not everyone wants to be a 'real' customer afterall.
* **Display guest customer info:** Orders with guest customers now display *customer details*, even if no customer record was created.
* **Expected delivery info:** The *expected delivery date* from purchase orders is now shown on order items with reservation type ‘Purchase Order’.
* **Total discount shown:** *Total discount across all products* on an order is now displayed on:
  * Till receipts
  * PDFs: receipt, invoice, and offer
* **Purchase price in currency:** New product field: currencyPurchasePrice
  * Allows submitting a purchase price in a specific *currency code*
  * Automatically updates the regular purchasePrice based on *current exchange rates*
* **Product API:**
  * New fields: allowOrderSpecificCost, allowOrderSpecificName

    → Enables products to have custom cost or name per order
* **OrderItem API:**
  * New fields: itemCostPrice, productName

    → Override cost price and name *directly on the order item*

### Improved

* **Softpay improvements:** activityToResume and switchBackTimeout fields added to the startTransaction handler for better control over Softpay transactions.
* **No auto-update on receivement:** A product’s purchasePrice is *no longer updated* when the product is received into inventory

### Fixed

* Restricted warehouse access: The warehouse dropdown in *stock transfer* no longer shows locations the store doesn’t have ‘move’ access to.
* Label printing fix: Prevent crash when clicking *print label* on a device without a Flowbox connected.
* Quantity reset bug: Fixed issue where product quantity was not reset to 1 after adding an item in *keyboard mode*.
* Return with store credit: Fixed issue where the *payment button appeared disabled* when returning an order with *store credit*.

## 2025-05-15

### **Added**

* New field on products, **`allowNegativePrice`** , that lets you allow **negative prices** on specific products (e.g. for returns or compensation logic).
  * <kbd>Backoffice</kbd> New option under **Advanced** to enable this on a per-product basis
* You can now add a **custom footer text for invoice PDFs** on a per-store basis
  * <kbd>Backoffice</kbd> New field under Payment methods to add the text

### **Improved**

* **Order search (`deliverForStoreUid`)** now includes orders where order lines are reserved from purchase orders or requests for purchase. This means orders that are not yet reserved from a warehouse will also be shown in order management functions, like **Customer Orders**.

### **Fixed**

* **Discount calculation** is now handled correctly when quantity is zero in orders from Omnium.
* **Dintero VAT handling** – VAT is now correctly divided by 100. Not easy these divisions&#x20;
* **Dintero ExternalId check** – if `ExternalId` is missing in the store, an error is now returned.&#x20;
* **Package product components** now switch to reservation type `WAREHOUSE` when there is insufficient stock.
* **EHF export** – VAT amount on each order line is now correctly included in the tax calculation.
* **Store dropdown** in user would sometimes not show currently selected store

## 2025-05-14

### Added

* **Customer info now printed** on standard **receipts** (ESCPOS thermal printers).

### **Improved**

* **Cash drawer** now opens **immediately after entering the amount** on a cash sale, instead of at the very end of the process (after payment).
* **SWIFT/BIC is now included** in the EHF export **if defined on the store**, improving compliance for international payments.
* <kbd>Backoffice</kbd> **Restrictions** to various sections if user is not admin, as this was previously too open. To be able to see and fetch reports from a specific store, you either need to have Administrator role, or to have the relevant store(s) added to your user profile.

### Fixed

* **Cash drawer opens correctly** when cashback is given.
* **Settlement validation now respects configuration** on the tenant’s payment method – ensures correct handling of **cashback, sales, and refunds**.
* **Smarter Verifone fallback handling** – if `paymentBrand` is missing in `CardData`, we now extract it from `SalesToPOIData` instead. If that sentence made no sense to you, don’t worry — it’s our job to understand this stuff so you don’t have to.
* **Accounting report now includes Verifone INIT-only transactions**, ensuring full financial traceability.

## 2025-05-13

### Added

* You can now optionally **set time-limited prices** in price lists by also defining an **end date** — in addition to the already existing **from date**.
* You can now **create an** [**RMA**](#user-content-fn-2)[^2] **(return to supplier) directly from a service order** — streamlining the process of handling and tracking claims for defective products.
* It's now possible to **activate price list campaigns by applying a pre-defined campaign code** to the order.
* Support for a **new compact label format** (**51x25 mm**), perfect for smaller products or space-constrained displays.

### **Improved**

* **Receipts now clearly show when a product is part of a package,** helping both customers and staff understand what’s included.
* A new filter to easier **find** **customer reservation orders**.
* The sort order of items on printed receipts now matches the way they were entered — more logical and easier to verify!
* **PDF receipts** have been **streamlined** for **better readability** and **printing efficiency**.
* If you **manually set or change a price on a product** on an order, it will now **remain untouched**, even if you add a customer to the order afterwards.
* You can now **remove a discount code from an order through the API**, making it easier to fix mistakes or adjust discounts after the fact.

### Fixed

* Batch update errors are now correctly reported, so you’ll get accurate feedback when something goes wrong, even though it never should fail of course 🤞

## 2025-05-08

### Added

* Implemented **Softpay** as a new payment method 🥳
  * New endpoint: **POST /tenants/{tenantUid}/callbacks/softpay**
  * New **Tenant/Store extension**: `SOFTPAY`
  * New **payment method**: `SOFTPAY_CARD`
  * New **Till setting**: `SOFTPAY_APP_ID`
  * New **Store extension parameters**: `SOFTPAY_MERCHANT_REFERENCE`, `SOFTPAY_SIGNATURE_KEY`
* New **customer field** for EHF endpoint using `EhfAddress` from both **Customer** and **StoreExtension**
* Added **delivery address** on customer receipt.

### Improved

* **Price list name search** is now case-insensitive
* Empty `gtins` sent in a product are now ignored.
* **Order API**: Added new field in order response – `AllowedActions`.

### Fixed

* `setAsBusy` method on `OrderSettlementChangeRequest` now correctly sets state to **IN\_PROGRESS**.
* Fixed issue with **outstanding balance** calculation on B2B customers.

### Deprecated

* The field **`ehfEnabled`** in the Customer API is now deprecated.\
  Use the new field **`enabled`** inside the `ehf` section instead.

## 2025-05-06

### Added

* **Invoice PDF** now includes **price excluding VAT**.
* <kbd>Backoffice</kbd> **Sales voucher report** with all sales transactions, in both XLSX and on screen

### Improved

* **Custom parameters** are now displayed on the **invoice PDF**.
* **Adyen transaction ID** is now formatted as `<tenantid>-<order_number>-<settlementId>`.
* **Device link code** more visible when active on device.

### Fixed

* `qtyDelivered` is no longer set on refunds if the original order line wasn't delivered.
* **OrderAddress** `CompanyName` now updates correctly.
* **Dintero Payment Link integration**: `settlementChange` is now correctly marked as failed when cancel session fails.
* **Removed double calculation** of package products from the posting list.
* **Duplicate check** on **email** is now **fixed**.

## 2025-05-02

### Added

* New command-line command to sync warehouse data from Flow to Omnium.

### Improved

* Invoice PDF now includes price excluding VAT.
* Posting list now uses `findAndProcessReceipts` for improved reliability and performance.\
  (Out with the old, in with the slightly more clever.)

### Fixed

* BATCH customer update is now working as expected.\
  (Yes, finally.)
* Correct codepage is now used for Finland, ensuring the € symbol displays properly.\
  (Because Euros deserve respect too.)

[^1]: Returns Merchandize Authorization, meaning returning goods back to the supplier.

[^2]: RMA (Return Merchandise Authorization): A reference used to manage and track products that are returned by customers for repair, replacement, or refund.


---

# 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/2025/may-2025.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.
