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.

Smarter Billing Cycle Selection and Coupon Fixes in Checkout

This week we have updated the Checkout with the following improvements and bug fixes:

Smarter Billing Cycle Selector UI

Our Checkout uses a set of Upsell UI components by default. One of them automatically shows up whenever there are billing-cycle-related discounts, such as annual-over-monthly pricing. The same UI is also used by your customers to toggle between billing cycles.

Checkout monthly switch UI

However, when there are no such discounts, we recommend using the explicit billing cycle selector UI by configuring it through the Checkout Config. While this works as expected, we understand that this behavior can be a bit confusing for new makers joining the platform—especially those selling SaaS & Apps, where billing-cycle discounts are not very common. In such cases, makers testing the Checkout would see the annual plan auto-selected, without a clear way to switch to a monthly billing cycle.

To address this, we’ve made the Checkout smarter by automatically detecting these scenarios and switching to the billing cycle selector UI when appropriate.

Checkout Billing Cycle Selector UI

Please note that in sandbox mode, a hint will also pop up to guide makers toward configuring discounts if they prefer to use the upsell UI instead. All other behaviors remain unchanged. For example, if you explicitly load the Checkout with an annual billing cycle, the option to switch to monthly will not be shown, preventing buyers from changing the intended configuration.

Fixed Non-USD Flat Discount Coupon

We identified a recent regression where applying a non-USD flat discount coupon did not work correctly in certain edge cases, particularly in some PayPal flows.

Checkout Coupon UI

This issue has been identified and fixed.

Clearer Templates & Kits and Small Dashboard Improvements

This week we are releasing some quality-of-life improvements to our Developer Dashboard app.

Better Visibility of Templates & Kits

Freemius supports selling templates and kits out of the box. We also support uploading ZIP files and distributing them to your buyers.

However, we realized that this capability was not very visible when creating a new product, as it was previously placed under the “WordPress Products” category. From a UX perspective, this made it easy to miss.

To address this, we’ve improved the new product creation flow so the Templates & Kits option is now visible right in the first step.

Template Kits in the New Product Form

We are also rolling out improved documentation shortly to better explain how to properly use this category.

Other Improvements

  • Removed some unneeded API calls made by the Developer Dashboard as part of general housekeeping.
  • On the Sites page, the Change Plan button is now disabled when a product has only one paid plan, along with a clear message explaining why. In such cases, changing plans for sites is not possible.

Bug Fixes for Weekly Reports and License Activation

We are rolling out the following bug fixes across our system:

  1. We identified an issue where some makers were not receiving their weekly report email. The underlying cause has been resolved, and the emails are now being delivered as expected.
  2. In certain edge cases, some apps were unable to activate licenses via the API. This issue has been fixed, and license activation should now work reliably.

New Side Panel View for Licenses in the Developer Dashboard

This week we are rolling out a new feature to the Licenses page in the Developer Dashboard. Until now, makers could only view licenses in a tabular (data-heavy) format. While functional, we understood from a UX perspective that this could feel overwhelming, and it wasn’t always easy to quickly surface key information about the user or the subscription associated with a license. In many cases, you had to navigate away from the table to dedicated pages to find those details.

License sidepane view

With this update, you can now open a side panel view for a license, consistent with how other entities are presented across the dashboard. The side panel provides quick access to essential license information and exposes common actions such as extending the license, changing the quote, or adjusting related settings.

It also surfaces details about the connected user and the associated subscription, all in one place.

User and Subscription information in the license sidepane

The goal here is to reduce context switching and make day-to-day license management faster and more intuitive. As always, if you have feedback or ideas on how this can be improved further, we’d love to hear them on the feature board.

As a follow-up to this change, we’ve also updated the Subscriptions side panel to align with the same design system and interaction patterns.

Subscription sidepane

New Checkout Events for Tracking Coupon Interactions

Our Freemius Checkout supports tracking several events across the buyer journey — from when the checkout is loaded, to when billing information is entered, or when a plan is changed.

Today, we’re rolling out a few new events focused on tracking interactions with coupons.

Freemius Checkout coupon code

  • coupon-added: Triggered when a new coupon is applied through the checkout UI.
  • coupon-removed: Triggered when a coupon is removed, either explicitly from the UI or when the coupon is no longer valid for the selected quota/licenses or billing cycle.
  • coupon-updated: Triggered when a coupon’s discount value changes due to an update in quota/licenses or billing cycle.

These events make it easier to understand how buyers interact with coupons during checkout and which discounts are ultimately applied based on the selected configuration.

Sample tracking of coupon events

You can read more about this in our documentation.

Enriched Webhook Payloads for Plugin Version Release Events

Responding to a feature request from one of our makers, we’ve enriched the plugin.version.released, plugin.version.beta.released, and plugin.version.release.suspended events to include more detailed information about the tag and deployment.

Previously, the payload only included a reference like tag: <ID>. From now on, the webhook payload will include richer data, for example:

{"tag": "1234", "version": "3.0.1", "release_mode": "released"}

This makes webhook automation simpler and more self-contained, especially for workflows like notifying buyers after a new version is released. Earlier, this required an additional API call to fetch deployment details; the webhook payload now includes everything you need upfront.

Email Tone Preferences Now Applied Consistently

Freemius allows customizing the tone of the emails sent to your buyers on your behalf. The tone can be set anywhere between Playful—including emojis and more expressive language in the subject and body—and Professional, keeping the communication formal, clear, and emoji-free.

Email tone customization

