Heads up, our devs are blazing ahead—docs are catching up, so some features might not be fully documented yet.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

March 2025

Monthly summary / tl;dr

New features 🚀

  • There’s now full support for pre-payments (e.g. the user pay a limited amount in advance).

  • Also customer reservations is now possible, with smart functions to inform the customer once the reserved product has arrived, all done while taking the receivement.

  • You can now print an order as a PDF directly from an open sale.

  • Inventory transfers between warehouses is now possible, and it’s also possible to set different warehouses for individual order items within the same delivery.

  • The purchasing flow has been upgraded with support for automatic suggestions based on min/max stock levels, editable purchase orders until fully received, and a new, simplified receival dialog.

  • In the Backoffice, you’ll find new tools for managing printers, including printing test pages, among several other stings.

+ much more! Check out the full list below.

Improved 👌

  • Order handling—particularly for scenarios like Click & Collect—has been streamlined, making it easier to mark steps as completed and notify customers.

  • The delivery address dialog is more user-friendly, and the system now supports smarter warehouse logic per order item.

  • Multiple UI improvements have been made across sales and Backoffice views, including better visuals in touch sales, smarter dropdowns, and simplified navigation.

  • Monthly reports for sales and inventory have been improved, and various elements in device and printer linking have been refined for smoother setup.

  • There’s also better handling of product and campaign rules, making it easier to maintain accurate stock and pricing across stores.

  • Search functionality is more robust, including for suppliers and deliveries.

  • It’s now possible to modify warehouse selections for deliveries and remove items from deliveries even when in early stages.

+ much more! Check out the full list below.

Fixed 🤦‍♂️

A long list of bug fixes that improved reliability and user experience, like:

  • Several issues with payment dialogs, settlement views, and discount logic have been resolved.

  • Partial settlements now behave correctly.

  • Orders using reserved items now adjust stock properly.

  • Issues affecting EHF invoice exports, label printing, and product reservations have also been fixed.

+ much more! Check out the full list below.


2025-03-31

Added

  • Print order as PDF on an open sale

  • Support for inventory transfer between warehouses

Improved / changed

  • Improved order handling with the ability to more easily notify the customer and mark handling as completed (typically for Click & Collect etc.)

  • Delivery state "Not delivered" is deprecated and replaced with "New" and "Started"

  • Pre-payment info in parked/canceled order view

  • Moved DeviceLink code to the top of the device page

  • Option to set different warehouse on order items within the same delivery

  • Added help text for payment method key

  • Improved "deliver to address" dialog

Fixed

  • It's now possible to change the warehouse on a delivery or its order items

  • Fixed issue where it wasn't possible to remove items from a delivery in status New or Started, even though it should have been allowed

  • Users are now required to select a discount reason when setting a discount on an order, if at least one reason exists

  • Improved dropdown menu so text doesn't overflow

  • Pressing Enter in the search field (open sale – keyboard mode) now opens the product search dialog

  • Settled order dialog failed to open if any items had ReservationType: Purchase or RequestPurchase – this is now fixed

  • Supplier search now works in supplier dropdowns

  • Fixed store payment issuer list, which previously failed to load correctly

2025-03-28

Improved / changed

  • Dintero: removed dataTimeLayout for handleCallbackRequest, now using capture.CreatedAt instead

  • Invoice no longer has requireExclusiveUse, so it can now be combined with other payment methods

2025-03-27

Fixed

  • Stripe callback will now always capture the amount

2025-03-26

Fixed

  • PurchaseOrderUid is now included in the notification API response

  • Settlements without transactions will now be added to receipts

2025-03-25

Improved / changed

  • [Backoffice] Adjusted printer layouts

2025-03-25

Added

  • [Backoffice] Implemented support for printer search

  • New endpoint: POST /tenants/{{tenantUid}}/printers/search

  • New API endpoint: POST /tenants/{{tenantUid}}/printers/{{printerUid}}/test

  • Implemented printer testing – supports ESCPOS, ZPL, and PDF

  • Settlement search

  • New API endpoint: PUT /tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}

  • New API endpoint: GET /tenants/{tenantUid}/stores/{storeUid}/receipts/{receiptUid}

  • Added Finnish receipt and email templates

  • Printing of pickup labels for order items

  • Added printer information to the /device endpoint

  • New endpoint: /tenants/{tenantUid}/orders/reservations to update reservation type on order items to PURCHASEORDER or WAREHOUSE

  • New field description to the device info in payment method response

  • New batch endpoint: set stock for a list of products in a warehouse

  • [Backoffice] Implemented NiceUID generation for device and printer

  • Added HasPaymentBalanceOutstanding request field to settlement search

