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.

Enhanced Checkout Accessibility, Billing Selector Logic, and iDEAL Flow Fixes

This week we are releasing a few UI/UX improvements to the Checkout, aimed at enhancing accessibility and fixing a bug related to the newly introduced iDEAL flow.

Improved Accessibility of Dropdowns

We’ve enhanced the license and billing cycle selector dropdowns to be fully accessible for keyboard users. The dropdowns now behave just like native elements — users can tab into them, navigate using arrow keys, and select using space or enter. The Escape key also closes the dropdown.

This marks an important step in our ongoing push toward improved accessibility, aligning with — and aiming to exceed — the new standards set by the EU Accessibility Act.

Improved Behavior of Monthly Billing Cycle Selector

Our Checkout offers two UI approaches for the billing cycle:

Upsells – the recommended and default way to show billing cycle options as toggleable upsells:

Freemius Checkout Upsells with togglable switch

Billing Cycle Selector UI – a dedicated UI for billing cycle selection:

Freemius Checkout billing cycle selector UI

Previously, both interfaces would only display the monthly billing cycle if:

  • The show_monthly_switch flag was explicitly set, or
  • The Checkout was loaded with the monthly billing cycle.

Following feedback from our makers, we’ve updated this behavior. Now, the monthly billing cycle will show by default if no billing cycle is explicitly passed when loading the Checkout.

To streamline configuration, we’ve introduced a new show_monthly flag for use with the Checkout JS SDK and Hosted Checkout. The older, more verbose show_monthly_switch parameter is now deprecated. With the updated billing cycle UI, the _switch suffix no longer aligns with the current design.

Fixed VAT Number Validation Issue with iDEAL Checkout Flow

We recently introduced the new iDEAL payment flow in our Hosted Checkout:

Freemius Checkout VAT Number UI with iDEAL payment method

This week, we fixed an edge case where the VAT number would occasionally be lost after the redirect step in the iDEAL flow. This issue did not impact any completed transactions — we had already patched the affected cases retroactively.

Minor Bug Fixes Across the System – Reverse Invoices & UI

This week we are releasing several small but important bug fixes across our system:

  • Reverse Invoices: We fixed an issue where the system would occasionally fail to generate the reverse invoice.
  • MailChimp Integration UI: A minor UI issue was identified in the MailChimp integration form within the Developer Dashboard. This has been fixed.
  • Customer Portal Updates:
    • The portal was still displaying our old logo — this has now been updated.
    • We also improved the copy around the login form to make it clearer and more user-friendly.

New Payment Method in Freemius Checkout: iDEAL for Netherlands

We are excited to announce the immediate availability of a new payment method for buyers from the Netherlands: iDEAL. iDEAL is the most popular payment method in the Netherlands, and since we have many buyers from the NL, it has been on our radar for quite some time. Today, we are rolling out support in a gradual manner.

Freemius Checkout now supports iDEAL payment

Currently, if you’re using the hosted Checkout from Freemius and your product is set to the EUR currency, you will notice that iDEAL is both enabled and selected by default for buyers coming from the Netherlands. Buyers can, of course, still choose between Credit Card and PayPal payment options.

To boost conversions from the Netherlands, we suggest that you set up your product pricing in EUR currency. Once you do that, Freemius will handle the rest — automatically displaying the iDEAL payment option and selecting EUR as the default currency based on the buyer’s geo-location.

Please give this feature a try and let us know if you have any feedback or suggestions!

Depending on demand, we will soon roll out support for modal Checkout and other areas, such as payment method updates and our WordPress SDK embedded Checkout. Stay tuned.

Payouts Email Now Includes the Reverse Invoice

Recently, we released the Reverse Invoice feature and made it available from the Earnings page. This week, we are rolling it out to the Payouts emails as well.

Freemius Payout email

Starting next month, if your billing information is properly set, you will notice that we no longer ask you to send invoices to us. Instead, we generate the invoice ourselves (on your behalf — hence, reverse invoice) and include a link in the email for you to download it. You can then use the invoice for your own accounting needs.

