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.

August 2026

Monthly summary / tl;dr

August so far:

  • Assistant: Budget under the "More" page — actual sales against budget for the current month and year to date, with a store picker and a day-by-day breakdown.

  • Assistant: Partial payment — settle just some of the lines on a multi-line order, and then keep going with the rest.

  • Products report can now split the product group hierarchy into its own columns, for grouping and pivoting on a single level.

  • Cross-store tills — a till can now settle an order that was registered at another store in the same organization, on top of already being able to reserve and receive goods from other stores directly on a customer's order.

  • EHF invoices can carry the buyer's own order number and the framework agreement number via two new settings — and they no longer send our own voucher number where it could never be matched.

  • Second-hand sales under the VAT margin scheme — flag a product in Admin to calculate VAT on profit instead of sales price, margin lines are marked "m" on printouts, and their revenue and VAT are booked on two new accounts per store (set them before your next accounting export).

  • Returns can be spread over several receipts, and a refund can never give back more than the customer actually paid on that payment method ✋

  • Product prices can be kept without VAT for B2B tenants, with Flow adding VAT on top when a product goes onto an order. Perfect for B2B-companies using Flow Retail.

  • Quick totals and seller reports are now one tabbed dialog with separate sales and order-intake views.

  • Percentage payments now calculate exactly right — no more rounding errors when charging a percentage of an order.

  • Required fields for customers and contacts are configurable per tenant and per customer type, and duplicate checks catch more matching e-mails, more reliably.

  • Gift cards and packages are easier to handle mid-sale — pay them on their own line, and print or send them the moment they're paid, even before the rest of the order is settled.

  • The shelf warmer report now breaks stock down by warehouse and the day it arrived, so you can see exactly how old a batch is 🧓🏻

  • NEW! Inter-store trade — stores in the same chain can buy and sell goods from each other, with the purchase order and the matching sales order kept in sync all the way from ordering to receiving the goods. Note that there are still some bits and pieces especially in the clients that needs to be implemented before this functionality is fully available.

Working with the API? See For developers at the bottom 🤓

2026-08-25

Added

  • Products report can now split the product group hierarchy into its own columns — turn on the new setting and the export gains two extra columns per group level (its ID and its name) on the far right, so you can group and pivot on a single level instead of parsing the combined path. The existing combined column is unchanged, and the report looks exactly as before with the setting off.

Fixed

  • A click & collect order from Omnium no longer shows up with the store's own address as the customer's. This happened whenever the order carried no invoice address; the order now uses the address Flow already has for the customer, or the name and phone number on the order when there is none.

  • Products that can only be sold together with another product can now be taken back in a return.

  • Invoice is no longer offered on a payment that both sells and returns items, since an invoice can't settle that. The till now says to register the sale and the return separately.

  • An order that both sells and returns items can now put either half on its own receipt, regardless of whether the order's total works out positive or negative.

  • Omnium: a customer Omnium already has is no longer overwritten with a copy built from what Flow knows alone — Flow now asks Omnium for the customer by its own ID first, and only creates one when Omnium confirms it has none. Sub-department relations are now written to the parent company correctly instead of getting lost. Customer syncs to Omnium no longer fail across the board for customers Omnium doesn't have yet, and a contact is no longer created a second time in Omnium just because a lookup came back unclear — only when Omnium confirms it truly has none.

  • The Total Cost column in the purchase order Excel export is ... well, correct, again.

  • Cancelling a payment on a Dintero terminal no longer leaves the order stuck mid-payment 😶‍🌫️ Cancelling on the terminal — or a payment it declines or that fails outright — now puts the order back to unpaid - just so it can be paid again.

  • Administrators granted device access through role assignments can now create and update devices — this was being refused even though their role granted the access.

  • Ordering two or more units of a product that requires a serial number on receive now splits correctly into one line per unit, so webshop orders containing one can be transferred again; a reference sent with the line stays on the first of the split lines.

  • Crediting two or more units of a serial-number-tracked product now produces credit lines, instead of positive sale lines.

  • A rare failure at the very last step of saving a change is now reported as such, instead of silently succeeding while nothing was actually saved.

  • A Nets or Swish payment confirmation that fails to save is no longer reported to the payment provider as successful, so the provider can now retry it instead of treating the payment as settled with nothing to correct it.

  • A new service order is now confirmed only after it's saved. Previously, a confirmation that failed to send could undo the whole order, and the reverse could also happen — a customer being notified about an order that then failed to save. Creating the order now succeeds independently of whether the confirmation can be sent, and customers are only notified about orders that actually exist.

  • Dintero payments now show the correct card type and masked card number. Terminal payments used to be filed under one card issuer instead of Visa, MasterCard and so on, and payments completed by a status check showed no card type at all.