Improved / changed

  • [Backoffice] Improved Monthly Sales Report

  • Added EHF status check

  • [Backoffice] Improved Monthly Inventory Report

  • [CHORE] New table order_settlement_transactions to track captured and refunded transactions

  • RabbitMQ can now be disabled 🐰

  • Device code is now checked case-insensitively when linking a device

  • Renamed table order_settlement_transactions to order_settlement_transaction_logs

  • Purchase orders are no longer automatically set to RECEIVED or CLOSED

  • Webhook ORDER_HANDLING_STATE_CHANGED now includes orderHandling

  • Inventory check on orders now includes all products for the SKU

  • Improved query performance for listing campaign products

  • Devices can now be filtered by storeUid

  • Delivery search now properly supports storeUids filtering

  • Campaign update now disallows CHEAPEST type without required criteria

  • Added validation for flowretail_cashdrawer when updating tills

  • It is now possible to download order receipt using a device without a till

  • Better error message if country code is missing on supplier

Fixed

  • Verifone: payment no longer fails when timeout is reached

  • Fixed response structure for purchase requests on order lines

  • Delivery is now properly removed when deleting an order, and deliveryUids are removed when deleting a delivery

  • Warehouse is no longer kept on order deliveries after deletion

  • Fixed 400-error when creating purchases based on min/max with no lines

  • CreateSplitOrderProductLines now correctly accounts for discounts

  • Prevented infinite loop on update/create customer when Omnium integration is active

  • Corrected EHF calculation for discounted invoice lines

  • Fixed table cell spacing in receipt CSS

  • PurchaseOrderQuantity is now prevented from being negative

Removed

  • Removed deprecated field requireExclusiveUse from device info payment method response – clients must now use the field in the requirements object

2025-03-24

Added

  • Support for package / bundle products

  • Purchase orders can now be automatically pre-populated based on min/max stock levels for a specified warehouse

  • A new simplified dialog is used for receieval of purchase orders

  • (Beta) Administration of customer reservations (order lines marked as needing purchase)

  • Filters added to the product page

  • New button in the order receipt dialog to print order as PDF

  • (Beta) Order with pre/part-payments

  • [Backoffice] FlowRetail CashDrawer service on tills

  • [Backoffice] Printers tab added on the store page for store-located printers

  • [Backoffice] Devices tab on the store page for devices located in the store

  • [Backoffice] Printer test page is now available

  • [Backoffice] Invoice outstanding Excel report

  • [Assistant] Ability to create and edit purchase orders

Improved / changed

  • [Backoffice] Till device information updated – revoke/authorize device removed

  • [Backoffice] Product group search-scope selector added to product group create/edit dialog

  • [Assistant] Ability to filter purchase orders by product

  • [Assistant] Ability to filter orders by product

  • Cost price now visible in touch mode sale when pressing the CM (Consumer Margin) button

  • Configurable products now have a "Show variants" option on the product page

  • Payment description field

  • The Purchase and Receive page now includes a filter for purchase order status

  • Filters in product search are now preserved when selecting a variant for a configurable product

  • Purchase orders can now be edited until fully received or closed

  • Confirmation dialog in keyboard mode when activating VAT-Free sale

  • GTIN added to product details dialog

  • Long-press to copy SKU on the product list page

  • Settled order dialog now shows in-stock quantity for items not delivered

  • Display messages on a terminated settlement are now shown in the payment dialog

  • Improved tabs in the product info dialog

  • [Assistant] Purchase orders can now be accessed from the product details page

  • [Assistant] Ability to zoom in on full-screen product images

  • [Assistant] Product restrictions are now visible on the product details page

  • Purchase order product search now hides products that are not allowed to be purchased

  • Archived purchase orders can now be found in the Purchase page by enabling relevant statuses in the filter

  • Mystats now displays the correct currency

  • Simultaneously update the ETA for all products in a purchase order

  • Shortcut for changing estimated delivery date in purchase orders is now "E" (previously "D") to avoid conflict with the "show details" shortcut

  • Purchase order search results now only show orders from the same organization

  • Store list response is now filtered to only include stores from the same organization

  • In touch mode, open sales of type "Offer" now show a green chip

  • Negative amounts are now displayed in red in order lists

  • Supplier toggle in product search (for adding products to purchase orders) is now enabled by default

  • [Backoffice] Till number info shown when creating or editing a till

  • [Backoffice] Pricelist management has been removed – now managed in Client

  • [Assistant] General UI improvements

  • [Assistant] Minimum supported iOS version is now 15.5

