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.

Fix for manual license assignment in Developer Dashboard

Freemius Developer Dashboard allows you to easily create licenses for your potential customers manually. This helps in providing short-time access to potential buyers without requiring them to go through the entire Checkout or Trial process.

You can navigate to the Licenses page and then click the Create License button to get started.

Freemius Developer Dashboard License Email Fix

However, we noticed a regression where even after entering an email address, the license was not being assigned to the customer. We have identified and fixed this issue.

Hosted Checkout Redirect: Trial Support + New Parameters

Freemius supports redirecting the Hosted Checkout after a successful purchase. This enables immediate post-purchase handling for SaaS and apps when you prefer not to wait for webhooks and want to process data right away.

We discovered that redirects were not triggering for Free Trials. We’ve fixed the issue to ensure trials behave consistently with paid purchases.

Enable redirect Freemius Checkout

Alongside the fix, the redirect now includes additional query parameters so you can branch your logic without extra API calls:

  • action – One of purchase, license_update, payment_method_update, or trial, indicating the type of action performed.
  • trial – For trials, either free or paid, describing the trial type.
  • trial_ends_at – For trials, a YYYY-MM-DD HH:MM:SS timestamp indicating when the trial ends.

 

Clarifying Affiliate Payment Cooling-Off Period in Emails

Freemius has a powerful affiliate platform where we track sales made by affiliates and send updates to both the seller and the affiliate. These emails also hint at the tentative time when the affiliate payment will be cleared.

In general, we include a cooling-off period of 60 days to ensure that any payments associated with affiliates can be validated against potential refunds or disputes. This makes the platform more trustworthy for both sellers and affiliates.

However, we noticed that the previous copy was not fully clear and caused some confusion. It mentioned that the payout date was due to a “30-day refund policy of the product.” While that used to be correct long ago, makers now have the flexibility to customize refund policies. Regardless, the cooling-off period is there to properly process refunds and disputes.

To make this crystal clear, the email copy has now been updated to:
“We include a short cooling-off period so any refunds or disputes can be handled first.”

Improved Formatting in Pro-Forma Invoices

In the beginning of every month (payout cycle) Freemius sends automatic emails to our makers explaining the upcoming payout along with a copy of a pro-forma invoice.

This week we are rolling out a small but important update to the pro-forma invoice. We identified two issues: in some places the date/time was not properly formatted, and a negative - sign was incorrectly added to zero values.

Pro-forma invoice formatting fixes

Both issues have now been fixed, ensuring your invoices are cleaner and more accurate.

Improved Validation for Opt-In Redirection URLs

Our SDK Integration page from the Developer Dashboard allows you to configure various settings to tailor the Opt-In experience as per the behavior of your plugin.

One such option is to enter a redirection path that triggers after the plugin activation. When enabled, the SDK ensures the user is redirected to the specified URL after the Opt-In is completed.

However, we noticed a bug where makers could mistakenly enter the redirection URL in absolute form instead of relative form. This often happened when the full URL was copy-pasted directly from the browser without stripping the unnecessary parts. As a result, the SDK integration and Opt-In flow could break.

Freemius WP SDK activation redirection option

To fix this, we’ve now updated our UI to strictly accept only relative URLs for Opt-In redirection. This ensures consistency and prevents accidental misconfigurations.

Customize Customer Portal Links in Transactional Emails

Whenever someone buys your Freemius-powered product, Freemius automatically includes a link to the Customer Portal. This is especially useful for downloadable software where Freemius acts as the direct agent of fulfilment. Your customers can download the product and manage license information from a single place.

Freemius post-purchase email with link to Customer Portal

However, we understand that there are cases where, as a maker, you may not want links to the Customer Portal included. For example, in SaaS products this experience is often managed directly within the application. Similarly, for downloadables, some makers prefer to handle the portal experience themselves.

To support these scenarios, we’ve rolled out a new option under the Emails section of your product. Simply go to Emails → Customization and control whether post-purchase emails should contain the Customer Portal link or not.

Freemius post purchase email config

To simplify the experience, this setting is turned off by default for SaaS products, while for downloadable products (such as apps or WordPress plugins/themes) it is turned on by default.

New Safeguard Against Uploading Premium Code to the WordPress.org Repository

