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.

June 2026

Monthly summary / tl;dr

  • Shelf warmer report spotlights products with stock that just aren't selling.

  • Post-sale follow-up tracking — see and retry gift-card capture, digital activation, loyalty and receipt printing without redoing the sale.

  • Dintero terminal card refunds now complete on the physical terminal.

  • New DINTERO_CARD payment method drives Dintero's physical Seitatech terminals.

  • Receivements can be marked invoice-approved (fakturagodkjent) with a full audit trail and report filter.

  • Assistant keeps growing up — services, stock adjustments, digital product activation and permission-based access control.

  • EHF invoicing got a thorough cleanup — discount lines, package products, øre rounding and Danish/Finnish payment codes all now validate cleanly.

  • Receipts now carry the legal company name and org. number required for Norwegian sales receipts.

  • Accounting reports got several accuracy fixes — gift-card sales, settlement issuers and unmatched lines are no longer dropped or merged.

  • Adyen card payments are now protected against double-charging on POS retries.

  • Omnium click & collect orders now finish their pickup handling automatically when the shipment is ready to deliver.

  • New SUPPLIER_PRODUCT permission, and receiving goods no longer auto-overwrites a supplier's purchase price.

  • Saved addresses in salesClient now fills in, or lets you pick, the customer's saved delivery and invoice addresses.

  • Admin: search products by name, GTIN or SKU, mark receivements invoice-approved, choose Dintero as the till's payment terminal, set a Danish giro number, and validate extension credentials — and adding payment methods no longer needs super-admin.

  • Client: pick saved delivery and invoice addresses, manage customer contacts (add, update, delete), percentage pricing on purchase orders, browse product groups while selling, smarter search, and printing to any printer in your store.

2026-06-30

Added

  • Client: full customer-contact management — a customer-contacts entry in the main menu, a keyboard shortcut for the "create new" button in the customer and contact search dialogs, and options to update a contact straight from the search dialog or delete it entirely (with the right permission).

Improved

  • Client: the customer-contact search dialog no longer starts with an empty search.

  • Client: when the app needs to reload data after resuming, it now shows loading and error information instead of appearing stuck.

Fixed

  • Client: a store with no default warehouse could crash the purchase order confirmation and receivement dialogs.

  • Client: the app could report "no internet connection" when it actually had one.

  • Client: invoice payment and prepayment no longer stop when items with a serial number have already been delivered out — the order-status check was too strict.

  • Client: adding an addon that requires an order item reference now prompts for it instead of silently failing.

  • Client: the order details dialog now shows the customer contact.

  • Client: the product stock adjustment dialog now shows an error banner when submitting fails.

2026-06-29

Improved

  • Staff with the sales-order permission can now register a payment on a settlement — previously this needed the separate payment permission.

2026-06-25

Fixed

  • Updating a B2B customer now keeps its parent-company and department links in sync in Omnium — both the parent relation and the customer's own departments are pushed on every update, so department links are no longer lost.

2026-06-24

Improved

  • Omnium click & collect orders now complete their pickup handling automatically when the Omnium shipment reaches "ready to deliver", instead of staying stuck at "new".

2026-06-23

