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.

Improvements to the wire payout methods

As you sell with Freemius, you have various options for your payouts, including wire transfers, where the money is sent directly to your bank account.

You can transfer earnings from different currencies to the same or different bank accounts, with the option to convert the earnings to any target currency of your preference.

However, there are certain restrictions on wire transfers that are beyond our control. For example, transferring PKR (Pakistani Rupee) to a PK business account through wire transfer is not supported by regulation.

This week, we are rolling out updates to surface these restrictions directly in the UI as you configure your payout settings. This improvement will help you choose the right currency and avoid delays in receiving your payments. As always, we strive to make the payout process as efficient and transparent as possible—after all, it’s your money.

New Feature: Affiliate Payouts Download

As part of our ongoing Data Liberation Project, we’re excited to announce a new capability: you can now download affiliate payout data directly from your Developer Dashboard!

Freemius’s built-in affiliate platform helps boost your marketing efforts by tracking all sales made through affiliate links and managing calculations for affiliate payouts. This data, available under the Payouts tab on the Affiliation page, can now be exported with ease.

This feature marks the completion of our Data Liberation Project. At Freemius, we value transparency and are committed to ensuring you have full control of your data. Now, you can access and take your data wherever you need.

If you missed earlier updates on this project, check out our detailed blog post to learn more!

Checkout Bug Fix: Currency Selection

We identified an issue where the requested currency was not being honored during Checkout if the plan_id parameter was missing.

Historically, we recommend including the plan_id parameter when using our Checkout. When it is not provided, the system defaults to loading the cheapest visible plan.

However, in such cases, the currency parameter was not being applied correctly, even when specified.

This issue has now been resolved, and the requested currency will be respected as intended.

Minor Bug Fix: Whitelisted License URL

Freemius includes a feature that allows customers or buyers to whitelist a license, enabling activation only on selected sites.

We identified a UI regression where the requested URL occasionally failed to appear in the whitelist. The root cause has been addressed, and a fix has been deployed.

Affiliates Terms Page Improvements and Contact Form Bug Fix

This week we are releasing a few housekeeping updates, mostly aimed at maintenance and bug fixes. Out of those, the following are noteworthy.

Affiliates Terms Page Styling Improvement

We have updated the style of the affiliates terms page, taking it at-par with the rest of the legal pages generated by Freemius. Link of such page is included automatically when a user signs up for the Affiliate Platform. The platform can significantly boost your marketing efforts and sales, so we recommend checking it out.

SDK Contact Form Bug Fix

Our maker reported some console error being shown by the SDK’s standalone contact form. While the error itself didn’t break any functionality, we understand it can be annoying, especially to our tech savvy makers. We have investigated and fixed the issue from our end.

Improvements to the Subscription Cancellation Coupon Trigger

Freemius supports setting up a special coupon to appear when a buyer is canceling their subscription. This feature is very helpful in reducing churn rates.

As a maker, you just need to set the coupon up from the Developer Dashboard. Now, when a buyer clicks the “Cancel Auto-Renew” button through the Customer Portal, the system will automatically show a pop-up like the one above.

However, due to limitations of payment gateways, sometimes it is impossible to apply the discount to the next immediate payment from the subscription.

To improve the system, we’ve made it smarter by detecting such scenarios and preventing the pop-up from showing. This, in turn, will help reduce disputes.

Checkout Language Selector UI Improvements

Recently, we introduced flags next to the language selector in our Checkout to help buyers select the language most relevant to their location.

However, we understand that many countries share the same language. For example, Spanish is spoken both in Spain and Argentina.

To make the experience more user-friendly, the UI will now display the relevant flag beside the language corresponding to the user’s location.

For instance, if the user is coming from Argentina, the Argentine flag will appear next to the “Español” language option.

Remember, you can always use the language: 'auto' option to load the Checkout in the buyer’s preferred language through the Checkout JS SDK.

Added Tax Information in Payments and Subscription Pages

As a Merchant of Record, Freemius handles EU VAT and US sales tax compliance on your behalf, so you don’t need to worry about the complexities of tax regulations.

To enhance transparency, we’ve added a new feature to display tax information directly in the Developer Dashboard. Previously, tax details could only be accessed through the API.

With this update, the Subscriptions page now shows a tax percentage icon next to the “Per cycle” price, revealing the tax rate applied to each subscription.

Additionally, the Payments table now displays the actual tax amount collected when Freemius processed the payment.

Please note that these tax amounts are not part of your gross revenue. They are collected in addition to the price you set and are submitted by Freemius to the appropriate tax authorities.

Additionally, we’ve improved the tooltips for various discounts associated with a payment or subscription, including pro-rated discounts, coupon discounts, and more.

Version 1.1.0 of the Freemius Checkout JS SDK

