Changelog

Welcome to the changelog section of Freemius, here you'll find our weekly technical update notes. You can subscribe to all posts via Newsletter or follow us on Twitter to stay updated.

New Design for the License & Download Recovery Tool

We’ve refreshed the design of our license-recovery mini-app — the small self-service tool you can share with customers to help them retrieve their license keys and download links using only their email address.

Freemius License Recovery Form

When a customer submits the form, Freemius automatically sends them an email on your behalf containing download links for their purchased products along with all associated license keys.

Freemius License Recovery Email

This lightweight recovery flow gives your buyers a quick way to help themselves, which can significantly reduce routine support tickets. To link users directly to the mini-app for a specific product, use the URL pattern below:

https://dashboard.freemius.com/license-recovery/{product_id}/{product_slug}/

You can find the product_id and product_slug in your Developer Dashboard. Here’s an example:

https://dashboard.freemius.com/license-recovery/11707/my-awesome-plugin/.

If you prefer offering a unified recovery page for your entire developer account, you can use:

https://dashboard.freemius.com/license-recovery/{developer_id}/

Your developer_id is available on your Profile page.

Strengthened GDPR Handling and Privacy Controls Across More Regions

We pushed an update tightening GDPR compliance in specific locations following recent regulatory changes.

  • The cart is now disabled by default for German customers, aligning with stricter local privacy expectations.
    Freemius Cart disabled by default in German
  • We now show the cart and marketing opt-in consent UI in additional countries that have recently introduced stronger data-privacy requirements.
  • The EU 14-day cool-off waiver is now clearly displayed for SaaS products as well, ensuring transparency and consistent consent handling.
    Freemius Checkout EU cool-off waiver
  • The review request is now sent only to users who have explicitly consented to marketing during checkout.
    Freemius Review Request Form

Checkout Enhancements: Localization Fixes & Cart Stability Updates

This week we are bringing some small enhancements to our Checkout.

Fixed Coupon Discount Label Bug

We noticed an issue in the coupon discount label where absolute-value coupons would sometimes display an incorrect amount when the selected currency wasn’t USD. Since many of our makers operate in multiple currencies, this inconsistency created confusion during checkout.

In addition, the label wasn’t properly applying translation and number localization, which made the UI feel inconsistent for non-English locales.

Freemius Coupon Discount

With today’s deployment, both issues have been fixed so that currency handling and localized formatting work as expected.

Fixed Race Condition Bug in the Cart UI

In some rare cases, a race condition between parallel API calls caused the cart functionality to break—either failing to save or unintentionally disabling the cart when users interacted with the toggle.

Freemius Checkout cart toggle button

We’ve resolved this race condition to ensure the cart state always updates reliably.

Developer Dashboard Update – Improved Checkout Link Generation, Cleaner UI & Bug Fixes

This week we’re rolling out several meaningful UI/UX improvements and a few bug fixes to the Developer Dashboard.

Smarter Get Checkout Button

We’ve reorganized the links under the “Get Checkout” button on the Plans page, making it much easier to grab your no-code checkout links.

Get Checkout button UX improvement

Sandbox and production links are now grouped together and include a dedicated copy button for convenience. You can still click them to open in a new tab, just like before.

JS-Based Sandbox Example

Under the same “Get Checkout” menu, selecting “Overlay Code” now shows a JS-based sandbox example powered by our official JS SDK.

Checkout JS based sandbox example

This helps SaaS makers quickly spin up a local integration environment without digging through documentation.

Enhanced Empty State for the Plans Page

The Plans page now has a more thoughtful empty state when no plans exist.

Empty plan page

Instead of a plain “Add Plan” button, we now show a clearer explanation of what a plan is and why you might create one, along with a link to helpful documentation for first-time makers.

Other Notable Fixes

  • Added a tooltip explaining what the Personal Success Manager support feature covers for makers.
  • Cleaned up the license table layout for SaaS products.
  • Fixed a small UI glitch in the sidebar onboarding video and improved the overall responsiveness.
  • Resolved an edge case where a plan wasn’t being saved for newly created products.
  • Fixed a visual glitch on the “Emails” page under Store.
  • Improved the confirmation dialog when deleting a version from the deployment section.
  • Fixed layout overflow on the “Cancel Trial” button under “Site.”

Improved License Activation API with Full Bundle Support

We’ve extended our license activation API to fully support bundle licenses — an important improvement for makers building their own integrations outside the official WordPress SDK.

Previously, activating a bundle license through the product-level activation endpoints wasn’t supported. With this update, any bundle-issued license key will now activate correctly, when hitting a product-specific endpoint such as:

Freemius license activation API

This ensures custom apps, or LiteSDK-powered WordPress plugins all get consistent activation behavior.

If you’re implementing activation outside the WP SDK, here are helpful resources:

  1. WP LiteSDK POC — For building custom WordPress integrations without the full SDK.
  2. API Documentation — For Apps, or any custom implementation.

Fix for Rare License Migration Edge Case in the WP SDK

Our WP SDK includes a built-in mechanism to detect when a site is being cloned or moved to a new URL. When that happens, it presents several options to help users properly handle the migration — for example, marking the site as a staging copy or fully migrating it to the new domain.

Freemius WP SDK Clone Resolution Notice

We identified an edge case in the “Migrate License” flow where, in very rare situations, the system migrated a license without running all the expected validation checks. This included skipping quota validation or overlooking URL restrictions enforced by the license firewall.

The issue has now been fully resolved on our infrastructure side, ensuring all migrations go through the correct validation path. No update to the WP SDK is required on your end.

Customer Portal UI & Customization Fixes