Added

  • Shelf warmer report — a new inventory report that surfaces products sitting on the shelf with stock but no recent sales, so slow movers are easy to spot and act on. In Admin it lists stock quantity and value with last sold/received dates, colour-codes the "Last sold" column (with a "Never sold" flag) and tints rows by severity, offers quick date presets (last 30/60/90/180 days, this year) alongside a custom date, filters by organization, store, supplier, brand and product group, opens a per-warehouse and supplier breakdown per row, and exports to Excel.

  • Post-sale follow-up tracking — you can now follow how a completed sale's follow-up steps are doing: gift-card capture, digital product activation, loyalty and receipt printing. A receipt shows an overall status for these steps, receipt search can filter on that status, and you can list each step on its own and retry any that didn't finish — without redoing the sale. Client now surfaces these steps and lets you retry a failed one.

  • Refund failed activations and un-issued gift cards — you can now refund a product line whose digital activation never completed or whose gift card was never issued, without the refund trying to activate the credit or reverse a card that doesn't exist.

  • New customer-operation permissionsCUSTOMER_DELETE, CUSTOMER_BATCH (the batch endpoint POST /tenants/{tenantUid}/customers/batch) and CUSTOMER_MERGE (POST /tenants/{tenantUid}/customers/{customerUid}/merge) split deletion, batch creation and duplicate-merging out of the general CUSTOMER permission so each can be granted separately. The built-in system backoffice and system administrator roles get them automatically; the system seller role does not, and other roles must be granted them explicitly to retain access.

  • Pickup messages now include the customer's name — the pickup note SMS template offers a {{.CustomerName}} variable, and Client fills it in where the template uses it.

  • Order PDFs now show the store bank account number when one is configured on the store or organization.

  • Client: the delivery dialog now uses the customer's saved delivery addresses — a single address fills in automatically, and when there are several you pick one when adding or changing the address (the same applies after looking up a customer).

  • Client: when adding or changing a sale's invoice address, you can now pick one of the customer's saved invoice addresses or enter one manually.

  • Client: percentage pricing on purchase orders — typing a percentage when editing a PO line's unit price sets the price to that percentage of the current price (10% → a tenth), while a negative percentage reduces it (−10% → price minus 10%); the same entry works in the add-product dialog's purchase price field.

  • Client: the product info overview now lists each supplier's purchase price (with supplier SKU) under the cost price — hidden by default, revealed per row or all at once with the cost-price shortcut.

  • Admin: till setup can use Dintero as the payment terminal, with a field for the Dintero terminal ID.

Improved

  • Dintero terminal card refunds now work end to end on the physical terminal. A DINTERO_CARD refund is started from a till in the same store as the original payment (with DINTERO_TERMINAL_ID configured) and the cardholder completes it on that terminal; refunds now send order line items so Instabank purchases and partial refunds work, with partial refunds scaling line amounts proportionally. Refund steps also write structured transaction-log entries, making failed refunds easier to diagnose in Admin.

  • RMA order emails and PDFs now show the RMA number in the subject line and document header instead of the return reason, making cases easier to find in email and attachments.

  • Service order report PDF now shows the order title as a bold lead above the work description.

  • Client: receivement history now shows the actual received date and the correct receiver name.

Fixed

  • SMS messages sent through LinkMobility now use the correct API host, restoring SMS delivery.

  • Gift cards now keep their card number — the number the customer receives and uses to pay was being cleared right after the sale completed, leaving the card unusable.

  • Orders with cancelled card payments can be parked again — a terminated settlement (for example after cancelling Adyen on the terminal) no longer blocks parking with "Order has settlements, cannot park."

  • Invoice PDFs now show the customer's invoice address when one is set on the order. Previously only the customer's main address was used, so invoices could show the name without street or postal code.

  • Updating a customer contact linked to more than one customer now works — it previously failed with "Could not find customer with UID".

  • Deleting a cash or other directly-captured payment from an order now actually removes it, so undoing it after settling takes effect (previously it looked deleted but stayed on the order).

  • Partial payment receipts are now rejected with a clear error when the selected lines total more than the remaining order value, instead of creating a receipt that exceeds the order total.

  • Order status no longer returns a server error when a serial number on a line is no longer in stock (sold or adjusted away after the order was created) — the POS shows a "serial number not available" message on the line instead.

  • Client: internal purchase orders between stores in different organizations no longer crash the list or show the store as "unknown" — the store name now resolves correctly.

  • Client: email address validation now allows uppercase letters.

  • Client: scrolling the item list on an open purchase order no longer jumps back to the focused line — keyboard navigation still scrolls the focused line into view, but manual scrolling is respected.

  • Admin: logout is now available from the sidebar even when you've been removed from all stores and tenant data fails to load.

  • Admin: printer settings shown as dropdowns can now be cleared by choosing "None".

Removed

  • Developer/ops: the FLOW_DINTERO_TERMINAL_URL and FLOW_DINTERO_TERMINAL_AUDIENCE_URL settings — the Dintero terminal now uses the shared Dintero URL config (FLOW_DINTERO_URL / FLOW_DINTERO_AUDIENCE_URL).

2026-06-17

Fixed

  • Accounting posting list: settlement issuers now always appear as their own line, even when no per-issuer account number is configured — previously issuers that fell back to the payment method's shared account were merged into a single line.

  • Gift card sales are no longer dropped from accounting reports when no gift card ledger account is configured for the store; the line is reported with an empty account instead.

