Changelog

Follow new updates and improvements to Upmind.

August 8th, 2026

Notifications get personal this month: choose exactly which alerts land in each of a client's email addresses, and let recipients manage or unsubscribe in one click, straight from the email.

Domains get smarter too. Upmind now checks with the registrar before every renewal invoice — if the domain's gone, the order cancels itself. Plus new support for Ascio, and Safeweb dark web monitoring to keep client domains and inboxes watched.

For brands on Cart 2.0, one-page checkout is now a flow you choose, with five new settings to shape the basket and checkout your way. If you still haven’t upgraded, contact support@upmind.com today.

Billing & Invoicing:

  • NEW - Allow reactivating a contract with a past due date

  • NEW - Automation override to allow cancelling overdue invoices

  • NEW - Razorpay checkout now prefills billing details & supports guest email

  • FIX - Fix swap payment functionality when there's been a fluctuations in the exchange rates

  • FIX - Bug loading payment options when paying a shared invoice


Admin

  • NEW - Choose which notifications are sent to each of a client's email addresses

  • NEW - Recipients can manage or unsubscribe their notifications straight from an email link

  • NEW - API Admin area endpoint to generate fallback 2FA code for a client

  • IMPROVEMENT - Clearer labelling on contract product filters

  • IMPROVEMENT - Better error messaging when setting is enabled to prevent clients from updating company information

  • FIX - Address editing permission issue for multi-brand orgs

  • FIX - Custom fields missing when loading a basket


Provisioning

  • NEW - Domain status sync & automatic order cancellation: Upmind asks the registrar whether a domain is still held before the next renewal invoice goes out — and cancels the order automatically when it isn't

  • NEW - Safeweb (Auto Login Category provider) - Dark Web monitoring for business domains or emails

  • NEW - Now supporting Ascio, domain name provider

  • NEW - View a domain's cancellation logs from the Domain Names section

  • IMPROVEMENT - NameSilo fetch domain privacy attribute from provider

  • IMPROVEMENT - CentralnicReseller use provider's Paid Until date to manage domain expiration date

  • FIX - NameSilo update registration process to prevent issue with contacts missing from newly registered domains


Cart 2.0

One-Page checkout

One-page checkout is rebuilt as a flow a brand selects, and the behaviour that used to come with it — editable basket items, the itemised summary, the promotion field — becomes brand configuration any flow can use.

This release adds five new settings that let you tailor how the basket and checkout behave. All of them ship with defaults that preserve your current setup, so nothing changes until you choose to change it.

  • basketItemConfig is read-only by default. Switch it on to let customers edit basket items in place — changing the quantity, term, options attributes or provision field values leaving the basket

  • basketSummaryDetails is hidden by default. Enable it to itemise each product's configuration in the order summary, giving customers a full breakdown of what they've selected

  • basketPromotionCode is visible by default, showing the promotion code field on the basket. Hide it if you'd rather not surface discount codes at that point in the journey.

  • basketAction is also visible by default, displaying the basket shortcut in the header. You can turn it off for a cleaner header or where a persistent basket link isn't wanted

  • productAutoUpdate is off by default. Turn it on to send products straight to the basket, skipping the configure step — useful for catalogues where products need little or no configuration. If a configuration DOES fail to meet the requirements, the customer will be redirected to the configure page for the product, before it can be added to the basket

The promotion code field on the checkout page still reads the existing
ui.checkout.hide_promotions_field setting, so no brand changes are needed on upgrade.

There is also a new layout template: "@context.template": "inset", that is applicable to the basket, auth and checkout pages but can be set globally in brand settings meta/.

Two changes to check on upgrade:

  • The flow override (brand, category and product) and the ?flow= link parameter are gone. The flow comes from ui.checkout.checkout_flow alone

  • Set ui.checkout.checkout_flow explicitly. stepped and one_page continue to the basket page after a product is added; with no value set the journey now goes straight to the checkout page, where it previously went to the basket

Other work:

  • FIX - Error for shared invoices in Cart 2.0

July 14th, 2026

  • This month's headline update is bulk actions for support tickets — a faster, simpler way to manage support at scale. Close, mark as spam, reassign staff, change status or department, or add notes across multiple tickets at once.

  • Nicky payment gateway is now available on Upmind, for effortless crypto payment processing.

  • We continued to improve login security, with optional pre-checkout email verification and configurable forced password resets.

  • Finally, in-app help got an upgrade — support documentation now runs on a new API for quicker, more searchable answers.

Below are the full details of this month’s changes.