2026-08-18

Added

  • Second-hand goods sold under the VAT margin scheme are now booked on their own accounts — every store gets two new accounts on its accounting configuration (and on the account numbers screen): one for margin-scheme sales revenue, one for the VAT calculated on the margin. Set both on every store that sells used or refurbished goods before your next accounting export, or the amounts land on the error account. This applies to the accounting report, Navision, 24Seven and VismaNet; Unimicro, VismaBusiness and XLedger still export these lines as ordinary sales.

  • Margin-scheme lines are marked as such on printouts — order confirmations, invoices and receipts show an "m" in the VAT column instead of a VAT rate, and the note explaining the scheme carries the same "m" so it reads as the explanation for those lines. These lines are deliberately left out of the VAT summary, so they no longer point at a summary row that isn't there.

  • Product prices can be kept without VAT — a new "Product Prices Excluding VAT" setting on the B2B module, for tenants whose product prices are stored without VAT. With it on, VAT is added on top of the price when a product goes onto an order instead of being calculated out of it; the order line still carries the price including VAT, so settlement, accounting and EHF are unaffected. Receipts also show the unit price without VAT on every VAT-carrying line, while everything else keeps working on the price that is on the product — price labels, for instance, still print it unchanged. Before turning it on, make sure every VAT code in the product catalogue has a VAT rate.

  • Assistant: Budget under the More page — an overview of actual sales against budget for the current month and year to date, with a store picker and a report showing budget versus actual per month, plus a day-by-day breakdown when you tap into a month.

  • Assistant: Partial payment — paying an order with more than one unpaid line can now settle just some of the lines, put on their own receipt. The seller is then offered the receipt, exchange note and gift card actions for what was just paid, before returning to the order to carry on with what's left — in one payment or several. Backing out before anything has been paid releases the lines again.

  • Assistant: Payment method selection now explains restrictions up front — for example, when a refund must go back to the same payment method as the original payment.

  • Assistant: Pickup messages now include the customer's name, where the template uses it.

  • Assistant: Customer number now shows in customer details.

Improved

  • Assistant: The create contact dialog now enforces your tenant's required contact fields (e-mail, mobile, address, postal code, city) instead of always treating them as optional. Address fields appear automatically when required, or can be added with a button otherwise.

  • Card terminals get more time to answer — a request to an Adyen terminal now waits up to 30 seconds instead of 10, so a slow answer no longer ends the payment attempt.