2026-06-16

Added

  • New SUPPLIER_PRODUCT permission controls who can create, update and delete supplier products on a product. Roles that already had the SUPPLIER permission keep full access automatically.

  • Danish stores can now add a FIK payment block (kortart 71) to EHF invoices, so receivers can pay via FIK indbetalingskort — configured via a new Giro number field in Admin bank information (the 8-digit FIK creditor number), exposed as giroAccountNumber in the API.

  • Product search can now filter by product name, GTIN and SKU — surfaced in Admin as a search-type dropdown, and available as productName/gtin request fields in the API.

  • Klaviyo inbound webhooks — Flow now handles events pushed back from Klaviyo.

  • API: new order receipt task endpoints expose the status of post-sale steps (gift-card capture, digital activation, receipt printing) per receipt — a per-receipt task list plus a rolled-up state, so integrations can tell whether a sale's follow-up steps completed.

  • Admin: a "Validate credentials" button on store extensions checks that the saved credentials actually work (for extensions that support it).

  • Admin: till setup can now pick the payment terminal ID from a list fetched from the connected payment extension, with manual entry as a fallback.

  • Admin: the Receivements & Confirmations report gained an invoice-approved (fakturagodkjent) column — tick to mark/unmark each receivement (hover shows who approved it) — plus an "only not invoice-approved" filter that the Excel export respects.

Improved

  • Receiving goods on a purchase order no longer changes the supplier product's purchase price automatically — the price is now only updated when you edit the supplier product directly, so a delivery can't quietly move your cost prices.

  • Organization lists now respect access: users with tenant-wide roles still see every organization, while users with organization- or store-level access see only theirs.

  • Offer and order PDFs now include the customer contact.

  • The RMA order list gained reason and status filters, and a customer filter was added to the service order list.

  • Admin: adding payment methods no longer requires super-admin — anyone with the Payment Methods permission can now create an external method or add a system method from the dropdown.

Removed

  • The deprecated header-level originalPurchaseNumber and sortBy on the RMA orders response (the item-level originalPurchaseNumber is unchanged).