Billing & Invoicing

  • NEW - Nicky payment gateway is now available!

  • NEW - Custom due-date day (1–28) for consolidated invoices per client

  • NEW - Unlocked regeneration of paid invoices, with a confirmation/warning

  • NEW - Option to apply pro-rata modifications, without impacting existing invoices

  • NEW - Paid (Clearing) status for invoices paid via specific offline provider(s)

  • IMPROVEMENT - Warning shown when modifying a product that results in product options being removed

  • IMPROVEMENT - Greatly improve payment log performance

  • IMPROVEMENT - Use client's default address if no company is present on CN topups

  • IMPROVEMENT - Recalculate manual consolidation amounts based on the exchange rate

  • IMPROVEMENT - We now collect a document number for DLocal payments


Admin

  • NEW - Bulk-updates for multiple client support tickets at once — close, mark as spam, change status or department, assign/unassign staff, or add a note or message

  • NEW - Allow read-only staff to leave internal notes on tickets

  • NEW - Optionally require clients to verify email (via 2FA modal) prior to checkout

  • NEW - Force password reset option available (at a configurable interval), for clients and admins

  • NEW - Setting to prevent change of country field, for client addresses

  • NEW - View client and staff login attempts, including IP addresses

  • IMPROVEMENT - Refactored client product search for quicker loading time

  • IMPROVEMENT - Optimized contract product unique service identifier queries

  • IMPROVEMENT - Surfaced the owner of delegated invoices within admin area lists, for easier management

  • IMPROVEMENT - Cancelled and lapsed contract products are visually dimmed for easier identification

  • IMPROVEMENT - Support documentation directly within the app is now powered by a new API for improved, more searchable knowledge documentation

  • FIX - client notifications should always go to the default email set in the client account, for password reset, client verification, or password setup emails


Provisioning

  • IMPROVEMENT - Provisioning settings group repositioned within admin settings

  • FIX - Quantity of mailboxes not updating charge amount for TitanMail

  • FIX - Provision functions not triggering from hooks


Cart 2.0

  • NEW - Guest checkout - Customers can now complete a purchase without creating a full account, where the brand allows it. A "Continue as guest" option is offered on the sign-in / register screens whenever guest checkout is enabled on the brand and the basket contains only one-time products (recurring products still require a full account). Guests can optionally provide an email for the receipt, and can upgrade to a full account at any point — before or after placing the order — keeping their order history attached.

  • NEW - Enforce email verification at checkout - Brands can now require unverified customers to confirm their email address before an order can be placed. When the setting is enabled, customers signing in with an unverified email are taken to a short verification step that accepts the 6-digit code from their inbox, with the option to resend the code or return to the basket and pick up later. Once verified, checkout continues as normal; if the setting is off, nothing changes for the customer.

June 4th, 2026

Highlight: “Smart Suggest” Domain search

Better Results, Faster: Meet “Smart Suggest”. We’re thrilled to roll out Smart Suggest, a major upgrade to the Upmind domain search experience. By optimizing how results are generated, we’ve made the search process snappier and the suggestions more intuitive for your customers.

We've already flipped the switch for you, but you’re still in the driver’s seat. Under Settings > Provisioning, you can toggle between two world-class search engines: NameStudio or DomainEngine.

Please note: This is only available with Cart 2.0. Contact support@upmind.com to upgrade!


Billing, Invoicing & Payments:

  • IMPROVEMENT - Scheduled Price Change: Optionally keep promotions and resize on percentage change

  • IMPROVEMENT - Update Payfast to the latest version

  • IMPROVEMENT - TaxTag: round formatted percentage values up until 4 points after decimal point

  • FIX - Fix currency recalculation while splitting products

  • FIX - Rounding error on “swap payment” transaction

  • FIX - Manual exchange rates matrix rendering before a base currency is selected

  • FIX - Contract product amounts update incorrectly when there has been an exchange rate change, for consolidation invoices


Admin & Support:

  • NEW - New setting to skip 2fa for recognised IPs, with configurable window for re-validation

  • NEW - Orders listing UX/UI with improved facet selection & filter management

  • NEW - Inline datetime picker, plus simpler relative date selector

  • NEW - 'Registrars' & 'Servers' Host Control tabs are now accessible in multi-brand mode

  • NEW - Show used promo code tags on contract products, with truncation for long codes

  • IMPROVEMENT - Optimised orders list performance with zero upfront eager loads

  • IMPROVEMENT - Functionality added to the “login attempts” records that allows us to more easily look up login attempt records based on the User or Client that it was created for

  • IMPROVEMENT - Skip onboarding-check request on admin orders page once a brand has orders

  • IMPROVEMENT - Disable contract product promotions relation for list view, to improve performance

  • IMPROVEMENT - Invoice number quick search now uses exact matching instead of partial matching

  • FIX - Category filter crash when opening a fresh multi-select filter

  • FIX - Admin access to client child products in parent/child relations

  • FIX - Critical error listing delegates when deleted

  • FIX - Block loading a contract product when the URL's client doesn't own it