Fixed

  • A return can now be taken on several receipts. Every partial receipt on a return was rejected with a message saying the receipt total exceeded the remaining order value, even when it was well within it, so the whole return had to go on one receipt. A receipt larger than what the return has left is still rejected, and the amounts in that message no longer lose the øre.

  • A refund can no longer give back more than the sale has left on that payment method. Earlier refunds now count against the limit — whether they were made on the sale itself or on an earlier return of it — and the sale counts once instead of once per returned line, so a return with several lines can no longer give back several times what the customer paid. The limit matches what the payment method list reports.

  • A refund method that cannot be used is now stopped when you pick it, instead of being accepted and then failing at the payment provider: refunding to a method the sale was never paid with, or tying a refund to a single payment when the sale was paid several times with the same method. Terminals that can read the card handle the latter themselves; otherwise you are asked to pick another method.

  • An order finished by confirming it is now closed properly — it counts as settled, gets a voucher number, its lines can be credited, and its sales reach the SAF-T export and the turnover report instead of being posted to accounting as delivered but not paid. Lines can no longer be changed on a finished or cancelled order. Orders finished this way before the change keep their old figures.

  • An order stays open while the customer still has money left on a prepayment, whether you are confirming it or paying its last line — until the remainder is paid out or used. A cancelled prepayment no longer blocks confirming the order at all.

  • Money handed back from an unused prepayment is no longer counted twice in the books — it was written to the rounding account on top of being paid out as change.

  • Changing the customer on a VAT-free order no longer raises the line prices by the VAT rate, which left every line that had not been priced by hand too expensive. This affects all tenants, not only those keeping prices without VAT.

  • Order printouts report line status correctly. A package no longer carries a status of its own claiming it was handed out — its contents are listed as separate lines, each with its own status and quantity. Services, fees, freight and other non-stocked lines are no longer marked as delivered from the moment they are added; a line says nothing until it actually has been handed out. The status column is no longer left blank for lines waiting to be ordered from the supplier, or once part of the order has been paid. And an order confirmation in English no longer marks a paid line as paid twice.

  • A receipt for a delivered line keeps the delivery details — address, recipient, carrier, and the date it was handed over on a line of its own — so reprinting a customer's own receipt for a home delivery no longer gives them a document that looks like a counter sale. The planned delivery date still disappears once the goods have been handed over, and receipt-printer output is unchanged.

  • A line reference now prints on the settled receipt too, not only on the order receipt.

  • The Finnish payment barcode carries the due date when the invoice is printed from the order, not only from a settled receipt.

  • The activation details for a digital product — activation slip, PIN and serial number, license key, installation address and instructions — now appear on the invoice and the order confirmation as well as the receipt, including the notice shown when an activation has not gone through.

  • A package takes its cost price from the products it contains, rather than from its own sales price without VAT (which showed up once an order had been parked and opened again), and crediting a package keeps the cost it was sold at instead of what its contents cost today.

  • A package now shows how many of it are reserved — reserving something the package needs lowers how many of it are left, whether it was reserved as part of the package or on its own. The figure used to stay at zero however many were sold.

  • A shipment from another store no longer arrives with an expected arrival time that has already passed — only the dispatch time is filled in, and whoever receives the goods can add the arrival date if it is worth recording.

  • A supplier that represents a store is now shown as such in the supplier list, the supplier search and supplier payouts, the same as when the supplier is opened on its own.

  • Omnium: a customer whose lookup fails is no longer treated as missing and rebuilt from what Flow alone knows — the sync stops and reports the failure, leaving the customer in Omnium untouched until the next attempt. Syncing a private customer or a business contact person also keeps tags set elsewhere, and leaves alone the parts of the address Flow does not hold itself (apartment and street number, region, location name, and the address's own e-mail and phone).

  • Client: the payment dialog no longer reports post-settlement tasks as unfinished the moment you settle — it rechecks once first — and no longer locks up when the order's payment methods cannot be fetched; you now get the error and a retry button.

  • Assistant: No error banner right after login any more on tenants with no order handlings configured.

  • Assistant: Deleting a purchase order line with receivements now explains up front that the line can't be deleted, instead of a technical backend error; if the line is only linked to a confirmation, it says to remove the confirmation first.

  • Assistant: Order search when creating a service now also finds confirmed orders with partial payment or delivery, not only fully settled ones.

  • Assistant: Refunding a prepayment on a zero-total order now works — the option used to disappear entirely; it now shows whenever the order still has prepayments left to refund, and goes straight to the refund flow (a new prepayment still isn't possible on a zero-total order).

  • Assistant: Send gift card is now available as soon as an order's gift card is paid and activated, even if the rest of the order isn't settled yet.

  • Assistant: Print exchange note is now available for partially settled orders too, listing just the paid items, instead of requiring the whole order to be settled.

  • Assistant: A clear, translated message now explains when you lack permission for an action, and that you should contact an administrator, instead of a raw technical error.

2026-08-11

Added

  • EHF invoices can now carry the buyer's own order number and the agreement number a sale was made under, via two new optional settings, "Order Reference Key" and "Contract Reference Key" — so the recipient's system can match the invoice to their own order and track spend against framework agreements.

  • A till can now settle an order that was registered at another store, as long as both stores belong to the same organization.

  • Message templates can now insert the products in the order, the customer's name, mobile number and e-mail, and the store's address, phone number and e-mail; delivery confirmation SMS templates gain the store fields too. A new "Order arrived at store" SMS template type lets that message be customised per tenant instead of being fixed.

  • Admin: second-hand sales — products can be marked to calculate VAT on profit instead of sales price (the VAT margin scheme) when creating or editing a product; the setting carries over when duplicating a product.

  • Admin: package products now show a copy icon next to each component's SKU in the Slots tab, for copying it to the clipboard.

Improved

  • The shelf warmer Excel export now breaks stock down by warehouse and the day it arrived, instead of one summed row per product, so you can see how long each batch has been sitting (oldest stock first). New "Store", "Warehouse", "Stock In" and "Days Since Stock In" columns show this; "Stock In" counts any movement that puts stock back on the shelf — a return, a stock count, an import, an RMA, a manual adjustment or a store transfer — not only goods receipts, so it can reset for part of a batch when only some of it moves. A report asking for more than 100,000 rows is now rejected with a clear message instead of taking minutes to build a file too large to use.

  • Error messages for a missing permission are now clearer — they address you directly and name just one permission when several would work.

Fixed

  • Orders imported from Omnium keep the customer's name when Flow writes the order back to Omnium.

  • The card terminal slip is no longer printed twice on a receipt.

  • Error messages in Nynorsk now show properly instead of falling back to English.

  • Operators with the service order permission can now add, edit and remove attachments on a service order without also needing the asset permission.

  • Gift cards printed on a receipt printer no longer come out in oversized text.

  • Deactivated users no longer show up in the device login list — only active and not-yet-activated users are offered.

  • An SMS the provider reports as delivered, but bills for later, is no longer wrongly shown as failed.

  • Admin: tenant settings — the price list and default customer group can now be cleared back to "None".

  • Admin: tenant settings — the price list dropdown is now translated instead of always showing Norwegian.

Removed

  • Printer and app settings that used to live on the till (receipt/barcode printer, touch mode, auto logout, sale-stop-at-delivery) now live only on the paired device — make sure they're set up there. A till whose device has no printer of the type it needs will fail to print until one is added on the device.

2026-08-07

Added

  • Quick totals and seller reports are now combined into one tabbed dialog with separate views for sales and order intake; the seller report defaults to your device's store and can be switched to another store from the report.

  • Duplicate contact check — when your tenant turns this on, a contact can no longer be saved with an e-mail address another contact already uses.

  • Customers can now have a customer number.

  • Prepayment completed view now has its own A4 print button for the prepayment receipt; the view's existing A4 button is relabelled, since it always printed the full order.

  • Price list dialog now shows a "to" date for prices that have an end date, plus a switch to show only currently active prices; the item code is now shown together with the product name and group in a single column.

  • Contact and customer forms now enforce exactly the fields your tenant requires — mobile, e-mail, address, postal code and city can each be required separately for private customers, companies/B2B, departments and contacts (name, company name and VAT number stay required as before). Address fields appear automatically when needed or already filled in, and can otherwise be added on demand — including for departments, where they used to be hidden even when required.

Improved

  • Downloading a file on Windows now asks where to save it, instead of always using the Downloads folder.

  • The product group browser in sale views now only lists products once you've drilled down to a group with no sub-groups.

  • Customer type (private, company/B2B) can no longer be changed by accident from the customer overview; changing it now happens deliberately, from the edit customer dialog.

  • The Client app on iPad now requires iOS 15 or later.

  • Duplicate customer check now also catches a matching e-mail address for private customers, not just a matching mobile number.

Fixed

  • Percentage payments now calculate the exact amount — entering a percentage with decimals no longer rounds the settled amount incorrectly, and paying with a percentage still typed into the amount field is blocked until it's converted (press Enter), so you can't accidentally charge the percentage number itself as an amount.

  • Duplicate customer check now runs reliably: departments are no longer wrongly checked against their own parent company, the check runs every time a customer is created (not only when the value was typed in fresh), and copying an edited address onto a customer is now actually checked instead of being compared with itself.

  • Gift cards and exchange notes for a partially paid receipt are now available as soon as that receipt is paid — printing the receipt (thermal and A4) is offered too, instead of waiting for the rest of the order to be settled.

  • Sending an order confirmation by e-mail is available again for orders that aren't fully settled yet (for example a confirmed order with a prepayment); invoices you send externally still don't offer e-mail here.

  • The order details view no longer shows a delivered checkmark on lines that were credited without ever reaching the customer, and a line's credit link now says "crediting started" instead of "credited" while the credit is still in progress.

  • Saving a customer whose ledger number couldn't be stored (for example if you lack the accounting permission) no longer looks like it failed — the customer is saved, and a clear warning explains that only the ledger number was skipped.

  • Order search when creating or changing a service now also finds confirmed orders with a partial payment or delivery, not only fully settled ones.

  • Deleting a purchase order line linked only to a confirmation now explains that the confirmation must be removed first, instead of a misleading error about receivements.

  • The manual invoice payment button in order details is available to tenant admins and to tenants without granular permissions, without needlessly requiring the payment permission.

  • Serial numbers: the deliver-out and order handling dialogs no longer block sale-only products against warehouse stock they don't need, ask for a warehouse before checking a serial number, or show a generic "not in stock" message when the real problem was a network or server error.

  • Receiving a purchase order for items reserved on customer orders no longer offers (and pre-selects) sending an SMS notification when the tenant doesn't have the SMS extension — that used to block confirming the receivement with an error.

  • Changing the warehouse on a deliver-out line now updates the stock count shown in the order right away, instead of only after closing and reopening it.

  • The prepayment button no longer disappears on a zero-total order in touch mode — you can still refund a prepayment there — and keyboard mode no longer offers a new prepayment (which isn't possible on such an order) instead of only the refund.

  • Print and download got smoother: dialogs (print/download, service order, purchase order, internal purchase order, RMA) now show a loading indicator while a file is generated, the "saved" confirmation appears only once the file is actually written — not before, and not if you cancel — and on macOS the save dialog remembers the folder you last used instead of always suggesting the desktop.

2026-08-04

Added

  • Inter-store trade — a new extension that lets stores in the same chain buy and sell goods from each other. It has a setting for a percentage markup added to the selling store's price, and one for whether stores in different organizations may trade with each other. A supplier or a customer is marked as representing a store, which is what connects a purchase in one store to a sale in the other.

  • A purchase from another store stays in sync with that store's sale. When a store orders goods from another store, the selling store automatically gets the matching sales order, lines added, changed or removed on the purchase are mirrored on the sale, and both sides show what they are connected to. A purchase order placed with another store counts as placed rather than as a draft, since the selling store already holds the matching order and there is nobody to send it to.

  • Reserve goods another store has on the way in — staff can look up which other stores have a product incoming and reserve from it directly on a customer's order, creating the whole chain between the stores in one action. The lookup only offers goods a store has ordered from a real supplier, not goods it is itself receiving from another store, so nobody ends up as an unintended middleman.

  • Shipments between stores land in stock by themselves. When the selling store ships the goods, a receivement is prepared at the buying store carrying the selling store's order number, the shipment's tracking reference and when it was sent, so several incoming shipments on the same order can be told apart. Once the goods are received there, the customer's order line becomes ready for pickup as usual. It works the other way round too: when a store such as a central warehouse sells goods to another store and ships them, the buying store's purchase order and receivement are created automatically on delivery.

  • Worth knowing about inter-store trade: each purchase line is connected to exactly one sales line, so products handled one at a time — those needing a serial number, or that cannot be ordered in a quantity — should be ordered with one unit per line between stores. Products a store is not allowed to sell cannot be ordered from another store, and fixed packages are not supported between stores.

Improved

  • The shelf warmer report judges standing stock per warehouse instead of per product. A product used to disappear from the report as soon as one of the selected warehouses had moved its stock; now only that warehouse drops out, so stock standing still in one store is reported there even if another store sold the same product yesterday. Quantity in stock, stock value, last received and last stock change count only the warehouses that qualify, and last sold counts only sales in the stores that own them — so the date can no longer fall after the point you asked about.

  • Setting a customer's ledger account number now only requires the customer permission.

Fixed

  • The duplicate check on contact email addresses now runs, so a tenant with the setting switched on can no longer end up with two contacts sharing an email address.

  • A product is only on campaign when the price list holds a price that is valid right now. Expired or not-yet-started prices could flag a line as being on campaign with no valid price to apply, leaving it at full price with a broken discount, or keeping a discount from a price that had already expired. Any leftover discount on such a line is removed.

  • Gift card and package lines can now be paid on their own, so they can go on their own receipt like any other line.

  • Changing the price on a package no longer reserves stock for the package itself — the stock belongs to the component lines. Lines that already carry such a reservation are not corrected by this change.

  • Receipt transfers to Omnium no longer get stuck when Omnium does not know the customer. The customer is created in Omnium and the transfer retried once before the job is marked as failed.

  • Orders imported from Omnium are no longer rejected for a missing name. A company name carried in Omnium's organization field is now used, a full name held in one field is split into first and last name, and an order carrying nothing but a phone number is created with a customer address and no invoice address instead of being turned away.

  • A user's "last modified" in Admin no longer changes on login — it now only moves when the user record is actually edited.

For developers

API and integration changes released in August.

Added

  • New optional EHF service settings Order Reference Key and Contract Reference Key, alongside the existing Buyer Reference Key.

  • Message templates gain variables for the order's products, the customer's name/mobile/e-mail, and the store's address/phone/e-mail.

  • Inter-store trade: reservation, incoming-purchase lookup and purchase/sales coupling endpoints. Quantities exchanged between stores use a hundredths scale, and each purchase order line couples to exactly one sales order line.

  • The product turnover report (POST .../reports/products) accepts an optional includeDeliveryCostAdjustments boolean. When true, the Excel export adds a cost-only row after each product row where the delivery cost per unit (at the time of warehouse picking) differs from the sale cost price and the delivery happened on a later calendar day than the sale. The extra rows are included in the column sum; all other numeric columns stay empty on them. Used to verify cost figures reported in the R9 accounting report.

  • POST .../pricelists/{pricelistUid}/prices/search accepts optional fromDate and toDate in the request body; only prices whose validity period overlaps the range are returned, so clients can ask for active prices without filtering client-side. Either field may be omitted, and leaving both out keeps the existing behaviour.

  • New public GET /spec endpoint serving the OpenAPI specification the deployment was built with. Anonymous callers get the document with internal operations stripped (matching the public Stoplight export); a valid token whose claims carry super_admin gets the full specification, internal endpoints included.

  • Customer search takes hasMobile and hasEmail — presence filters on whether the customer has a mobile number or an e-mail address at all, rather than matching a specific one.

  • The available payment methods on an order now carry a presentation object holding the resolved presentation values: whether the method can be used for what is being settled and why not, whether the card must be present, and the highest and lowest amount it can settle. Clients must adopt it; till behaviour is unchanged until they do.

  • Margin-scheme accounting keys added to AccountingConfigKeyENUM and to the account-number schemas — one key for margin-scheme sales revenue, one for the VAT calculated on the margin.

  • New B2B module setting Product Prices Excluding VAT: with it on, VAT is added on top of the product price when a line is created. A client-supplied price counts as manually set and stays without VAT, so clients must let Flow look up the price rather than sending it back; every VAT code needs a VAT rate, since a service order line now requires one.

  • Supplier list (GET .../suppliers) takes an active boolean filter: true returns only active suppliers, false only inactive ones, omitted returns all as before.

  • The product turnover report accepts includeProductGroupLevels. When true, the Excel export adds two columns per product group hierarchy level (uid and name) after the existing combined product group column; behaviour is unchanged with it off.

Changed

  • GET /orders/{uid}/status and POST /orders/{uid}/verify now resolve an order registered at another store within the same organization; PUT /orders/{uid}/status still requires the order's own store. Requesting a store that doesn't exist now reports "store not found" instead of "order belongs to a different store."

  • EHF invoice/credit note order reference now carries the buyer's mapped order number (or NA if unmapped) instead of the internal voucher number; the sales order reference still carries Flow's own order number alongside it. A credit note's contract reference no longer repeats the order number unless an agreement number is mapped.

  • Shelf warmer export: new Store, Warehouse, Stock In and Days Since Stock In columns replace Categories and Last Received; Last Sold and Last Stock Change are now scoped to the store/warehouse being reported. Export rejected above 100,000 rows.

  • Operators with the CUSTOMER permission may now update ledgerNumber on a customer.

  • Adyen card terminal requests now time out after 30 seconds instead of 10.

  • Margin-scheme order lines are posted to their own revenue account with the VAT on the margin booked separately, instead of as ordinary revenue on the account for their VAT code (accounting report, Navision, 24Seven, VismaNet). Unimicro, VismaBusiness and XLedger still export them as ordinary sales.

  • Postmark delivery callback endpoint moved from the public to the internal tag (URL unchanged).

  • Device create/update endpoints now authorize on the DEVICE permission instead of the legacy role field, matching the rest of the API.

Fixed

  • Creating a tenant user with the INTEGRATION account type, and creating an integration token for a tenant user, both work again — they previously failed with a 500.

  • Gift card and package order lines report the PAYABLE allowed action while they are not yet on a receipt.

  • Package order lines no longer set reservedQuantity to the ordered quantity on any line update. Existing lines holding a stale reservation are not corrected by this change.

  • Adding recipients to a broadcast skips a duplicate address instead of failing with an internal error, whether the address repeats within the request or is already on the broadcast. Moving a recipient onto an address another recipient already has reports a conflict.

Deprecated and removed

  • Till: receiptPrinter, barcodePrinter, appSettings (touchMode, autoLogout, saleStopAtDelivery), deviceIdentifier and regularPrinter fields removed. Read printer and app settings from the paired device instead (TOUCH_MODE, AUTO_LOGOUT, APP_SALE_STOP_AT_DELIVERY, device identifier). Sorting the till list by any of these fields now returns an invalid sort field error.

  • AvailableOrderPaymentMethodResponseSchema: visibility, position, minimumPaymentAmount and amountInput are deprecated in favour of the same fields inside presentation, where they hold the resolved values. They are still populated and are scheduled for removal in November 2026.

Last updated

Was this helpful?