Fixed

  • Adyen card payments are no longer double-charged when the POS retries or polls status after a successful capture — completed settlements stay captured, duplicate callbacks are ignored, and a second payment on the same order is rejected.

  • Settlement rounding on orders paid in part is no longer counted twice.

  • Stock moves and adjustments now match serial numbers regardless of capitalisation — a serial entered in different casing is found correctly and stored in its original form.

  • A printer saved without a required setting (such as a label printer's label size) now falls back to that setting's default instead of being stored incomplete.

  • Partial tenant user updates (e.g. a language change) no longer clear the user's store access when storeAccess is omitted from the request.

  • Creating or updating a customer no longer fails with a misleading error when the Omnium sync fails.

  • Admin: opening a store whose name had a stray or trailing space could freeze the page — store names are now trimmed when saved.

2026-06-15

Added

  • Client: browse product groups while selling — a new Browse button in touch sale (and Cmd/Ctrl+B in keyboard sale) opens a dialog to drill down through product groups and their products, with search, breadcrumbs and a back action. Tap a product to add it straight to the order.

  • Client: a reason reference field on credit order items and RMA orders, shown when the selected reason requires one.

  • Client: option to send the order receipt after a prepayment.

Improved

  • Client: a cleaner app bar layout, and the login/onboarding screen got a refreshed background animation.

Fixed

  • Client: featured payment methods now respect the method's amount-input setting and the customer's loyalty points balance in the amount field.

  • Client: paying some lines on one receipt with an exclusive-use payment method no longer blocks paying the remaining lines on another receipt with an exclusive-use method.

  • Client: printing a receipt after a prepayment now prints the entire order, not just the single receipt.

  • Client: touch-mode sale now shows the quantity on an order line even when the line can't be edited.

  • Client: marking deliveries in the delivery list now updates the seen info.

  • Client: the app bar no longer overlaps the iOS notification bar, and the company-department name field is no longer wrongly read-only.

2026-06-12

Fixed

  • Accounting reports and exports: customers without a customer ledger number are no longer merged into one entry — previously all such customers were collapsed into the first one found, so their vouchers showed the wrong customer name and details.

  • Accounting reports and exports no longer silently drop sale lines without a resolvable account (no VAT code and no explicit ledger number) — the report now reflects every line on the receipt.

2026-06-09

Added

  • Receivements can now be marked as invoice-approved (fakturagodkjent), recording who approved and when — even after the receivement is received. The receivements report can filter on not-yet-approved, and the Excel export gained "Invoice Approved" and "Approved By" columns.

  • New DINTERO_CARD payment method that drives Dintero's physical Seitatech terminal. Configure via the existing DINTERO store extension with a new DINTERO_TERMINAL_PAYMENT_PROFILE, and set DINTERO_TERMINAL_ID per till. The existing DINTERO_PAYMENT_LINK flow is unchanged.

  • Assistant: new Services page with service creation and preview.

  • Assistant: stock adjustments in the warehouse section — withdraw stock, set a new quantity or a new cost price, alongside the existing move between warehouses.

Improved

  • Abandoned searches are now cancelled immediately — one broad search left behind by an impatient typist can no longer tie up the system for other users.

  • Package components are now locked across every client and integration: their price, quantity and discount are set by the package product and can only be changed by editing the package. Omnium receives the component lines as read-only.

  • An order's notification history from Omnium now shows the SMS and email messages actually sent to the customer — channel, recipient, subject and message — instead of internal notes.

  • Sales summary report: parked/confirmed orders and open offers are counted by creation date within the period, with footnotes explaining which figures use settlement date (revenue) and which use creation date (activity).

  • Receipts and receipt emails now display the organisation's legal name and org. number — required for valid Norwegian sales receipts — instead of the store name.

  • Gift card and store credit payment methods can no longer be mixed — a store-credit card is rejected when paying by gift card and vice versa.

  • VismaNet accounting export is now sorted by voucher number.

Fixed

  • EHF invoices and credit notes with a discount line are no longer rejected by the recipient — the discount is now sent as a proper line discount instead of a negative price (which PEPPOL forbids). Credit note VAT and totals also no longer overcount the discount.

  • EHF invoices for orders with a fixed package no longer fail validation (only component lines are sent, so totals match), and øre rounding is now listed as its own rounding amount instead of being folded into the VAT.

  • Fixed package products: components now always sum exactly to the package's total price on every order — no more øre drift making downstream invoices reject the order.

  • 24Seven accounting export now balances: each invoice and credit note includes its counter-entry against the customer interim account, and credit notes and in-store card payments are booked on the correct side.

  • VismaNet export: øre rounding is posted on the correct side, and customer payments are no longer duplicated into the transaction file.

  • Invoices financed through Two now show clean product lines with exact totals, and multi-rate orders are no longer rejected.

  • Returning to card on a split-tender sale no longer fails when the refund is higher than the original card amount.

  • Open items report: customers who prepaid the full order amount no longer disappear from the report — it previously understated how much stores owed their customers.

  • Sales summary turnover and related KPIs now count sales settled within the period (by settlement date) instead of by last-modified date.

  • Receipt PDFs for payment-only orders now show a payment receipt instead of the full invoice with product lines.

  • Trying to deliver an order line that can't be delivered yet now responds with a clear conflict status instead of looking like a server error.

2026-06-08

Added

  • Client: better printer handling — printing uses the printers configured on your device, with the option to select any other printer in your store.

  • Client: the order delivery dialog now lets you copy the order number by tapping it, select and copy text in the info section, see the customer's mobile number, and jump to order details via the new "Show order" button.

Improved

  • Client: shared search now starts at two characters and cancels outdated requests, so results no longer race each other.

Fixed

  • Client: printing or downloading an A4 PDF for a specific payment receipt produced the whole order document — it now fetches the actual receipt.

  • Client: in rare cases, search-as-you-type could show the second-to-last query as the final result.

  • Client: the order handling dialog now refreshes the customer's mobile number from the order when SMS is toggled on.

  • Client: in keyboard-mode sale, adding a company customer now asks you to select a contact and to update delivery addresses when deliveries are present.

  • Assistant: scanning in order handling now finds orders with handling state On hold.

  • Danish EHF invoices now use a payment method code Danish receivers accept ("Payment to Bank Account"); EUR invoices within SEPA still use "SEPA Credit Transfer".

2026-06-02

Added

  • Till open/closed status is now available — the API exposes a status field on tills, and Admin shows it.

  • Admin: new "Receivements & Confirmations" interactive report under Inventory & Warehouse — two tabs, rich filters (date, store, status, supplier, free-text across packing list / order references / PO numbers), a details dialog linking into the purchase order modal, and an Excel export that always matches what's on screen. The Purchase Orders Report is now its own card.

  • Admin: store settlement — the first cash deposit prefills its denomination breakdown from the counted registers.

  • Invoice PDFs from Norwegian tenants now include the legally required Foretaksregisteret: <org.nr.> disclosure.

  • Payment responses now include orderReceiptUid, linking each payment to the receipt it was captured on — no extra lookup needed.

  • Optional reason references on return order lines (returnReference) and RMA orders (reference), with requiresReference on RETURN reasons for client-side validation.

  • Admin: support for the new tenant extensions DIGITAL_PRODUCT, COMPANY_REGISTRY and PAYMENT_GATEWAY.

Improved

  • Orders with a prepayment can no longer have their customer changed or cleared, protecting bookkeeping attribution.

  • Bank account, IBAN and BIC/SWIFT are now validated when saving a store, organisation or supplier — malformed values are rejected with a clear error.

  • EHF invoices now pick the payment method code that fits the trade lane — "SEPA Credit Transfer" for EUR within SEPA, "Credit Transfer" elsewhere — so Danish and Finnish accounting systems parse them reliably.

  • Admin: the purchase order details dialog got a cleaner layout (info column + stacked address cards, note in a yellow strip, plus supplier reference, reserve-after date, discount and freight rows), and the purchase orders report now filters by created date.

  • Admin: redesigned role permissions modal with a searchable permission checklist, replacing the dual-list selector.

  • Admin: store settlement — a register can be closed with a different change amount than it opened with, with a warning when it differs from the opening float.

  • The "Sold, not delivered" report gained a total sales column.

Fixed

  • Danish EHF invoices now use the IBAN when both IBAN and a local account number are configured — Danish customers no longer get an unparseable 14-digit string in the payment field.

  • The requireRefundToSameMethod restriction is no longer applied when a return order's net flips positive.

  • Two crashes in the Omnium sync (missing line item references) are fixed.

  • Admin: Excel downloads no longer fail sporadically across Purchase Orders, Receivements, Sales Products, Open Items, Inventory, Order Intake and Products Sold Not Delivered.

  • Admin: the SKU field accepts / and other characters the backend allows; a typed-but-unconfirmed EAN is picked up on save; "Number of units per product" is no longer required for non-physical products.

  • Admin: payment method save no longer fails silently on older methods (e.g. cash), and validation failures surface a toast.

2026-06-01

Added

  • Client: the payment dialog now shows backend-provided informational messages in the payment methods list (e.g. when paying a subset of order lines).

  • Client: the show payments dialog has a print/email receipt action per payment, and order handling can set the On hold state (with a matching filter in the order handling list).

  • Assistant: support for digital product activation codes at the till.

  • Assistant: permission-based access control — features are gated on the user's permissions and appear locked when missing (stock adjustment requires Stock Management, goods receipt requires Receivement).

  • Assistant: goods receipt now warns when an entered quantity is unusually large — catching a barcode accidentally scanned into the quantity field before it's saved.

Improved

  • Client: company lookup when creating a customer now runs the duplicate check first, and customer company departments are managed from a dedicated departments tab.

  • Client: the print/download dialog can be scoped to a specific receipt, and receipt printing stays available even when the order isn't fully settled.

  • Assistant: "Print shipping label" is now always available in the order handling footer.

Fixed

  • Client: paying an invoice now prompts for receipt print/email, and available payment methods are correctly scoped to the selected order lines when paying a subset.

  • Client: quantity inputs for order delivery and stock adjustments now accept decimal quantities (e.g. 2,5 kg) — products sold in fractional units can be delivered and adjusted without rounding.

  • Client: the counting help no longer crashes when a quantity passes the thousands separator (46 000), and the customer edit dialog no longer crashes if the sale clears its customer while the dialog is open.

  • Client: payment favorites are hidden when the order has a negative remaining amount.

Last updated

Was this helpful?