We’re excited to announce the release of version 1.1.0 of the Freemius Checkout JS SDK! This update introduces a backward-compatible enhancement, allowing you to use product_id instead of plugin_id (because we support various kinds of products, not only plugins).

We also improved the type system to provide better TypeScript intellisense.

The change is also reflected in our Developer Dashboard.

Simply go to the Plans page and click on the Get Checkout Code button to get started.

If you’re using the CDN version of the Checkout JS, no actions are necessary from your end. If you’re using NPM or other package manager, be sure to update to the latest version.

Various Improvements for the Developer Dashboard

This week, we’re deploying several updates to the Developer Dashboard, including improvements and bug fixes

Improvements to Product Ownership Transfer

Freemius has long supported ownership transfers, which is especially useful if you’re selling your business.

We identified and fixed a glitch in the system where ownership transfers could be blocked in certain cases due to recent enhancements to the API system.

While addressing this issue, we also discovered and resolved a couple of edge-case bugs. The entire transfer system, including the team member UI, should now work flawlessly.

Better Filtering for the Custom Webhook Integration

With Freemius, you can add webhook listeners for custom integrations. Freemius logs numerous events throughout a product’s lifecycle, such as when a new subscription is created or canceled.

As a product owner, you can use these events to trigger responses in your own system.

We discovered that the UI for filtering events was incorrectly displaying events not scoped to the selected product. This issue has been resolved, and we’ve also made performance improvements for a smoother experience.

Other Enhancements and Bug Fixes

  • Fixed an issue where adding a new whitelisted site could cause errors.
  • Resolved a bug where some URLs incorrectly triggered the product code change pop-up.
  • Added toast notifications to confirm successful operations when reordering or toggling features on the Plan page.

New Feature to Export Sites

As part of our ongoing Data Liberation project, we’ve added export functionality for Sites.

To get started, navigate to the Sites page under your Developer Dashboard and click Download in the top-right corner.

We’re nearing the finish line for this project—stay tuned for more updates!

WordPress SDK: License Activation and Opt-In Improvements

We’re introducing changes to our backend to enhance the experience of using the WordPress SDK.

Activating licenses for deleted plans

Previously, we added a temporary restriction to prevent makers from deleting plans with active, non-expired licenses. This measure was put in place to avoid scenarios where buyers couldn’t activate licenses tied to a deleted plan.

However, we aim to offer makers the flexibility to delete plans (e.g., to deprecate them) while still enabling buyers to activate their valid licenses.

In this update, we’re rolling out the following improvements:

  1. Plan Deletion Flexibility: Makers can now delete plans even if active licenses are associated with them.
  2. License Activation Support: The SDK now fully supports activating licenses linked to deleted plans.

If you’re already using version 2.9.0 of the WordPress SDK, no further updates are required on your end.

Preventing free plan opt-ins for premium-only products

We identified an edge case where users with malicious intent could modify the SDK integration code within a WordPress plugin or theme to attempt opting into a product’s free plan.

Although this did not pose any security risk, it led to the creation of unnecessary sites, even when the product did not offer a free plan.

With this deployment, we’ve implemented measures to actively detect and block such requests.

Improved staging site support

Freemius provides out-of-the-box license utilization for staging and development sites. We’ve enhanced our system to include support for additional well-known staging providers, making it even easier to manage licenses during development.

Checkout Bug Fix for Invalid Pricing

We identified an issue where, if a maker intentionally left a pricing field blank, the checkout could load in an invalid state. In such cases, the checkout incorrectly displayed the price as zero, even though it wasn’t intended to show up at all.

For instance, a maker might choose not to offer single-unit pricing. In these scenarios, the checkout should automatically load with the nearest lower unit pricing by default.

We’ve resolved this glitch and deployed a fix to ensure the checkout behaves as expected in such cases.

Generate Secure Download Links for Orphaned Licenses

Freemius allows makers to create licenses that are not initially associated with any user. Once a user activates the license, the association is automatically established. This feature is especially useful for sharing custom licenses with reviewers or affiliates to try out a product.

The Freemius Developer Dashboard also includes a feature to generate secure download links for products directly from the Licenses page. However, we discovered a bug where the UI failed silently if the license was not associated with a user.

We’ve fixed this issue! You can now generate secure download links even for orphaned licenses.

Fixed Plan Title in License Recovery Email

We have a special app available at:

https://dashboard.freemius.com/license-recovery/?developer_id={developer_id}&module_id={module_id}&module_slug={module_slug}

This app can be shared with your buyers as a self-service tool for recovering lost license keys and download links.

Simply replace:

  • {developer_id} – With the ID of your profile.
  • {module_id} – With the ID of your product.
  • {module_slug} – With the slug of your product.

We identified a glitch in the email copy, where the unique plan name was displayed instead of the user-friendly plan title. This issue has now been resolved.

Load more