We’ve been working closely with the WordPress.org plugin review team to implement a new safeguard in our system that prevents accidental uploading of premium versions of a product to the WordPress.org plugin repository.

Freemius’ deployment mechanism automatically creates a free, wp.org-compliant version of your product whenever you upload the premium version’s zip file. Makers are then expected to upload that free version to the official repository. However, mistakes can happen—sometimes the premium file gets uploaded instead. This often results in wasted time and back-and-forth with the Plugin Review team.

To solve this, and based on the review team’s recommendation, we’ve implemented a gatekeeping mechanism. Our integration code now includes a unique snippet: if that snippet is present, WordPress.org will block the submission and notify the maker of the error immediately.

Freemius SDK Integration snippet with gatekeeper

Meanwhile, Freemius’ deployment process automatically strips this snippet from the generated free version. This ensures that when the correct variant is uploaded, the submission proceeds smoothly without interruption.

Please note that no updates to the WP SDK are required for this rollout. We urge existing makers to immediately update the integration snippet as shown in the Developer Dashboard to take advantage of this feature.

License Table, Date-Time, and Code Fence Fixes in Developer Dashboard

This week we are releasing several UI/UX enhancements and bug fixes in our Developer Dashboard. Please find the details below:

Fixed alignment issue in the license table

We noticed an alignment glitch when bundle license icons were being displayed on the license page. We have fixed this and repositioned the icon after the plan name to ensure a consistent visual layout.

Bundle license icon in table

This UI provides a quick way to see the licenses generated from the purchase of bundles.

Fixed date-time values in tables

We noticed that some date-time values in certain tables were incorrectly converted into the wrong time zone before being displayed. This led to confusion when compared with data from the Sales Analytics page.

Timezone fix in the Freemius Developer Dashboard

We have identified and deployed a fix. Now all dates in the Dashboard are consistently displayed in UTC timezone.

Improved code fences

We noticed a regression in the code fence components, especially in the dark mode theme.

Code fences in the Developer Dashboard with copy button

This has now been fixed and code fences render properly in all modes. We also did a small triage and ensured that all code fences include a copy button, so you can easily copy-paste snippets.

Enhancing the Registration Experience for Makers

This week we are rolling out some important improvements to the Developer Dashboard’s registration page.

Freemius Developer Dashboard Registration Page

We have introduced a mandatory question asking what the person wants to sell with Freemius. This gives us valuable insight into our new makers and ultimately enables us to provide them with better guidance and support.

We also added a direct link to the Customer Portal for potential buyers looking to access their purchases. Over time, we noticed that buyers sometimes confused the Developer Dashboard with their Customer Portal. This new link should help reduce confusion and improve the overall user experience on our platform.

Additionally, we’re now asking how the person heard about us to better understand which platforms are helping us reach new makers. This field is optional, as we don’t want to add unnecessary friction during sign-up.

If you’re a software maker looking to easily monetize your products, you can head straight to our Developer Dashboard.

Better and Embeddable Payment Recovery or Dunning Experience

This week we are releasing a milestone project. Freemius already had a solid payment recovery (dunning) experience where our system would automatically send emails to buyers when a subscription renewal failed. These emails included a link where the buyer could promptly update their credit card.

Freemius Dunning or Payment Recovery Flow

However, we wanted to elevate the experience by taking it several steps further:

  1. Offer the same polished experience as our Checkout, making customers “feel at home” when updating their payment method.
  2. Support switching payment gateways (e.g., between PayPal, Card, or iDEAL) within the same flow.
  3. Allow makers to embed the payment recovery flow within their own website—just like our Checkout—boosting conversion rates by keeping buyers on a familiar, trusted brand domain instead of the Freemius subdomain.

Today, we’re excited to announce that all these improvements are now live.

New Payment Recovery UI by Freemius

Our new payment recovery flow presents a clear UI where buyers can seamlessly switch between various payment gateways. No additional configuration is required on your end.

Setting up custom recovery URL

From the Developer Dashboard → Plans → Customization page, you can now set a custom payment recovery URL.

Enable custom payment recovery URL from Freemius Developer Dashboard

When configured, our system will link to your URL, and the Checkout JS snippet will automatically trigger the recovery flow. More details are available in our documentation.