It came to our attention that this setting was not being consistently respected for a few system-generated emails, particularly some payment and subscription-related notifications.

We’ve deployed a fix to address this. All emails will now correctly respect your selected tone setting across all supported email types.

See All Buyer Emails Sent by Freemius in One Place

This week we’re rolling out a new feature aimed at helping makers better understand all transactional and automated emails Freemius sends on your behalf to buyers.

If you navigate to the Emails section, you will now see a new tab called Email History. From there, you can view a list of all emails Freemius has sent on behalf of your product.

New Email History section

You can also click Preview to inspect both the HTML and plain-text versions of each email.

Email HTML preview

This is the first phase of the feature. We’ve seen that makers often want visibility into buyer communications without having to wait for specific events to occur. The longer-term goal is to surface all types of emails Freemius sends—such as new purchases, renewal reminders, payment notifications, and cart recovery—upfront and in one place.

If you have practical use cases or suggestions for how this should evolve, please share them on our feature board. We actively review and prioritize feedback there.

Extra Security for “Login as User” in the Developer Dashboard

The Freemius Developer Dashboard allows you to view detailed information about your users. One of the most useful capabilities is being able to log in as a user to the Customer Portal, making it easier to reproduce, inspect, and debug issues firsthand.

Login as user Developer Dashboard

With this week’s deployment, we’ve strengthened the security around this flow. When logging in to the Customer Portal as a user, you will now be prompted to confirm your Developer Dashboard password.

Required developer password for logging in to the Customer Portal

This additional confirmation helps ensure the feature remains secure, even in scenarios where a device may be left unattended or otherwise compromised.

API & Backend Stability Improvements

This week we are rolling out a couple of small bug fixes and quality-of-life improvements across our API and backend systems.

  • We identified an issue where removing all products from a bundle could, in some cases, break the Customer Portal. The underlying issue has been addressed and fixed.
  • The license.created event was not being triggered when licenses were created manually. This has now been corrected, ensuring consistent webhook behavior.

Improved Sidebar Sorting and Icon Validation in the Developer Dashboard

This week, following feedback from our makers, we are deploying a few small quality-of-life improvements to the Developer Dashboard.

  • We are now sorting the product and store sidebar by title. This makes it easier to scan and quickly find related or similarly named items.
    Developer Dashboard Sidebar item Sorting
  • We previously allowed non-square icons for products and stores, which could lead to inconsistent rendering in PDFs, Checkout, and other system-generated surfaces. The UI will now enforce square icons where required to ensure consistent presentation.

Customer Portal Now Blocks Renewal of Cancelled Licenses

We received a bug report where the Customer Portal allowed customers to manually renew licenses that had already been cancelled.

Cancelling a license is a deliberate action taken by makers from the Developer Dashboard. In such cases, it’s expected that the license cannot be renewed by the customer afterward.

Disabled renew button in the customer portal

To align the Customer Portal with this behavior, the Renew button is now disabled for licenses that were manually cancelled by makers. A tooltip is also shown to explain why renewal is no longer available in these cases.

Trial Reminder Consent Now Accurately Shown in Review Step

Freemius Checkout shows a checkbox for trial purchases that allows buyers to opt in to receiving a reminder email before the trial ends. This reminder helps buyers stay informed before an upcoming charge and gives them time to decide whether to continue or cancel. The same email also plays an important role in reducing disputes and chargebacks.

Freemius checkout with trial reminder checkbox

However, we noticed that the buyer’s selection was not being properly reflected in the Review step. The UI always indicated that a reminder email would be sent, even when the buyer had explicitly unchecked the checkbox.

Trial reminder in the review step

This has now been fixed. The review step will correctly reflect the buyer’s choice and clearly indicate whether a trial reminder email will be sent.

UX Improvements to Review, License Recovery, and Exports

This week, we released several quality-of-life improvements to our Developer Dashboard, with a focus on exports and the Review & License Recovery apps.

Improved UX of the Review & License Recovery App

Following our recent rebranding of the License Recovery and Review app, we’re rolling out a set of UX improvements to make these applications more intuitive and resilient.

Review App Form Error

The forms are now reactive to validation issues upfront, helping users identify and resolve problems earlier in the flow. We also addressed a few layout inconsistencies to ensure a cleaner and more predictable experience.

Fixes in the Exports

We identified a couple of minor gaps in our export mechanism that could lead to missing context in exported data.

Export licenses from the Developer Dashboard

  • The licenses export was missing the license key
  • The affiliates export was missing the user ID

Both issues have been resolved with today’s deployment, ensuring exports now include all the expected fields.

Fixed License Unit in the Analytics UI

We noticed an issue where the license unit was not correctly reflected in the Analytics filtering UI.

Live filtering UI in the Freemius Developer Dashboard

This has now been fixed, and the label correctly reflects your configured license unit.

VAT Collection and Remittance Now Supported for Norway

We are glad to announce that we have started collecting, reporting, and remitting VAT in Norway for all B2C transactions. The VAT handling follows the same model used for other European authorities.

For applicable transactions where VAT is collected, a compliant VAT invoice is automatically generated.

VAT invoice for Norway

The invoice clearly shows the VAT amounts in both the original transaction currency and the local NOK currency, as required by regulations.

For B2C transactions, companies can enter their Norwegian VAT number and, after validation, will be exempt via the reverse-charge scheme.

Freemius Checkout with Norway VAT Reverse Charge

The rollout is automatic and applies to all Norwegian transactions from now on.

Load more