This week we’re rolling out a few minor quality-of-life improvements to our Customer Portal.

  • We refined the error UI for better readability, and fixed an issue where some links appeared with an incorrect color.
  • We fixed a bug where custom CSS wasn’t updating reliably after makers changed their styling.

Customer Portal improved error UI

Fresh New Design for the Freemius Review App

Our review app just received a modern makeover. Freemius automatically helps you collect reviews from your buyers, giving you an easy way to build social proof without extra effort.

The flow begins with an automated email that redirects buyers to the review app.

Freemius review app

Until now, the app’s interface felt a bit outdated. With today’s deployment, we’re introducing a refreshed design aligned with our ongoing rebranding work. The new look brings a cleaner, more modern experience that leaves a stronger impression on your buyers.

You can learn more about the review collection system in our documentation.

Enhanced Handling of Sender Addresses for Transactional Emails

We’ve deployed an improvement to how Freemius sends transactional emails to ensure higher deliverability and a more consistent experience for buyers.

Up until now, transactional emails were sent using either the custom sender address configured by the maker or the email associated with the Freemius account. While we’ve long supported DKIM domain authentication to help with deliverability, we noticed that incomplete or incorrectly configured DKIM setups could cause legitimate emails to get blocked or land in spam.

Various Configured Emails in Freemius

To address this and ensure important messages reach customers reliably, Freemius will now automatically send transactional emails from [email protected] whenever:

  • DKIM authentication has not been completed, or
  • the sender address does not match the authenticated domain, or
  • the sender address is using some generic provider like Gmail, Outlook etc.

In these cases the email will appear as <[email protected]> {{ productTitle }} via Freemius, keeping your product branding clear for customers. Your Reply-To address remains unchanged, so all customer responses will still reach you directly.

If your domain is already authenticated with DKIM and you’re using email addresses from that domain, nothing changes — your transactional emails will continue using your configured sender. Otherwise you can optionally authenticate your domain if you want to keep using your own sender address.

Smarter License Quota UI & Plans & Affiliate Page Fixes

This week we are releasing the following quality-of-life improvements to the Developer Dashboard.

The License Quota UI Got Smarter

License Quota UI enhancement

We noticed that many makers needed a simpler way to manage unlimited licenses. The UI now accepts a 0 value and automatically converts it to an unlimited quota, making large-scale license updates more intuitive and consistent.

Bug Fix in the Plans Page

Plan page copy feature

We also identified an issue where non-admin team members couldn’t use the Checkout Link or the copy-to-clipboard feature in the plan page. This has now been fixed.

Fix Deployed for Affiliate Settings Save Issue

We identified an issue in the Affiliate Settings UI where, in certain edge cases, updates were not being properly saved through the API.

Freemius Affiliate UI

After tracing the root cause, we’ve deployed a fix to ensure all changes are consistently saved moving forward.

Our License Recovery now Works for Migrated Licenses

At Freemius, we’ve built a robust license recovery mechanism that helps makers recover lost sales and subscriptions. Whenever a renewal fails or a subscription gets cancelled, our system automatically sends a sequence of reminder and renewal emails to bring the customer back.

Freemius License Renewal Email

Until now, this capability didn’t fully apply to licenses that were migrated into Freemius. We understood this created gaps in recovery for products transitioning to our platform. With today’s update, license recovery support is now fully extended to all relevant migrated licenses.

Whenever a migrated license becomes eligible for recovery, Freemius will send a proper dunning email with a link to Checkout — where customers can not only reinstate their subscription, but also seamlessly “migrate” into Freemius during the process. This ensures you keep revenue continuity while unlocking the full Freemius platform benefits for those customers.

Enhanced Resilience for VAT Verification in Checkout

Freemius Checkout supports automatic EU & UK VAT number verification and applies tax exemptions under the reverse-charge mechanism.

Freemius Checkout VAT Validation

Over the past couple of weeks, we noticed intermittent degradation in the third-party service responsible for VAT number validation. To ensure buyers don’t face unexpected friction when requesting VAT exemption, we’ve rolled out an update that makes our verification flow more resilient to these temporary outages. This helps maintain a smooth Checkout experience even when external services are unstable.

Fix for License Expiration Not Updating After Initial PayPal Payment

A bug was reported where, for some customers, the license was not being extended correctly after receiving the first subscription payment through PayPal.

This was caused by a rare edge case: customers could cancel their subscription during the window between subscription creation and the first payment being charged. With PayPal, this window can last up to 48 hours, making the issue more likely to surface for a small subset of users.

After a thorough investigation, we identified the root cause and deployed a fix. Our system will now correctly log incoming subscription payments and extend the associated license’s expiration, regardless of the subscription’s interim status.

Expanded WordPress Product Slug Limit for Better Compatibility

It came to our attention that the previous 64-character limit for a WordPress product’s slug was too restrictive. Since the WordPress.org repository allows up to 100 characters, some makers found it difficult to align their product details when syncing with the official repo.

Long slug while creating product in Freemius

To ensure better compatibility and smoother onboarding for products originating from WordPress.org, we’ve increased our slug limit to 100 characters. This update applies both to the new product creation form and the Settings page of existing products.

API Improvements: Filter Support & Error Message Fix

This week we’re deploying a couple of minor but meaningful bug fixes in the API:

  • The List all Payments endpoint now properly supports the filter parameter. Many makers rely on filtered payment lookups for dashboards and internal tooling, so ensuring this parameter behaves consistently was important.
  • We fixed a small typo in an error message generated by the Update License endpoint to improve clarity and reduce confusion during integrations.
Load more