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.

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 Dunning Mechanism now Works for Migrated Licenses

At Freemius, we’ve built a robust dunning 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, dunning 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.

Introducing Seamless License Upgrades from Products to Bundles

Just as we gear up for our annual Black Friday / Cyber Monday promotion, we’re rolling out a highly requested improvement. Your customers can now upgrade from individual products to bundles directly from the Checkout—smoothly, reliably, and without needing any manual guidance.

In many stores, customers often start with a single product and later discover the value of upgrading to a bundle. Until now this process wasn’t as straightforward as it should have been.

With this release, if a customer already owns a license for one of the products included in a bundle, they can simply use the same license key during Checkout to upgrade. They’ll automatically receive prorated discounts, keep the same license key across all bundled products, and retain all existing website activations.

Below is how to make sure your products and bundles are set up correctly.

How to Set Up a Bundle

Let’s say you have a plugin called “My Awesome Plugin,” and you want to allow an upgrade to a bundle named “My Awesome Bundle,” which might include additional products like a theme or widgets.

To enable upgrades, all you need to do is ensure that the bundle contains a plan referencing the product.

You can learn more in our documentation, but the screenshot below illustrates how the bundle plan already includes the product.

Set up bundle plan

That’s all the configuration required. If you already have existing bundles and product plans in your store, you likely already have this set up.

How Customers Upgrade to the Bundle

To start the upgrade flow, ask your customers to open the Checkout of the bundle—either through a hosted link or pricing buttons on your website.

Next, they simply enter the license key they already own for the individual product.

Checkout will automatically recognize the license as part of the bundle’s offering and apply the appropriate prorated discount.

The customer completes the Checkout, and the upgrade is finished.

What Happens to the Upgraded License

  1. The license becomes a bundle license, unlocking all products included in that bundle plan.
  2. The license adopts the bundle’s plan and pricing—allowing you to craft attractive upsell incentives by offering both bundle and plan upgrades in one step.
  3. All existing activations remain intact. Customers won’t need to re-activate anything.

We hope this new flow helps you drive more upsells and makes bundle upgrades much simpler for your customers—especially during the busy Black Friday season. Give it a try and share your feedback with us.

PS: If you’d like your product featured during our Black Friday sale, just fill out this form.

Fixes and Enhancements to Affiliate Exports and Cross-Store or Account Attribution

We have released a few small improvements to the Affiliates section in the Developer Dashboard.

Fixed Affiliate Exports Functionality

Affiliate export feature freemius developer dashboard

We identified an issue where clicking the Download button on the Affiliates page did not export the full list of affiliates—some records were being cut off. This was especially problematic for makers with larger affiliate programs. The fix is now deployed, and downloading will correctly generate a CSV containing all available affiliates.

Fixed Payouts for Cross Store or Account Attribution

Freemius’ affiliate system allows attributing commissions across store or account. This means if an affiliate promotes one product but the buyer ends up purchasing another product under the same store or account, the affiliate still earns the commission.

However, we noticed these attributions were not being reflected accurately in the Payouts tab. This led to confusion and occasionally missed payments since makers couldn’t always see why a commission was attributed.

Affiliate payout attribution across products

With this week’s deployment, these attributions are now clearly shown in the Payouts tab, including an icon of the relevant product when the commission came from a cross-store or cross-account purchase. This brings full transparency into the payout breakdown, ensuring everything is visible and easy to verify.

Enhanced User Marketing/GDPR UI and Streamlined SDK Test License Creation

This week we are deploying small feature enhancements to our Developer Dashboard.

Better Marketing/GDPR UI under Users

When navigating to Users → Specific User in the Developer Dashboard, we’ve refined the UX of the Marketing Email section.

User marketing or GDPR status under the Freemius Developer Dashboard

The section indicates whether the customer has consented to receive marketing emails (either during Checkout or when installing the free version of your product).

  1. The section now starts collapsed by default, giving more space to the more frequently used information above the fold.
  2. The section title is now dynamic, so you can instantly understand the user’s marketing consent status at a glance.

Faster License Creation for SDK Integration

Some time ago, we introduced a button in the SDK Integration page to quickly create a license while going through our 5-minute SDK onboarding steps.

Create test license from the Freemius Developer Dashboard for testing the integration

However, the button still required choosing plans and pricing, unnecessarily slow when makers simply want to test the integration flow.

With that in mind, we’ve streamlined the UX so that clicking the button now automatically generates a license under the first paid plan without asking for any additional input.

We hope this small improvement makes your integration workflow even smoother.

Checkout Layout Bug Fix for WordPress SDK 2.13

With the release of the WP SDK 2.13, we introduced an option to customize the in-dashboard Checkout experience. Soon after, we learned that setting the layout to vertical caused a visual glitch that affected the background of the checkout form.

Freemius Checkout in vertical layout inside the WordPress Admin

With this week’s deployment, the issue has been fully resolved. No changes are needed on your end as the fix is applied directly via our Checkout application.

Updated Generic Statement Descriptor for Broader Software Support

Freemius always attempts to display a clear and verbose statement descriptor in your customers’ credit/debit card or bank statements. This helps buyers immediately recognize their purchase and avoid accidental disputes. The descriptor we try to show is:

FREEMIUS* PRODUCT_NAME

However, depending on the bank or card issuer, the soft descriptor may not always be supported. In those cases, our system falls back to a generic descriptor. With this week’s deployment, we are updating that fallback from FREEMIUS-PLUGIN-THEME to FREEMIUS SOFTWARE.

As more makers across different ecosystems started using Freemius beyond WordPress, the old descriptor no longer reflected the diversity of software being sold on the platform. This update ensures that the descriptor feels accurate and relevant regardless of the product type.

We initially attempted to use FREEMIUS SOFTWARE PAY, but the payment processors did not accept it, so we adopted FREEMIUS SOFTWARE instead.

Freemius transactional email showing the possible descriptor in statements

Please note that Freemius will continue trying to use the soft descriptor FREEMIUS* PRODUCT_NAME first, and only fall back to the generic descriptor when the payment provider does not support it. This update is also reflected in the transactional emails sent from our system.

Fix for Payment Method Recovery Flow in Checkout JS SDK 1.4.1

This week we are releasing version 1.4.1 of the Checkout JS SDK.

This update addresses an issue in the automatic dunning recovery flow, where in certain cases the library failed to correctly restore the payment-method update experience.

Since this flow is critical for recovering failed subscriptions, we prioritized fixing it to keep the recovery process as seamless as possible for both you and your customers.

Demo payment recovery flow in Freemius

If you’re using the CDN version, nothing needs to be changed on your end. For NPM package users, please update with the following command:

npm install @freemius/checkout@latest

Improved Subscription Cancellation Email

This week we’re rolling out some improvements to the Subscription Cancellation email sent by Freemius.

Freemius Subscription Cancellation email

This email is sent to the product maker whenever a customer cancels their subscription. It includes important information like customer details, subscription information, and any associated sites where the corresponding license was in use.

To make the layout more compact and easier to digest, we’ve moved the sites section below the subscription details and now show only the first five sites instead of the full list. A link is provided to the Developer Dashboard where you can filter and view all affected websites.

For most products, listing five sites is more than enough. But for large multi-site networks, the earlier version often generated a very lengthy table that could cut the email short or make it harder to navigate. With this update, the email remains clean, readable, and focused on the essential information.

Load more