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.

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.

Legacy Opt-In Moderation UI Removed from Developer Dashboard

Our Freemius WordPress SDK offers flexibility to existing product owners by allowing them to choose what percentage of users will see the Opt-In screen. This has been a great tool for gradually migrating from a legacy system to Freemius without impacting all users at once.

Previously, this configuration was available through the Developer Dashboard. However, in alignment with wordpress.org guidelines, we had already moved this control from our API side into the WordPress SDK itself.

Today, we’re officially retiring the old UI in the Developer Dashboard that allowed configuring these legacy settings.

Moderation UI update for Freemius WordPress SDK

We had kept this UI active for a while since it takes time for our makers to update to the latest SDK versions. But now, with the majority already migrated and the legacy UI creating confusion for newer makers, we’ve decided to replace the interface with a deprecation notice. In the future, we plan to completely remove it.

Fix: Rebranded Emails Now Properly Scaled on iOS Devices

With our recent deployment of rebranded milestone and transactional emails, we noticed a small regression where a few email templates were not scaling correctly on iOS devices.

Freemius Responsive emails

We’ve identified and resolved the issue. All rebranded emails now render correctly across iOS devices, ensuring a consistent and responsive experience for your users.

We’ve Retired Freebo from Profile Avatars

As part of our ongoing rebranding project, we’ve updated the default profile picture used across our system.

Previously, we rendered our (now retired) mascot Freebo as the default avatar in various places. That has now been replaced with a more modern approach — an image showing the initials of the user.

Freemius new User Avatar

You’ll see this change reflected in the Developer Dashboard and Checkout (for example, when showing reviews).

Full Locale Support in Checkout: Numbers & Currencies Now Localized

Quite some time ago, we introduced localization for our Checkout, releasing it in five languages other than English. Our goal at Freemius is simple when it comes to the Checkout: provide the most optimized experience for buyers.

With that in mind, this week we’re rolling out an enhancement to the existing localization. Now, all numbers and currencies displayed in the Checkout will follow the selected locale or language.

Freemius Checkout currencies localization

This update applies to both the cart section and the final review step shown before payment.

Freemius Checkout Review phase localization with currencies and numbers

We hope this improvement offers a more seamless and familiar experience to your buyers, helping you drive more conversions.

Buyers can always choose their preferred language directly from the UI.

Freemius Language Selector UI

If you’re looking to automatically pre-select the language based on the buyer’s location, you can refer to our documentation for implementation details.

Cart Recovery Coupons Now Respect Your Coupon Rules

Freemius Cart Abandonment Recovery Coupons are a great way to bring back hesitant buyers. Previously, these coupons could only be used in recovery emails if they were completely unrestricted. That meant the coupon had to be:

  • Usable by all users
  • Valid for all plans, licenses, and billing cycles

Freemius Coupon Configuration Window

Many makers asked for finer-grained control, for example, offering a discount only on annual plans or only to first-time buyers. Requiring an unrestricted coupon created extra overhead and risked accidental site-wide discounts.

The recovery engine now honours every rule on your chosen coupon. If a cart-recovery coupon is limited to certain users, plans, licenses, or billing cycles, Freemius detects those restrictions and skips attaching the discount in recovery emails whenever the buyer doesn’t meet the criteria. You get targeted incentives without unintended giveaways.

“Log in as User” Now Safer for Debugging Without Triggering Cart Recovery

Freemius has a very handy feature called “Log in as User”. While working with customer support, it is often helpful to view the Freemius Customer Portal exactly as your customer would see it. This allows you to pinpoint the exact button a customer should click or the specific information they need to look for. To use this feature, simply click the Log in as User button from the Users page of your product in the Developer Dashboard.

Freemius Log in as User feature from the Developer Dashboard

Recently, we noticed that when makers were using this feature to debug license upgrade scenarios, it sometimes created a cart entity on Freemius on behalf of the user. As a result, our cart recovery mechanism was triggered, and recovery emails were sent to the buyer. This could understandably be a little annoying to your customers.

To address this, we’ve now ensured that carts are not created in these scenarios. This means you can safely use the Log in as User feature to debug customer issues without triggering any unnecessary cart recovery workflows or side-effects.

Announcing the New Look for Freemius Milestone Emails

At Freemius, we love to celebrate—and what better occasion than our makers’ success? For a long time, we’ve been sending various milestone emails to our makers, not only to recognize their achievements but also to help chart the next steps toward even greater success.

For example, after your first sale, we invite you to join our exclusive Slack group.

Freemius Milestone Email 1st Sale

Similarly, after your first renewal, we discuss dunning mechanisms and how to optimize your renewals further with special discounts.

1st Renewal Milestone email Freemius

Once you reach 100 sales, we celebrate in style and talk about strategies to increase your Customer Lifetime Value (CLTV).

100th Sale Freemius Milestone email

Today, we’re excited to announce that all of these milestone emails have been rebranded with our new design, and they look fantastic. This, in itself, is yet another milestone in our ongoing rebranding project (see the pun?).

Curious to see these milestone emails in action? Start selling with Freemius and experience each one as you grow.

New API Endpoints to Access and Cancel Subscriptions from a License

We have deployed two new API endpoints this week to ease our SaaS integration experience. In our guide, we ask to store the license ID after purchase to identify the user and their active plan on Freemius. However, we didn’t have a clear way to access the subscriptions of the user from the license itself. The recommended way was to search for the subscription using the user_id from the license. But since a license can have multiple subscriptions associated with it (due to plan upgrades, payment method updates, etc.), we didn’t have a clear instruction or method to find the latest and current subscription associated with the license.

To ease this integration and to provide better Developer Experience, we have introduced two new API endpoints:

Access Subscription of a License

GET https://api.freemius.com/v1/products/{product_id}/licenses/{license_id}/subscription.json

 

This will give you the latest subscription under a license. You can use it to show current billing information to your users. More information can be found here.

Cancel the Subscription

DELETE https://api.freemius.com/v1/products/{product_id}/licenses/{license_id}/subscription.json

This will immediately cancel the subscription and it will not go for any upcoming renewals. The license itself will still stay active until the next renewal time and after that will expire. Find the API reference here.

Checkout Minor UI Fix – Alignment of the Legal Text

We have rolled out a minor UI fix for our Checkout. Specifically, we improved the vertical alignment of the legal text in overlay mode to ensure better visual consistency between the two lines of copy.

Freemius Checkout legal UI update

While this was purely a visual tweak, we care deeply about the quality of our UI and the overall user experience. As a Merchant of Record (MoR), the legal block in the Checkout plays a key role in setting clear expectations with buyers by transparently presenting the terms of sale, service, and privacy policy – all of which are required for compliance and building trust at the point of conversion.

Load more