Skip to content

Migrating from Freemius Licensing to Update WP Full Pay

If you are on an older version of WP Full Pay tied to a legacy Freemius subscription, this guide explains how to migrate to the new licensing system so you can receive plugin updates and resolve Stripe payment errors.

Identify if you are on a legacy Freemius license

Legacy Freemius licensing was used in older WP Full Pay releases. If you are on one of these releases, auto-updates are blocked and certain Stripe payment features will not work correctly.

Check your plugin version:

  1. Log in to your WordPress dashboard.
  2. Navigate to Plugins in the left-hand menu.
  3. Find WP Full Pay in the list and look at the version number shown beneath the plugin name.

⚠️ Important: If your installation still shows Freemius licensing screens, you are on a legacy version tied to Freemius licensing. You will need to migrate before you can update.

Signs that you are on a legacy Freemius license:

  • The plugin's license screen shows Freemius branding or a Freemius-powered activation form.
  • Attempting to auto-update the plugin produces the error: "An error occurred while updating WP Full Pay: Download failed. Unauthorized"
  • Payment forms show a Stripe error containing "Missing required param: mandate_data"
  • Subscription payments fail with the Stripe error: "Cannot create the usage record with timestamp [timestamp] because timestamps must not be in the future"
  • A customer is charged once as a one-time payment instead of being enrolled in a recurring subscription

📝 Note: If your installation is already on the current licensing system, but you are still seeing update errors, see the Download failed. Unauthorized error message article instead.

Why legacy versions cause Stripe errors

Stripe has introduced new requirements for both card updates and recurring/subscription payment flows. Older WP Full Pay releases were built before these requirements were added and do not support them, which means legacy versions can fail in more than one way.

Missing mandate_data error

Stripe now requires a parameter called mandate_data for card updates and certain payment flows. When a customer attempts to update their saved card or complete a payment that triggers this check, a legacy version of WP Full Pay will cause Stripe to reject the request and return:

"Missing required param: mandate_data"

Timestamp API error on recurring payments

Stripe's subscription and usage-record APIs also enforce strict timestamp validation. Older WP Full Pay releases do not handle this correctly, which can cause recurring payments to fail with:

"Cannot create the usage record with timestamp [timestamp] because timestamps must not be in the future"

When this happens, Stripe may process the payment as a one-time charge instead of creating a recurring subscription. The transaction will appear in your Stripe dashboard, but no subscription will be created, and no recurring billing will occur going forward.

Neither of these errors can be resolved by changing your Stripe settings. The fix for both is to update WP Full Pay to a current release.

⚠️ Important: Because legacy versions are tied to Freemius, the standard WordPress auto-update process will not work. You must migrate your license first, then manually install the new version.

Recurring payments fail with a timestamp API error

If a recurring payment fails and you see the error Cannot create the usage record with timestamp [timestamp] because timestamps must not be in the future in your logs or browser console, this is a sign that your WP Full Pay installation is too old to support current Stripe subscription APIs.

What you may observe:

  • A customer is charged successfully, but the payment appears in Stripe as a one-time payment, not a subscription.
  • No new subscription entry appears in your WP Full Pay transaction logs.
  • The Stripe error references timestamps or usage records.

This symptom occurs on legacy Freemius-based versions (for example, WP Full Pay 7.1.7 and earlier). Updating to the latest version resolves the issue — follow the steps in Migrate to the new licensing system below.

📝 Note: If a customer was charged as a one-time payment instead of a subscription, contact Stripe or issue a refund as appropriate before re-enrolling the customer after you have updated the plugin.

Migrate to the new licensing system

Migrating your license is handled by the WP Full Pay support team. Follow the steps below to complete the process.

Step 1 — Contact support

Contact us via the pre-sales page or at friends@themeisle.com and include:

  • The URL of your website where WP Full Pay is installed.
  • Your license details (your original purchase email address or license key, if you have it).

The support team will migrate your license from Freemius to the new system and notify you once it is done.

💡 Tip: Check your original WP Full Pay purchase confirmation email for your license key or the email address used at purchase — this will help the support team locate your account quickly.

Step 2 — Download the new plugin version

Once the support team confirms your migration is complete:

  1. Go to the WP Full Pay customer portal.
  2. Log in using the credentials from your confirmation email.
  3. Locate your WP Full Pay purchase and download the latest version as a .zip file.

Step 3 — Install the new version over the existing one

Because the legacy version cannot auto-update, you need to install the new version manually over the existing one. No payment data or form configurations will be lost during this process.

  1. In your WordPress dashboard, go to Plugins > Add New.
  2. Click Upload Plugin.
  3. Click Choose File, select the .zip file you downloaded from the customer portal, then click Install Now.
  4. When prompted, click Replace current with uploaded to overwrite the existing version.
  5. When the installation finishes, click Activate Plugin.
  6. Enter your new license key when prompted and activate it.

📝 Note: For detailed screenshots of each installation step, see the Installing WP Full Pay guide.

Verify the fix

After installing the new version, confirm that everything is working correctly.

Check the plugin version:

  1. Go to Plugins in your WordPress dashboard.
  2. Confirm that the plugin now runs the latest release available to your license.

Test a recurring payment:

  1. Use a Stripe test card (in Stripe test mode) to complete a checkout for a subscription or recurring product.
  2. Check your Stripe dashboard and confirm that a subscription was created — not a one-time charge.
  3. Check your WP Full Pay transaction logs and confirm the subscription entry appears there as well.

Troubleshooting

Still seeing "Download failed. Unauthorized" after migration

If you receive the "Download failed. Unauthorized" error after your license has been migrated, try the following:

  • Clear your browser and WordPress caches. Cached license data can sometimes cause the old status to persist.
  • Deactivate and reactivate your license. Go to the WP Full Pay license settings screen, deactivate your current license key, then re-enter and reactivate it.
  • Check that the migration is complete. Confirm with the support team that the migration on their end has been finalized before attempting an update.
  • Install manually. Even after a successful migration, the first update to a current release may need to be done manually (see Step 3 above). Auto-updates should work normally for all future updates after that.

If you are still experiencing issues after following these steps, contact us via the pre-sales page or at friends@themeisle.com with your site URL and a description of the error.

📝 Note: For more detail on the "Unauthorized" error in other contexts, see the Download failed. Unauthorized error message article.