Please stay tuned, as we’ll soon start sending you pro-forma invoices at the beginning of each month — so you won’t have to wait until the actual payout to know your current month’s earnings!

New UI for the New Commission Rate

Not too long ago, we revamped our pricing model to better serve SaaS and App makers. Today, we’re rolling out a fresh new UI in the Developer Dashboard to reflect those changes.

Freemius Earnings page Payouts Information UI

When you visit the Earnings page, you’ll now see a new graph that clearly explains the different commission rates Freemius applies based on product type.

These updated commission rates have already been factored into your earnings calculations since the announcement. This UI update is aimed at making things more transparent.

Additionally, the Payouts information section is now collapsible. If you choose to collapse it, your browser will remember the preference—freeing up vertical space and allowing you to instantly focus on your earnings when opening the page.

If you have any questions about the new pricing, feel free to reach out via support.

UI/UX Bug Fixes in the Developer Dashboard and Customer Portal

We have rolled out the following bug fixes and improvements in the Developer Dashboard:

Once you enable the Affiliate Program, the ID of the program is now properly visible in the UI. There was a bug where it wasn’t showing up in some edge cases.

Freemius Affiliate program ID in the UI

The affiliate program ID is useful when you’re accessing it from the APIs for custom integrations.

Additionally

  • We also noticed and fixed a few alignment issues across different parts of the UI.
  • The “App Update UI” has been made a little smarter — it will now be hidden on irrelevant pages to keep the interface cleaner.

For the Customer Portal

It was brought to our attention that the password reset form was missing proper validations for certain fields, causing UX issues, especially for users setting very long passwords.

Freemius Customer Portal Login Form

We have now made all our password-related forms consistent across the platform, supporting passwords up to 100 characters in length.

Fixed Bug in Transferring Product Ownership

At Freemius, we make it really easy (and secure) to transfer product ownership. This becomes a valuable tool when selling products or during acquisitions.

Recently, we noticed an edge case where the product transfer was failing if the new owner had not yet registered a store with Freemius.

Freemius Change Owner dialog UI

We have now fixed this bug. If the new owner doesn’t have a store, Freemius will automatically create one for them, using the product’s name as the store name to help them get started quickly.

Various Checkout Improvements

This week, we’re rolling out a series of backend and frontend upgrades to make the Freemius Checkout even smoother and more robust. Here are the highlights:

Smarter PayPal Dunning

Freemius already retries failed PayPal payments automatically. With this update, our dunning mechanism gets even tougher — now more resilient against PayPal’s downtime or server hiccups.

Free Plan Checkout: Polished and Perfected

Freemius Checkout isn’t just for paid plans — it also powers Free Plans, helping you collect leads and marketing consent.

Freemius Checkout Free plan UI in Hosted Mode

After our recent design revamp, a few UI glitches crept into the Free Plan checkout. Those are now fully fixed, and everything looks spot-on, both in hosted and modal modes.

Additionally, we noticed that translations were not working properly.

Freemius Checkout with fixed translation in dialog/modal mode

This has also been fixed. You can now load the Free Plan checkout in a pre-selected language, and your buyers will be able to switch languages seamlessly.

Better Error Handling

The Checkout will now bail early and display a relevant message in case of an invalid pricing configuration (licenses, currency, etc.) instead of failing silently.

Bug Fix: Reverse Invoices Billing Address

We recently introduced the Reverse Invoice feature, where Freemius generates the payout invoice on your behalf.

We identified a minor bug where, in some cases, the business name on the invoice wasn’t pulled from your bank wire configuration. This issue has now been fixed.

Small Rebranding of our User Dashboard to Customer Portal

In line with our recent rebranding efforts, we’ve renamed the User Dashboard to Customer Portal.

The Customer Portal is a hosted solution from Freemius where your buyers (Customers) can log in to manage their subscriptions, access payment history, upgrade plans, retrieve license keys, download products, and more.