Provisioning

  • NEW - Include cpu cores, ram + disk in Virtualisor ServerInfoResult

  • NEW - Forbid updating or merging brand-level provision configurations into different brands

  • NEW - Promote and merge brand provision configurations to org-level ones

  • NEW - Multi-brand filter for org-level provision configurations

  • IMPROVEMENT - Faster listing of provision configurations by using skip_count

  • IMPROVEMENT - Tweak office-tools blueprint to expose more data to clients

    • domain

    • service id (titanOrderId)

    • seat_count

    • used_seat_count

  • IMPROVEMENT - Enabled Get_Info as a client-area function so that the returned seat_count/used_seat_count are correct when the client navigates to manage their mailboxes

  • FIX - Domain Names Provider - NIRA & CoccaEpp will not fetch domain details, if domain has expired, or transferred from account

  • FIX - Domain Name Provider - Enom - Invalid State/Province on Registrant Contact Update (Error when trying to Update registrant contact data, for US)

  • FIX - NameSilo - When attempting to use the ‘Get Info’ function, an ‘Invalid Provider Response’ error is being returned, even though the domain is already active on the provider's side


Cart 2.0

  • NEW - Headless listing composables now support multiple filters of the same type

  • NEW - Complete missing product details before checkout. When something in the basket still needs information before it can be ordered — for example a domain that needs its registrant details — customers are now guided through a quick setup step. It walks through one product at a time, shows only the fields that still need filling in, and can optionally apply the same details to other matching products. Once everything's complete, checkout continues as normal

  • NEW - Mark products as sold out or unavailable. Brands can now flag a product as unavailable, and it will show a clear "unavailable" state across the catalogue and recommendations with the add-to-basket action disabled — so customers can't try to buy something that isn't available

  • NEW - Smoother two-factor sign-in. Two-factor codes now work with password managers and device autofill where appropriate, and entering an incorrect code no longer traps you in a loop — you can simply correct it and try again

  • IMPROVEMENT - Returned to where you left off after signing in. Switching between Login, Register, and Reset Password could lose track of where you were heading, so after signing in you weren't taken back to checkout (or wherever you started). You're now reliably returned to your intended destination

  • FIX - Forgotten-password link no longer breaks sign-in. Clicking "Forgotten your password?" in the sign-in panel could break the page and require a refresh. It now works as expected

  • FIX - Sign-in pages no longer show a 404. Opening a sign-in page with a trailing slash in the address could show a "page not found" error. These links now load correctly either way

  • FIX - Invalid billing-term links fall back to the default. Opening a product with an out-of-range billing period in the link (for example a term the product doesn't offer) left no term selected. It now falls back to the product's default term

  • FIX - Footer no longer pushed off-screen. On narrower and two-column layouts the footer could be pushed below the viewport. It now sits correctly within the page

  • FIX - Order processing screen restored during payment. The "processing" screen shown while an order is being placed had stopped appearing in some cases. It's now reliably displayed again

April 23rd, 2026

Key Highlights

  • Performance: Boosted system speed via invoice item pagination for invoices with high product counts, as well as checkout optimisations.

  • Provisioning: Added OpusDNS support, org-level provision configurations and resolved issues with stuck product blueprint changes.

  • Cart 2.0: Further additions to Cart 2.0 with inline basket editing, support for zero-value orders, MercadoPago and DLocal, alongside a range of UX improvements.


Billing, Invoicing & Payments:

  • NEW - Ability to set a custom name for invoice line items

  • NEW - Remove minimum date restriction from next renewal modal, enabling the setting of due dates in the past

  • NEW - Add option for admin to change "next charge date" and/or set "failed payment attempts" on update invoice

  • IMPROVEMENT - Update “executed_at” records when scheduled actions are run

  • IMPROVEMENT - Removed options and attributes from consolidation invoice PDFs

  • IMPROVEMENT - Optimisations to improve the performance of invoice generation, including invoice item pagination for invoices containing 20+ items

  • IMPROVEMENT - Better error messaging at registration when password does not meet requirements

  • IMPROVEMENT - Improved messaging when attempting to save a payment method that the gateway doesn't support for storage

  • FIX - Save Razorpay card at checkout

  • FIX - Error when paying a PayFast invoice

  • FIX - Callback responses when paying with micropayment tokens

  • FIX - Option with 'Hidden from category view' preventing client from converting basket

  • FIX - Errors on GoCardless payments and webhook callbacks

  • FIX - Refreshing a fetched basket product causing “edit product” to fail

  • FIX - Prevent breaking UI when gateway returns null

  • FIX - Fraud rule permission checks

  • FIX - Gateways are now correctly hidden when they're not configured for the selected currency

  • FIX - Fixed a bug where analytics tracking payloads included an extra malformed property, improving data accuracy for UTM tracking


Admin & Support:

  • NEW - Brand setting to prevent end customers from changing their company details, email or address

  • NEW - Enabled end users to access a configured basket via URL

  • NEW - Setting to hide one-time purchases in the client area

  • NEW - ​​Setting to enforce 2FA for users who don’t already have it set up

  • NEW - Added a quick filter to provision configuration listing

  • NEW - Multi-category quick filters for client product listings

  • NEW - Client status badge: new/active/inactive

  • NEW - Catalogue product & category icon upload fields

  • NEW - Multi-step wizard & invoice summary on modify product modal

  • NEW - Default to 'Subscriptions' tab for contract products listings

  • NEW - Contract product redirect route /admin/cp/:id

  • IMPROVEMENT - Cancellation options: ensures the "Cancellation options" button and its containing "Manage your subscription" frame are only shown to clients when cancellation permission is granted via can_cancel: true on the contract product. Admin users are completely unaffected

  • IMPROVEMENT - Remove MRR stat from dashboard until data quality is improved

  • IMPROVEMENT - Streamlined UX when editing system-level auth providers

  • FIX - Forced 2FA failing on login immediately after registration

  • FIX - Empty menu showing when bulk operations are unavailable


Provisioning:

  • NEW - Org-level management of provision configuration in admin settings

    • Previously, all provision configuration create/edit operations were brand-scoped. For multi-brand organisations this meant administrators had to duplicate configurations across every brand individually, rather than managing a single org-level configuration shared by all brands. This org-level management is now possible in the admin settings

  • NEW - Added OpusDNS as a provision provider

  • IMPROVEMENT - Consistency of DAC search results

  • FIX - Product blueprint changes getting stuck


Cart 2.0 Updates:

Cart 2.0 is still in Beta. To explore the new functionality, please contact our support team.

  • NEW - Inline Product Editing in Basket: You can now edit product options — such as billing term and configuration settings — directly from the basket without navigating away. Changes are saved automatically, making it faster to adjust your order

  • NEW - Client Area Templates: Cart 2.0 now fully supports client area templates — the existing feature that lets brands inject custom content (marketing messages, help text, trust badges) into dedicated slots across basket, checkout, and authentication pages

  • NEW - Custom and Adjusted Pricing: Cart 2.0 now supports the existing admin feature for setting custom prices on individual product configuration settings (billing terms, product options, and attributes). When a custom price is applied, a "Custom price" badge appears alongside the original and adjusted prices, so you always know what's been changed

  • NEW - Added support for DLocal card tokenisation, enabling card payments across Latin America and other emerging markets

  • NEW - Full support for Mercado Pago card payments across Argentina, Brazil, Chile, Colombia, Mexico, Peru, and Uruguay, plus additional payment methods like OXXO, Paycash, and boleto

  • NEW - Zero Value Basket Support: New setting that requires a stored payment method even when the basket total is zero. This enables scenarios like free trials that need a card on file for future billing

  • IMPROVEMENT - Two-Factor Authentication Modal: Two-factor authentication now opens in a clean modal overlay instead of replacing the login form. The new flow includes an animated icon, clear instructions, and the ability to cancel without losing your credentials

  • IMPROVEMENT - Billing Page Sticky Footer: The “confirm” button on the billing page now stays visible in a sticky footer, so you don't have to scroll to the bottom when you have many addresses or companies

  • IMPROVEMENT - Payment Term Descriptions: Product terms now respect the "Payment term descriptions" brand setting, giving you more control over how billing terms are displayed to customers

  • IMPROVEMENT - Subproduct Card Pricing Improvements: Configuration subproduct cards now show a "+" prefix for the regular price when a current (discounted) price is also displayed, making it clearer which price is the add-on cost

  • IMPROVEMENT - Recommendations Carousel:

    • The carousel no longer allows dragging when all items fit on screen

    • Navigation arrows no longer overflow on mobile devices

    • Product benefits are now correctly displayed on recommendation cards

  • IMPROVEMENT - Product Quantity Price Recalculation: Increasing product quantity now correctly triggers a price recalculation, keeping your totals accurate as you adjust quantities

  • IMPROVEMENT - Further optimisations to improve checkout performance

  • FIX - Free trial currency: Free trial products now display the "usual" price in the correct currency when you've switched from the default

  • FIX - Promotional pricing on free trials: Promo codes now correctly show discounted pricing and badges on free trial products

  • FIX - Completing required product fields (e.g. domain for hosting) now correctly removes the "action required" notification from the basket item

  • FIX - Navigating directly to the billing page without an active basket no longer causes the site to hang indefinitely

  • FIX - Guest users no longer trigger unnecessary error events when browsing without a session

  • FIX - Fixed a crash that could occur on some browsers when navigating between pages rapidly

February 27th, 2026

Announcements

Upmind’s Pax8 integration is now live for managing Microsoft products!

Eliminate manual Microsoft subscription management with our Pax8 integration. Automatically sync subscriptions and renewals into your contracts and recurring invoices — so your billing always matches what you provision.


Billing, Invoicing & Payments

  • NEW - Added BWP as a supported base currency

  • NEW - Added support for recurring payments via DLocal

  • IMPROVEMENT - Automatic cancellation of unpaid invoices when related services are cancelled

  • IMPROVEMENT - Enhanced duplicate payment detection

  • IMPROVEMENT - Improved reliability and performance of billing and invoice processing

  • IMPROVEMENT - Improved invoice sharing and security for guest access

  • IMPROVEMENT - Faster tax calculations at checkout

  • FIX - Various fixes to improve payment stability and reduce processing errors

  • FIX - Fixes to prevent invoice duplication and improve accuracy


Admin & Support

  • NEW - Basket listing quick filters for active and abandoned baskets

  • NEW - Delete basket option within basket listings

  • NEW - Fullscreen option for Monaco editor

  • NEW - Technical contact management for domains: Allows you to change each different domain contact type separately (registrant, admin, technical & billing)

  • NEW - “Change Primary Domain” functionality for cPanel & Plesk

  • NEW - Plesk getUsage() implementation

  • IMPROVEMENT - Clear “Hidden” label for products which are not available for ordering in the catalogue

  • IMPROVEMENT - Bulk action (notification) functionalities for default Marketing user group

  • IMPROVEMENT - Show validation errors on modify product modal

  • IMPROVEMENT - Provision configuration filter now loads options on-demand, with search & pagination

  • IMPROVEMENT - Added reliability when assigning support tickets via the “Take Ticket” function

  • IMPROVEMENT - Delegate ticket listing performance enhancements

  • IMPROVEMENT - CentralnicReseller now always uses renewal_date as expiry_date, improving renewal consistency

  • IMPROVEMENT - OpenProvider uses renewal_date as expiration date if present & sanitises special characters from address fields

  • FIX - Fixes and enhancements for PanelAlpha and SSLCommerz integrations

  • FIX - Affiliate information now correctly passing to the backend, for registrations and purchases

  • FIX - RealtimeRegister .uk transfer period error

January 19th, 2026

Happy new year! We start 2026 with a bang, and a whole load of updates for you. Here’s what’s been going on over the holiday period…

Integrations:

  • SPanel - The all-in-one cloud management platform

  • .BD domain reseller

  • SSL Commerz payment gateway

New Functionality:

Widgets 2.0 (Beta Preview) Improvements:

Widgets 2.0 are now faster to instantiate, benefit from cached styles and are easier to configure/pass options to.

  • Refactored prop parsing to support either individual HTML attributes (simplest) or an application/json child <script> block (whilst keeping the bind approach for backwards compatibility).

  • Implemented dynamic slot detection using MutationObserver, so slot changes are picked up even when content is injected after initial render.

  • Fixed tooltips failing on highlighted cards (in certain browsers) when a background blur filter was applied.

  • Moved Tailwind CSS from repetitive inlined style blocks to a separate, cacheable, versioned stylesheet link; widgets now resolve CSS robustly across hosting environments with automatic cache-busting via build-time version injection.

  • Removed redundant HTML/head/body tags from the Custom Element template and standardised the Shadow DOM structure around a single root <section>, keeping the widget component as a pure presentation layer consuming reactive state from the composable.

  • Reduced the main JS bundle by ~72 KB (~417 KB → ~345 KB) by externalising styles (CSS emitted separately at ~71 KB).

Other functionality:

  • New contract product filter to the 'Tickets' tab, when viewing clients;

  • New setting to add a default support department per product;

  • Now showing the validation status of company tax numbers;

  • Added staff controls to manage and (re)validate tax numbers;

  • Now showing tax amount in dry-run 'amount to refund' calculation;

  • Updates to Duda provisioning integration (aligning to updates from Duda);

Fixes:

  • Broken query when invoice product doesn’t exist yet;

  • Catch errors during report generation cron loop;

  • Error opening lead ticket due to empty strings being passed;

  • Error submitting domain names settings form;

  • Prevent setting domain cookies on restricted apex domains;

  • Improved error handling for DLocal payment gateway;

  • Fix adjust promotions when combined with other percentage promotions;

  • Incorrect usage of ticket_department_id vs brand_ticket_department_id;

  • Wrong injection key breaking the mapping step for imports;

  • Remove auth provider management controls from API tokens view;

  • Update version of libphonenumber-js to support new mobile ranges;

  • Updates to TitanMail provisioning config;

Internal:

  • Additional API debugging;

  • Safeguard deleting invoice payments;

  • Upgrade Laravel to 6.20.45;

  • Refactor mapState and mapGetters to computed properties;

  • Add protection against early issuing of consolidation invoices;

  • Additional protections for duplicated waiting payment;

  • Update final components to utilise the useClientInjector composable;

  • Refactor injections to use composable pattern;

  • Remove $ prefix from provided data and method names;

December 17th, 2025

As we come to the end of the year, we would like to thank you all for being a part of our journey. There are plenty more things to come in 2026, but for now, here is our final changelog for 2025...

Integrations:

  • Ranking Coach

  • Netistrar

Functionality:

  • “Book a demo” added to Upmind website

  • Glue record management

  • Advanced manual filters

  • Ability to apply custom/manual filters on admin listings

  • Capability to add a custom (non-suggested) notification trigger condition

  • Improved notification templates row design

  • Row toggle for enabling/disabling notification templates

  • Ask for email 2FA code during both client AND staff username or password change

  • Surface default company name in client listings and profile view

  • 'Copy to clipboard' option for payload/debug/event data across event log modals

  • Allow deletion of empty brands as long as another brand exists in the org

  • Expose CP calculated suspend / cancel / close dates in Invoice template

  • Gateway Setting: Round Value if Currency has no decimals

  • Manage staff authentication providers: password, SAML etc

  • Manage client authentication providers

  • Manual status filter for contract product listings

  • Improved IP whitelist checks during authentication

Fixes:

  • Stopped showing 'pay online' link on legacy invoice PDFs

  • Resolved issue with MercadoPago payments incorrectly crediting

  • Fixed broken href passing within ULink components

  • Fixed issues with Razorpay payments

  • Client credit message missing a value in Admin Portal

  • Assign all admin users to brand ticket departments

Internal:

  • Tool for merging brands

  • Sync Localazy translations

  • Introduce new useSensitiveActionChain composable

  • Update provision types imports

  • Improve provider type definitions

  • Sync Localazy translations

  • Improve UX/UI of the 'Legacy invoices' listing

  • Update Enhance SDK for PHP 8.5 compatibility

  • Security enhancements to password reset functionality

November 19th, 2025

Here is a summary of the latest Upmind changes. We’ve been busy working on lots of new features and integrations to improve the platform:

  • New provider integrations:

    • PanelAlpha

    • Webuzo

    • ISPManager

  • New functionality

    • Click to copy a brand's UUID from the admin 'Brands' list view

    • 'Read-only' option setting for custom client fields

    • Improve UX/UI of the 'Legacy invoices' listing

    • Improved notification templates row design

    • Surface default company name in client listings and profile view

    • Row toggle for enabling/disabling notification templates

    • Toggle for a domain provider's inclusion in availability lookups

    • Quickly search & switch between client products when clicking the product title

    • Convenience one-click option for regenerating reports

    • Convenience option for downloading invoice PDFs from a list view

    • Bulk product updates

    • Ability to download deleted client invoices

    • Add staff 'Copy to clipboard' control for contract product names

    • Capability to add a custom (non-suggested) notification trigger condition

    • 'PDF Templates' settings group to accommodate additional PDF types

    • Customise your brand's 'Wallet Statement PDF' template

    • Option to download wallet statement as CSV

    • Bulk 'Issue next invoice' contract operation

    • Create, manage and assign reusable email layouts

    • Option to grant staff access when enabling support departments

    • Setting to require 2FA when Upmind clients change email or password

    • Added getVerificationStatus() and resendVerificationEmail() functions with implementations for OpenSRS, HRS and SynergyWholesale domain providers

    • Razorpay checkout gateway

  • Fixes

    • Fixed .lu domain transfers

    • Broken href passing within ULink components

    • Position of percentage change amount within MRR stat card

    • Credit note redirection route

    • Remove focus trap within sibling product search

    • Incorrect options for 'Recipient Type' notifications filter

    • Bug showing translation validation errors

    • Skip fetching of main invoice when value is none from import

    • Add client_id fallback in case invoice current data is empty

    • Reactivity bug when restoring initial template state

    • Improvements to the support “take ticket” function

  • System reliability & performance updates

    • Smoother background job handling, report regeneration optimization, and improved error resilience

    • Safer cron operations, improved job concurrency, and duplicate payment prevention for Stripe, MercadoPago, PayPal Billing Agreements

    • Security improvement — removed admin IP addresses from client hook log endpoint

  • Internal updates:

    • Added additional log metadata for hook exceptions to improve debugging and monitoring

    • Deprecated “Bulk Updates” in favor of “Bulk Operations”.

    • Introduce new useSensitiveActionChain composable

    • Update provision types imports

    • Improve provider type definitions

    • Sync Localazy translations

October 9th, 2025

It’s been a little while since our last release roundup, so consider this another bumper edition. Over the past few months, we’ve shipped a series of updates across billing, automation, and the admin experience. Highlights include a new option to split contract products by units sold, support for iDEAL and SEPA payments via Stripe, staff impersonation for admin users, and a powerful new Monaco (VSCode) editor in the admin area.

Here are the full release notes, neatly categorised for convenience 🙂

Billing Updates

  • NEW: Option to 'split' items into separate contract products based on units sold

  • NEW: Surface 'payments' associated with a credit note, if applicable

  • NEW: Add 'Credit notes' tab for invoice view if document has been credited

  • NEW: Staff option to 'Issue credit note' when topping up account credit

  • NEW: Staff option to provide a 'Reason' when topping up account credit

  • NEW: 'Credit transactions' row design, including optional top-up reason

  • NEW: Client option to manually request affiliate commission withdrawal

  • NEW: Add internal_name field to payment gateway providers form

  • NEW: Surface internal gateway names in admin contexts

  • NEW: Stripe » Support for iDEAL payment method

  • NEW: Stripe » Support for SEPA Debit payment method

  • NEW: Stripe » Restrict PayPal method to presentment currencies only

  • NEW: Stripe » Minor-unit computation for zero-decimal currencies

  • NEW: Stripe » Minor-unit computation for UGX currency

  • FIX: Decimal bug when defining custom billing terms

  • FIX: Relay manual payment result after account credit top-up

  • FIX: Change default invoice sort order to use 'Date issued'

  • FIX: Minor bug when stepping back in the quick invoice modal flow

  • FIX: Broken invoice item routing when the underlying product is hidden

  • FIX: 'Multi-currency options' field not reflecting brand default setting

  • FIX: Breaking invoice display when options are not returned as Array

  • INTERNAL: Refactor order route handling in various components and views

  • INTERNAL: Refactor account credit

  • INTERNAL: Remove obsolete wallet transactions table

  • INTERNAL: Refactor currency recalculation options with centralised bindings

  • INTERNAL: Refactor gateway-related imports to use centralised types

  • INTERNAL: Remove deprecated gateways model

Automation Updates

  • NEW: Implement notification hook/trigger conditions

  • NEW: Expose recipient type category variables when authoring templates

  • FIX: Empty parameters when creating a segment from bulk notifications

  • FIX: Disabled submit when trying to bulk update contract intervals

Security Updates

  • NEW: Staff user impersonation for admin users

  • NEW: Set read-only domain-level cookies for guest and client sessions

  • FIX: Bug adding whitelisted IPs for staff users and API tokens

  • FIX: Uncaught error when revoking API tokens

  • INTERNAL: Add psl package for improved domain/hostname parsing

  • INTERNAL: Expose new getApexDomain method to use within cookies helper

Settings Updates

  • NEW: Message signature feature

  • NEW: Brand tokens field for storing design tokens (for Cart/Panel 2.0)

  • NEW: Support for setting a custom 'Google Tag Manager' script URL

  • NEW: Add support for custom storefront_url within brand meta

  • NEW: If shown to users, make custom cancellation fields optional for staff

  • INTERNAL: Shuffle around 'order in bulk' catalogue settings

  • INTERNAL: Set default values for show_to_customer & show_on_invoice to false

UX/UI Updates

  • NEW: Contract product tags

  • NEW: Improved UX/UI for selecting and managing object tags

  • NEW: UTag component with a 'subtle' display variant and in-built tooltips

  • NEW: Implement Monaco (VSCode) Editor into admin area

  • NEW: Add twig language support within UMonacoEditor

  • NEW: Add 'Preview records' control during import step

  • NEW: Indicator to highlight default user permission groups

  • NEW: Adaptive datetime formatting across support-related components

  • FIX: Bug in UDropdownMenu component

  • FIX: Click handler on UIconControl component

  • INTERNAL: useMonacoTwig composable for Twig language auto-completion

  • INTERNAL: Deprecate Codemirror editor in favour of Monaco Editor

  • INTERNAL: Deprecate JsonEditorVue editor in favour of Monaco Editor

  • INTERNAL: Deprecate tagsProvider in favour of new useTags composable

  • INTERNAL: Sync Localazy translations

July 4th, 2025

Welcome to our latest release roundup. Over the past few weeks we’ve delivered a stack of upgrades; client-level IP whitelisting, sharper fraud protection with keyword-based rules, an improved UX for scheduling price changes, a re-engineered dataLayer boot sequence, and plenty of behind-the-scenes polish.

Here are the full release notes:

  • NEW: Create and manage 'keyword' fraud rules

  • NEW: Pagination and quick search capabilities for segment lists

  • NEW: Improved UX/UI for scheduling bulk & individual contract price changes

  • NEW: Create and manage tax exemption codes for tax templates and clients

  • NEW: Add missing 'Account Credit' route under 'Manage My.Upmind'

  • NEW: Add missing 'Billing Settings' route under 'Manage My.Upmind'

  • NEW: Top level 'Store catalogue' menu item for faster inventory management

  • NEW: Apply brand grouping to option-based filters when in multi-brand mode

  • NEW: Product ID filter available on contract product listings

  • NEW: Profile menu control for faster access to a client's pinned vault assets

  • NEW: Admin controls to manage your own IP whitelisting preferences

  • NEW: Product automation setting to 'Auto accept cancellation requests'

  • NEW: Setting to show and capture contract cancellation fields from staff users

  • NEW: Product catalogue descriptive tooltips to provide additional context

  • NEW: Pre-populate username field if passed in query param

  • NEW: UX/UI for managing brand & staff IP restrictions

  • NEW: IP whitelist capability for securing client accounts

  • NEW: Swap invoice payments feature

  • NEW: Refund option to 'Adjust invoice balance and issue credit note'

  • NEW: Implement support for additional fraud reasons

  • NEW: Force conscious field type selection when creating custom fields

  • NEW: DataLayer events for product views and page views

  • NEW: Make billing term optional when scheduling bulk price changes

  • NEW: Push default gtm and uetq consent settings

  • NEW: Implement recommended GA4 select_item event

  • NEW: Implement recommended GA4 begin_checkout event

  • NEW: Implement custom invoice_paid order event

  • NEW: Implement upm_actor cookie management

  • NEW: Expose brand_id and org_id for stitching upm events

  • NEW: Convenience link from cProd provisioning to catalogue product settings

  • FIX: Bug authoring segments in multi-brand mode

  • FIX: Checkbox value bindings for Lock due date to billing cycle? field

  • FIX: 'Select all' behaviour when configuring payment provider currencies

  • FIX: IP whitelist verification errors on untouched forms

  • FIX: Multi-brand catalogue category guarding

  • FIX: Routing to admin security and currencies settings

  • FIX: Console errors when listing API tokens

  • FIX: 401 error handling on logout call

  • INTERNAL: Deprecate 250+ instances of {object} string interpolation

  • INTERNAL: Trust can_see_ticket_messages flag for determining thread visibility

  • INTERNAL: Add hook code mappings for scheduled actions

  • INTERNAL: Improve fraud rule descriptions and terminology

  • INTERNAL: Refactor UI18n component to facilitate passing text to scoped slots

  • INTERNAL: Add translation mappings for proforma invoice hooks

  • INTERNAL: Refactor IP whitelist management to use composables

  • INTERNAL: Omit Sentry errors where this are no stack-trace frames

  • INTERNAL: Remove allowUrls from Sentry config as no longer required

  • INTERNAL: Filter out third-party Sentry errors & tweak replay settings

  • INTERNAL: Update @sentry/vue and dependencies to version 9.22.0

  • INTERNAL: Increased memory limits when running builds

  • INTERNAL: Refactor boot sequence of GTM and dataLayer

  • INTERNAL: Deprecate upmDataLayer in favour of dataLayer

  • INTERNAL: Sync Localazy translations