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.

Freemius Checkout is Now EU Accessibility Compliant

We’re excited to announce that the Freemius Checkout is now fully compliant with the EU Accessibility Act, which comes into enforcement on June 28th. This means that by using Freemius Checkout, your website remains compliant with EU law.

Freemius Checkout fully EU accessibility act compliant

But we didn’t stop at just the legal requirements. We’ve gone a few steps further by also implementing recommended accessibility best practices, making sure our Checkout delivers an inclusive and user-friendly experience for everyone.

Here are some of the key improvements we’ve made:

Better Contrast Ratio & Focus States

We updated color schemes and font sizes to ensure compliance with WCAG 2.2 Level AA.

Checkout contrast and focus

Additionally, all interactive elements like buttons and links now have clear focus states, supporting both keyboard and assistive tech navigation.

Best Possible Keyboard Navigation

We audited and improved keyboard navigation across the entire Checkout experience.  There are no keyboard focus traps, and every component is now fully navigable using the keyboard, with relevant focus states clearly visible at all times.

Proper ARIA Live Regions

Freemius Checkout is dynamic. Price calculations and form updates happen in real-time.  

Checkout live region with dynamic text

We’ve added ARIA live regions to ensure screen readers can detect and announce content changes appropriately.

Checkout form validation with descriptive text

All form validation errors are now descriptive, with appropriate ARIA roles applied.

Accessible Form Components

Accessible form component

We’ve audited all form elements, both native and custom, to ensure:

  1. Proper use of labels and descriptions
  2. Clear visual states for hover, focus, and errors
  3. Conformance with WAI-ARIA Authoring Practices (WAI-APG) for components like listboxes, landmarks, and buttons

Updated Checkout JS SDK

Accessible Checkout Overlay with Freemius JS SDK

Our JavaScript SDK has also received accessibility enhancements:

  1.  The close (×) button is now always visible, not just on hover 
  2. The modal overlay and iFrame includes appropriate `role` and `title` attributes
  3. The active element is now focused back when the modal closes