Freemius Customer Portal

It’s completely free and can even be embedded on your website with SSO.

This rebranding is just the first step—more updates are on the way. For now, we’ve updated the logo and refreshed a few outdated phrases. Stay tuned for more exciting changes coming soon!

Bug Fix: Special Coupon UI in the Developer Dashboard

Freemius allows you to set up special coupons to boost your sales and marketing efforts. Simply head over to Coupons → Special Coupons in the Developer Dashboard to get started.

Freemius special coupons UI

We recently discovered a UI bug where clicking the Remove button to reset a special coupon would break the interface, requiring a page reload to recover. This issue has now been fixed.

Checkout UI/UX Improvements

This week, we’re rolling out some minor UI/UX improvements to our Checkout.

Smarter License Selector for SaaS & Apps

By default, our Checkout shows the license selector UI so that your buyers can easily choose the license/quota they want.

Freemius Checkout showing the license selector UI in the header

Previously, this UI would appear even when there was only one license quota available for the plan. While this made sense for WordPress products, it’s unnecessary for SaaS and Apps.

Starting today, the license selector UI will only be shown if your plan has more than one license quota available.

Freemius Checkout without the license selector UI in the header

Note: You can still use the hide_licenses option to hide the selector for other product types or even when your plan has multiple license options.

Updated Loading Spinner

Since the release of our new Checkout JS SDK, we’ve supported custom spinners that appear while the Checkout loads.

The updated spinner for the Freemius Checkout

However, we realized that the default spinner hadn’t been rebranded. That’s now fixed. Starting this week, once a buyer clicks the buy button on your website/app, the updated spinner shown above will appear.

Bug Fix in Webhooks: License Key Now Included in All License Events

We recently discovered that the license key was unintentionally omitted from all license-related webhook events. This issue has now been resolved. Webhook listeners will now receive the full license object, which includes the secret_key property — representing the license key.

New API Endpoint to Generate License Upgrade Links

We’ve rolled out a new API endpoint that allows you to automatically generate Freemius Checkout links for upgrading a license.

While our Customer Portal already handles license upgrades internally, this endpoint is especially useful for SaaS makers who want to implement their own billing experience.

You can read more about the endpoint in our documentation. In a nutshell, from your product’s scope, make a request like:

1
2
3
4
5
6
7
8
9
10
11
12
13
POST /v1/products/{product_id}/licenses/{license_id}/checkout/link.json HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer 123
Host: api.freemius.com
Content-Length: 127
 
{
  "plan_id": "planID",
  "billing_cycle": "annual",
  "quota": 1,
  "currency": "usd"
}

The response will include:

  1. url – The URL of the Hosted Checkout
  2. settings – Configuration parameters you can pass directly to the Checkout JS SDK
  3. expires – The datetime when the URL will expire

We hope this new endpoint, along with Checkout Redirection and Webhooks, helps streamline your SaaS integration. As we continue improving the SaaS developer experience, please reach out via support with any questions or feature suggestions.

New Feature: Redirect After Successful Checkout

We released a new feature this week for our Hosted Checkout — you can now configure it to redirect to a specific page after a successful purchase. The redirected page will automatically receive purchase-related data.

This is especially helpful for SaaS makers who want to use Hosted Checkout directly within their software, email marketing, social platforms, etc.

Here’s how it works:

  • You share Freemius Hosted Checkout links.
  • Your customers make a purchase.
  • Our Checkout redirects back to your SaaS website.
  • You post-process and grant access to users immediately.

Currently, this feature is available for SaaS-type products only. To enable it, go to Plans → Customization and toggle the switch to get started. To learn more about how to use this feature and verify the purchase data please read our documentation.

Enable Checkout Success Redirection from Freemius Developer Dashboard

If you are not using Freemius for SaaS, but using for other products like WordPress plugins/themes or Apps, and if you have a valid use-case of this feature, please let us know through support and we might consider enabling this for other product types too.

Load more