Fixed

  • Partial settlements were not shown in the payment dialog, and could not be deleted – now fixed

  • It was not possible to add variants to internal purchase orders – now works as expected

  • Adding a note to an order line in keyboard mode made the order line itself invisible – this is fixed

  • Keyboard shortcuts did not work in the payment success screen

  • If a new purchase order failed to be created, the app would be stuck until restart – now resolved

  • Discounts can now be applied with precision

  • RMA orders created from a purchase order didn’t set warehouse on items, so stock wasn't adjusted – this is now handled

  • [Backoffice] Various bugs fixed in report forms

  • [Backoffice] Product group, brand, and store lookup lists now include all items

  • [Backoffice] "New" buttons moved to the top of the page for device, printer, and till

  • [Backoffice] Added multi-store dropdown for optional organization filter

  • [Assistant] Camera scanner now only scans items visible in the viewfinder

2025-03-14

Fixed

  • Fixed error when creating a delivery with a non-physical freight item

  • Forced NON_PHYSICAL products to never create deliveries, even if set to be reserved

2025-03-11

Added

  • Implemented flowretail_cashdrawer protocol

  • New field hideNotAllowPurchase in product search to hide all products not allowed to be purchased from supplier

  • Network print support added

  • List products that are requested for purchase, ordered by name

  • Discount handling added for package products

  • New API endpoint: POST /tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/pre-payments

  • Implemented new webhook: ORDER_HANDLING_STATE_CHANGED

  • Initial component price now supported for package products

Improved / changed

  • Receipt email subject now uses tenant language

  • OrganizationFilter in search for purchase orders

  • Support for payment on invoice in Visma Business accounting report

  • Variant information is now printed on product labels

  • Order number is added to EHF file name

  • Visma Business accounting report now uses receipts instead of orders

Fixed

  • EHF XML creation bugs: Norwegian org. number and line price excluding VAT

  • PurchaseOrder: set expectedDeliveryDate to today when using AutoOrderProposal

  • Fixed package component price calculation

  • Customer contacts can now be created with a custom UID

  • Allowed actions are now properly set for package product order lines

  • reservationType was not set when creating order lines – now it is

  • Purchase: fixed wrong status after deletion and incorrect purchasedQty in product search

  • Package product itself is no longer deliverable – only its components are

  • Correct codepage is now used when printing exchange notes on ESCPOS printers

2025-03-04

Added

  • Ability to create VAT-Free sales

  • View, create, and edit printers

  • Select printer for a device

  • "Send invoices externally" tenant setting

  • Payment method parameters for invoice

  • ESCPOS: Open connected cash drawer

  • Verifone: Added context with timeout in Payment and LastTransaction

  • New API endpoint: GET /tenants/{tenantUid}/stores/{storeUid}/orders/{orderUid}/items/{orderItemUid}/addons

  • New LedgerType: CUSTOMER_LEDGER

  • New webhook: ORDER_RECEIPT_SETTLED

  • It is now possible to manually send an invoice through EHF using ehf-invoice --send

Improved / changed

  • Lines now exclude VAT when order is marked as vatFree = true

  • Package data now included in product response

  • Added externalmsn param in logTransaction for extended logging

  • Verifone: Added internal status POLLING to trigger GetSettlementStatusFromExternSource on every fetch

  • Verifone: Mapped DEVICEOUT to POLLING status

  • General improvements to search

  • Verifone: Updated handling of DeviceOUT status

  • Add, update, and delete of customer contacts now requires tenant access level Backoffice/Avdelingsleder

  • Custom parameters (e.g., reference number) can now be added to the invoice payment method

  • Response from order receipt search now includes additional fields

  • All users with access to a tenant can now search in purchase orders

  • Campaign codes are now case-insensitive

Fixed

  • External customer search now works reliably across all scenarios

  • Fixed pagination in organization list

  • Fixed pagination in stocktaking product control list

  • Verifone: added unique refServiceID for getLastTransaction

  • Campaign price and name now show on product details for store – implemented in ListCategoriesForStore and GetCategoryDetailsForStore

  • Fixed pluralization error and 500 error in purchase search

  • Delivery of NON_PHYSICAL products is now correctly handled

  • Fixed EHF XML creation: Norwegian org. number and line price ex VAT

Removed

  • Verifone: removed unused async payment/refund services and handlers

Last updated

Was this helpful?