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.

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:

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.

New Feature: Reverse Invoices for your Payouts

At Freemius, we’re committed to simplifying all aspects of your compliance work. In that spirit, we’re excited to introduce a new feature: we now generate Reverse Invoices on your behalf for your payouts.

Getting paid through Freemius is easy — whether it’s via PayPal, wire transfer, or Payoneer. On the Earnings page, you can view your monthly payout amounts.

Now, on the same Earnings page, you’ll find the option to download a Reverse Invoice for each payout.

Freemius Developer Dashboard Earnings page

These invoices are issued to Freemius on your behalf. To generate them, you’ll need to ensure your billing information is properly set. If you haven’t done that yet, now is the perfect time.

Freemius Reverse Invoice

We hope this addition helps streamline your accounting process. Soon, these invoices will also be included in payout emails.

This feature is currently in beta — if you spot any bugs or have suggestions, feel free to reach out to us through support.

New SaaS Feature: Restrict one subscription per user

In the SaaS world, it’s common (and often expected) for a user to have only one active subscription at a time. However, accidental duplicate subscriptions can lead to unnecessary support tickets, billing disputes, and frustrated users — all of which take time away from growing your product.

To help prevent these headaches, we’ve introduced a new feature that lets you restrict users to a single active subscription. While you could implement this logic yourself, we believe great developer experience (DX) means providing tools that reliably handle these common edge cases for you.

To enforce this simply head to your product’s Settings page and enable the Restrict Single Subscription Per User toggle.

Restricting single subscription per user in Freemius Developer Dashboard

Since this is a common practice among SaaS products, this setting is now enabled by default for all newly created SaaS products. If you created your SaaS product before this update, the feature will be disabled by default, but you can enable it anytime from the settings page.

Once enabled, our checkout will automatically block users from purchasing multiple subscriptions and display an error message like the one below:

Freemius Checkout blocking multiple subscription per user

If you’d like to customize the error message, just reach out to us via support and we’ll help you set it up.

And of course, if you prefer to allow multiple subscriptions per user, you can disable this feature at any time.

At Freemius, we’re always working to reduce friction for makers, so you can focus on building, not battling support issues. If you’d like to suggest more features, please feel free to get in touch with us through support or use our feature board.

Load more