If you are using the hosted version of the SDK (https://checkout.freemius.com/js/v1/) then no action is necessary from your side. If you’re using the npm package, then we urge that you update as soon as possible.

With these improvements wrapped up for the Checkout, our next focus is the Customer Portal.  

Stay tuned for further updates and if you notice any accessibility issues or have suggestions, reach out to our support team. We’d love to hear from you!

Rebranded Customer Invoices are Live

Following up on our rebranding project, we are super stoked to announce the availability of rebranded customer invoices as well.

New invoice design - Freemius

All invoices generated by Freemius now come with a fresh, modern design. Customer invoices can be accessed from two places:

This sleek new look isn’t just a facelift, it signals to your buyers that they’re dealing with a modern, reliable, and forward-thinking platform.

Addition of Masked License Key & ID

If you take a closer look, you’ll notice the invoice now includes a masked license key and the ID. This helps buyers quickly identify the purchase they’re looking for. It also improves support workflows — when buyers share invoices with you, you can easily cross-reference them with license keys in the Developer Dashboard.

Stay tuned as we continue rolling out more rebranded components across the platform.

UI/UX and Internal Links Improvement of the Developer Dashboard

This week, we’re releasing a few minor but helpful UI/UX and internal link improvements to the Developer Dashboard.

  1. The API documentation links now point to the correct updated documentation site.
  2. Under Plans → Code/Link, we’ve added direct links to our documentation. This should help new makers better understand how to implement the overlay code and no-code links of our Checkout.
  3. We also fixed a UI issue with popovers, where multiple popovers could stay open at the same time. This has now been resolved.

Kickstarting Email Rebranding

As part of our ongoing rebranding project—where we’re modernizing every aspect of our platform and product—we’re excited to announce the next phase: emails.

Freemius rebranded email

We’ve redesigned our email templates and have begun rolling them out gradually. Starting today, you’ll see the new modern look for several purchase-related emails.

In the next few weeks, we’ll be rolling out more transactional emails, including those sent to your customers and users.

These changes are non-breaking. Any existing customizations will remain intact. For customer and user emails, you’ll need to opt in to the new system. Stay tuned—more details coming soon.

Feature Unlocked: Checkout Success Redirection for All Product Types

A while ago, we announced a new feature for the Checkout allowing you to set a redirection URL after a successful purchase. Initially, this was limited only to SaaS products.

However, based on feedback from our makers community, we’re now unlocking this feature for all product types supported by Freemius.

A post-checkout thank you or “purchase completed” page can be useful in many scenarios, especially when the Hosted Checkout link is shared via email, social media, or other marketing channels.

Freemius Developer Dashboard showing configuration option to redirect to specific URL after successful Checkout

To get started, head over to the Plans → Customization section and enable the Checkout Success Redirection switch. More details are available in our documentation.

Additional Improvements

  • The redirection URL now includes amount, tax, and currency as query parameters.
  • To improve clarity the action query parameter has been extended to include:
    • payment_method_update – When the buyer has just updated the payment method without changing any plans or pricing.
    • license_update – When the buyer has updated the plan or pricing of the license.
  • Fixed an edge case where redirection data wasn’t properly populated for iDEAL checkout flows.

API Fixes for License Upgrade and Deployment Update Endpoints

Bug Fix for Checkout Upgrade Link Generation API

We’ve rolled out updates to the recently released API endpoint for generating upgrade links for licenses.

  • The links now use time-limited authorized tokens instead of license keys, improving both security and alignment with best practices.
  • We also removed the currency parameter from the payload documentation. This was mistakenly included earlier — Freemius does not support changing currency through the license renewal or upgrade flow.

Upgrade links provide a great UX for your buyers to manage their subscriptions. You can find the detailed documentation here.

Bug Fix for Deployment Update API Endpoint

We noticed an issue in the deployment update API endpoint where the limit value was incorrectly accepting negative integers and converting them to 0.

The limit value is used for staged rollouts — a great way to gradually release deployments, helping to catch bugs earlier within a tighter feedback loop. However, due to this bug, an incorrect value would essentially disable staged rollout altogether.

Staged rollout UI update for rejecting negative value - Freemius Developer Dashboard

This bug has now been fixed. Additionally, we’ve updated the UI to prevent negative values from being submitted.

Improved Error Message for Single Subscription Limitation

Previously, we released a feature that allows you to enforce a single-subscription model for your SaaS.

When this feature is enabled, our Checkout shows an error message if an already subscribed user attempts to subscribe again.

Improved error UI in the Freemius Checkout for Single Subscription model, linking to the currently active subscription management page

With this release, we’ve enhanced the UI by automatically including a link that directs users to upgrade their subscription. The link leads to the Freemius-managed Customer Portal, offering an out-of-the-box experience for your buyers to manage their purchases and licenses.

Removed Skype as Support Option from the Plans

Historically, Freemius allowed adding Skype as one of the support channels configured for a plan. This information would appear in various places such as post-purchase emails, helping your buyers easily reach out for support.

Freemius plan configuration for adding support channels.

With Skype being gradually phased out, we have now removed the functionality and the associated UI from our system. For those who had Skype set up as a support option, it has been automatically removed and will no longer appear in any relevant areas of the platform.

Fixed Authentication Issue with Tokenized Invoice URL

As Freemius now issues Reverse Invoices and includes them in Payout emails, we identified an authentication issue with the tokenized invoice links. The issue occurred when accessing the invoice link while being logged into the Developer Dashboard with a different account. This particularly impacted makers who shared the invoice URLs with team members holding accountant-level access.

Reverse Invoice link in Payout emails generated by Freemius

Previously, we recommended using an incognito window to work around the issue, but we understand this was far from ideal.

With today’s deployment, this problem has been resolved. The tokenized secure download links for invoices will now work seamlessly, regardless of the account you’re logged into.

Fixed Payment Method Update Bug

We discovered an edge case bug where, in some rare scenarios, our payment method update process would display an incorrect error message. Although the payment method was updated successfully, the UI mistakenly indicated a failure—causing unnecessary confusion for buyers.

The root cause of the issue has been identified and a fix has been deployed.

Launch of our API Documentation

We’ve been working on this for a few months now, and today we’re excited to officially launch our API Documentation!

Freemius API Documentation Website

You can explore the new documentation site here: https://docs.freemius.com/api

All our endpoints are now properly documented to help SaaS makers quickly find what they need to build the custom integrations they envision.

Additionally, we’ve added detailed documentation on Deployments — perfect for WordPress makers looking to tap into the full power of the Freemius API for advanced automation.

Our API is fully documented using the OpenAPI v3 specification, so you can easily download the raw schema and use it with your preferred tools — whether it’s to generate client libraries, test requests, or integrate with Postman or Swagger UI.

Smarter SaaS-Friendly Discount Calculation, Renewals UI, and Other Checkout Improvements

This week we’re rolling out several SaaS-friendly improvements to our Checkout.

Smarter Discount Calculation

Previously, our discount calculation was limited to 2 or 3 decimal places — sufficient for the WordPress ecosystem but limiting for SaaS products where pricing often involves high precision (e.g., bulk credit purchases where each unit costs less than 0.0001).

Freemius Checkout smarter unit price calculation showing 0.0001 unit price

Our Checkout is now smart enough to detect such cases and display the correct level of precision. Additionally, large numbers in the license unit section are now formatted for better readability.

Improved Line Item to Show Renewal Price

Based on feedback from our maker community, we’ve added more clarity to the renewal pricing. Specifically, when there’s a discount involved (e.g., annual or volume-based discounts), the Checkout will now display a “Renews” line item just after “Today’s total”.

Renewals price UI in Freemius Checkout

You can also force this line item to always appear — even when there’s no discount — by enabling the always_show_renewals_amount configuration.

Responsiveness Improvements in Hosted Checkout

We’ve made layout improvements to enhance the responsiveness of the Hosted Checkout.

Freemius Hosted Checkout

The Checkout now adjusts more gracefully to both vertical and horizontal screen sizes, offering a smoother and more optimized buying experience across devices.

Improved WordPress Deployment Screen UI and Misc Documentation and UI Updates

Deployment Page Improvements

Freemius offers a fully managed deployment solution for various WordPress products — including Plugins, Themes, Templates, Widgets, and more. Among the many features, we take care of Free and Premium version generation, license activation, and pushing updates to your buyers’ sites.

Deployment page UI - Freemius Developer Dashboard

We realized that many of these features weren’t well surfaced in the deployment page UI. So, we’ve rolled out an update to better expose the most commonly used features, such as:

  1. Deployment Automation – With our community-powered GitHub Action and other libraries.
  2. Paid and Free Version Generation – Clearer information on how these versions are generated.
  3. Release Management – Documentation on using staged rollouts and incremental versions.
  4. Composer Integration – Guidance on leveraging Freemius’ built-in Composer support.

We’ve also updated our documentation to reflect these enhancements. In addition, we’ve opened up the relevant API endpoints to work with your product’s Bearer Token — allowing you to create new versions directly from your CI/CD pipeline.

We hope these updates help you streamline and automate your version deployments more effectively.

License Unit Customization

We’ve published new documentation covering license unit customization for SaaS and App products.

Freemius Pricing page showing Unit Label Customization

To help surface this feature better, the pricing page UI now displays a tooltip near the license unit until it’s customized.

Fixed Sidebar Drawers

We identified and resolved a UI regression affecting sidebar drawers in Dark Theme mode.

Freemius Sidebar Drawer UI in Dark Theme

The drawers now render correctly across both light and dark themes.

Reverse Invoice Bug Fixes and Improvements

Last month, we released the Reverse Invoice feature within the Payouts email, eliminating the need for our makers to manually send invoices to us as their Merchant of Record (MoR).

Following the rollout, we identified a few edge case bugs that prevented invoice generation for a small number of makers. These issues have now been resolved and the system has been updated accordingly.

We also introduced a few improvements based on feedback and internal reviews:

  • For FinTech banks (e.g., Wise, Revolut, Evolve), the invoice will now use the maker’s billing address instead of the bank account address.
  • Freemius’ own address on the invoice is now consistent across all payout methods, regardless of whether it’s a wire transfer via Mercury or otherwise. Previously, our registered address varied based on the payout channel.
  • The label “Service Month” has been updated to “Service Period” to better reflect multi-month invoice coverage.

If you notice any further issues, please let us know.

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.

Load more