Note for the Checkout JS SDK

If you’re using the CDN method, simply ensure the script tag is included in the page, and everything else will work automatically.

<script src="https://checkout.freemius.com/js/v1/"></script>

If you’re using the @freemius/checkout npm package, please update to the latest version 1.3.0 and follow the instructions in our GitHub repository.

Improved WordPress SDK Integration Flow with Smarter In-Page UX

This week we did a small overhaul to our WordPress SDK integration page available from our Developer Dashboard. The SDK integration page provides a very thorough step-by-step guide helping you integrate your WordPress products with our official SDK.

While evaluating and QAing the page — and also while going through support tickets — we noticed a few gaps for new makers. For example, before integrating, it’s possible that the maker has already created paid plans. In this case, the maker would need to create a license to follow through the integration process.

Freemius Developer Dashboard SDK Integration Page

To make it as easy as possible, we have enhanced the page so that you get all the information without even leaving it.

For the case explained above, the page will now show a dedicated button at the relevant step to create a license for the activation screen.

License key generator button in SDK integration page

Once you click to generate the license, it will now be displayed right on the page so you can copy it and activate your test product.

Generated license key Freemius SDK integration page

Several other improvements have also been applied to make the integration steps as seamless as possible, depending on your product’s exact configuration.

SDK integration flow for non-paid plans

We hope these changes help you launch your product faster with us. And at any stage, if you need assistance, our support is just an email away.

Update Your Freemius Account Password from the Profile Page

Starting today, you can change your password directly from the Profile page in your Developer Dashboard.

Previously, the only way to change your password was through the reset link on the login page. But we understand that there are valid scenarios where you’d prefer to change your password without going through a reset flow.

Freemius password reset from the Developer Dashboard

 

Simply head to the Profile page (top right menu) → Security and look for the new Change Password button.

When changing your password from here, you’ll be prompted to enter your current password along with your 2FA code (if enabled). Once changed, all other sessions will be logged out, just like with the standard reset flow.

Freemius password reset form

 

As a side note, we strongly recommend enabling 2FA to protect your account from unauthorized access and potential misuse.

Back Button Icon Improvement & Social Proof UI Bug Fix

Back Button Icon Improvement

When using the hosted version of Freemius Checkout, we render a back button at the top of the page to give buyers a sense of continuity with your website. For example, if your site is https://awesome-saas.com and you open Freemius Checkout from there, our Checkout will automatically display a button that says “Back to awesome-saas.com”.

Freemius Checkout Back Button

Additionally, we also show an auto-detected favicon next to the back button, if one is available from your website.

Back button with Favicon in Freemius Checkout

Previously, we noticed that when our system failed to retrieve a favicon, a generic placeholder image was shown instead. This could cause confusion or even suspicion among buyers who didn’t recognize the placeholder image.

To address this, we’ve made some enhancements to the system. Now, a favicon will only be shown if we’re able to reliably fetch one from your website. If not, we simply omit the icon altogether – avoiding any misleading visuals.

To understand how the back button works and how to customize it, please refer to our documentation.

Social Proofing UI Bug Fix with Redirect Feature

We discovered a bug where the social proofing UI—such as the “Money-Back Guarantee” badge and reviews, were being hidden when the checkout redirected after a successful purchase.

Freemius Checkout Social Proofing UI

This has now been fixed, ensuring buyers continue to see relevant trust signals even during post-purchase redirection.

Fixed Regression in Managing Custom Development or Localhost URL

With Freemius and our WordPress SDK, you can offer free localhost or development mode activations to your customers. While our system already recognizes many known development and staging environments, we also allow you to define custom development URLs per buyer. This flexibility is especially useful for agencies or power users—for example, a buyer might have staging environments like https://staging-123.agency.com.

To support such use cases, you can head over to the User page in the Developer Dashboard and add a custom URL directly from the UI.

Custom Localhost URL - Freemius

Recently, we identified a regression in this UI where data from other products in your store could mistakenly appear. This led to confusion, making it seem like a URL couldn’t be updated or removed, or even that a custom URL was already configured, when in reality, it belonged to a different product.

This issue has now been resolved. You can confidently manage custom localhost or development URLs for your users without any interference across products.

Load more