WPBay now has an optional Freemius integration for WordPress plugins and themes. It lets products that already use the Freemius SDK for licensing and updates be sold on WPBay. WPBay issues a Freemius license to each buyer instead of a WPBay purchase code.

In short: if your product doesn’t already use Freemius, you don’t need this. WPBay’s own licensing (purchase codes, the WPBay SDK and the License API) is the default, has no extra setup and no third-party fees, and covers most products. This integration exists so authors who have built on Freemius don’t have to maintain a second licensing system just to sell on WPBay.

Should you use it?

Use the Freemius integration if…

  • Your plugin or theme already ships with the Freemius SDK and checks its license through Freemius.
  • You also sell it elsewhere through Freemius and want one license system across every store.
  • You rely on Freemius-specific features in the product, such as its in-dashboard updates, activation management or analytics.
  • You’re listing a new product, or one that hasn’t sold on WPBay yet.

Stay with WPBay licensing if…

  • Your product uses the WPBay SDK, or no licensing at all.
  • You’d have to add Freemius just for WPBay. That adds work and possibly fees for no benefit to buyers.
  • The product already has sales on WPBay. Products with sales can’t switch licensing system.
  • You need free trials or plan upgrades/switching for subscriptions. Neither is supported with Freemius licensing.
  • It’s a script or a service. The integration is only for WordPress plugins and themes.

How it works

WPBay stays the store. Freemius provides only the license and its activation. Nothing about how buyers pay you, or how you get paid, changes.

Handled by WPBayHandled by Freemius
Product listing, review and publicationThe license key the buyer enters in your product
Checkout, payment, taxes and invoicesActivating and deactivating sites
Your earnings, commission and payoutsEnforcing the site limit and expiry inside your product
Subscription renewals (collecting payment)In-dashboard updates through the Freemius SDK, if you use them
Refunds, disputes and buyer support 
File downloads and documentation 

What happens on a sale:

  1. The buyer pays on WPBay. Buyers need a WPBay account, so guest checkout is turned off for these products.
  2. Within moments, WPBay creates a license in your Freemius product with the plan, site allowance and expiry the buyer paid for. It assigns the license to the buyer’s email.
  3. The buyer sees the key on WPBay, in their downloads and in My Account → License Manager, and activates it in your product as usual.
  4. Later renewals, refunds and cancellations on WPBay are applied to that Freemius license automatically.

If Freemius is briefly unreachable, the buyer’s payment is never at risk. The license shows as Pending, and WPBay keeps retrying automatically. If it still can’t complete, WPBay staff are alerted and follow up.

Before you start

Checklist

  • The WPBay product is a WordPress plugin or theme.
  • The product is new or unsold on WPBay.
  • You have a Freemius product of the same type (a plugin for a plugin, a theme for a theme). It must be your live product, not a sandbox one, unless WPBay tells you otherwise.
  • Your Freemius plans have pricing set up, with a USD price for every site count and payment term you sell on WPBay. WPBay uses the USD pricing table to match site counts and terms. The price buyers pay is still your WPBay price.
  • Your Freemius plans use standard per-site licensing.
  • Your WPBay pricing has no free trial.
  • You can sign in to the Freemius dashboard to copy your Product ID, API Bearer token and, for webhooks, your product secret key.

Step-by-step setup

  1. Create the product with your normal WPBay pricing Create or edit the plugin/theme on WPBay and set up your plans, site counts and payment terms (one-time, monthly or yearly) as you normally would. Your WPBay prices can differ from your Freemius prices.
  2. Open the Freemius integration section In the product’s details, find Freemius integration right after Product Licensing. On a brand-new product, use Save draft and set up Freemius. This saves a private draft and opens its connection settings. Nothing is published.
  3. Copy your credentials from Freemius In the Freemius dashboard, select your product and open Settings → API & Keys. Copy the Product ID and the API Bearer token. Optionally, also copy the product secret key (starts with sk_) to enable webhooks; see Webhooks.
  4. Connect Enter the Product ID and token, plus the secret if you have it, and click Connect and use Freemius. WPBay checks the credentials and confirms the product type matches. It then loads your Freemius plans in the background. If it says plans are refreshing, reload the page after a minute. Saved credentials are encrypted and never shown again.
  5. Check the automatic pricing matches Use View automatic licensing checks in Pricing. Each WPBay offer (plan × site count × payment term) shows whether it matches a Freemius pricing entry. Fix anything flagged; see How pricing is matched.
  6. Save the product When every offer matches, the badge shows Ready to save. Save the product (or its pricing), and the badge changes to Active.
  7. Submit for review Submit as usual. A Freemius product can’t go live until its setup is complete; if it isn’t, publishing is held as pending.
  8. Add the webhook (recommended) After you’ve saved the product secret, the section shows your Freemius webhook URL. Add it in Freemius as described below.
  9. Test once After going live, make a test purchase, or ask WPBay to help you test. Then confirm the key activates in your product. This is the best way to catch a mismatch between your plan settings and what your product’s code expects.

How pricing is matched

You don’t map anything by hand. WPBay matches each WPBay offer to a pricing entry in your Freemius plans using three things:

WPBay offerMust match in Freemius
Plan (e.g. “Pro”)A Freemius plan. Using the same names on both sides makes the match unambiguous. Once matched, WPBay remembers the link, so renaming a plan later doesn’t change which features buyers get.
Site count (1, 5, Unlimited…)A pricing entry in that plan with the same number of licenses (sites). “Unlimited” matches Freemius unlimited.
Payment termOne-time → a lifetime price · Monthly subscription → a monthly price · Yearly subscription → an annual price, in USD on that pricing entry.

Example: a WPBay “Pro · 5 sites · Yearly” offer needs a Freemius plan “Pro” with a 5-license pricing entry that has an annual USD price. What buyers pay on WPBay is your WPBay price, whatever the Freemius price is.

What carries over from your Freemius plan settings:

  • Behavior after expiry. Your plan decides whether premium features are blocked when a monthly or annual license expires, or only updates and support stop. Lifetime licenses never expire.
  • Local and staging sites. If your plan doesn’t count localhost activations, the same applies to WPBay buyers.

Keep Freemius and WPBay in step. WPBay re-reads your Freemius plans daily. If you remove or change a pricing entry, site count or term that a WPBay offer uses, that offer stops being purchasable until you fix it. The product page will tell you what changed. Afterwards, re-check the Pricing tab and save your pricing again.

Webhooks (recommended)

Webhooks let Freemius notify WPBay when something changes on a license. For example, when a buyer activates or deactivates a site, WPBay updates the “In use” count buyers see within seconds. Without webhooks, WPBay still re-checks each license about once a week, so nothing breaks, but buyers see older information.

  1. Enter your Freemius product secret key (sk_…, from Settings → API & Keys) in Optional webhook synchronization and save.
  2. Copy the Freemius webhook URL that appears in the integration section.
  3. In the Freemius dashboard, select your product → Webhooks → Listeners and add the URL. Subscribe it to the license events, or to all events; WPBay ignores the ones it doesn’t need.

WPBay verifies every notification with your secret and never trusts its contents. It only uses it as a signal to re-read the license from Freemius.

Status badges and messages

BadgeMeaning
OptionalNot connected. The product uses WPBay licensing.
Needs setupConnected, but something is missing. The message under the heading says what to do.
Ready to saveEvery offer matches. Save the product to switch it to Freemius licensing.
ActiveSales issue Freemius licenses.
Not availableThe product already has WPBay sales, so it can’t switch licensing system.
If you see…Do this
Plans are refreshingWait a minute and reload the page.
Freemius rejected the API tokenOpen Credentials and webhooks, paste a current token and test the connection.
Freemius plans could not be loaded / Saved Freemius plans are out of dateClick Test connection and refresh plans.
Add pricing in Freemius under Plans → PricingCreate pricing entries in Freemius, then refresh plans.
An offer no longer matches FreemiusCompare that offer’s plan, site count and term with your Freemius pricing.
Freemius licensing rules changedYour plan’s expiry or localhost policy changed. Review the Pricing tab and save your pricing again.
Remove the free trialTrials aren’t supported with Freemius licensing.
Unsupported license typeUse a Freemius plan with standard per-site licensing.
The Freemius product type or environment does not matchConnect the matching product type (plugin vs. theme) and your live, non-sandbox product.
This product has purchase historyProducts with WPBay sales can’t switch. List it as a new product or contact WPBay.
Freemius sales are paused / WPBay cannot read the saved credentialsThis is on WPBay’s side. Contact WPBay support.

What buyers see

  • After checkout and in Downloads: the Purchase Code column shows the license status. Once it’s ready, a Reveal button shows the key and then turns into Copy. The info icon shows the site allowance and term.
  • My Account → License Manager: a Freemius licenses section lists each license with its site allowance, how many sites are in use, the term or expiry date, a link to the order, and a Show key button.
  • Several copies (quantity above 1) create one separate license per copy, each with the plan’s site allowance.
  • Emails: WPBay’s order emails point buyers to their account for the key. Freemius may also send its own welcome email when the license is assigned. WPBay can’t switch that off, and buyers are told to expect it.
  • Moving to another site: buyers deactivate the license inside your product on the old site, then activate it on the new one. Your product’s Freemius SDK handles this.
  • Support stays with WPBay’s support system and you, as for any WPBay product.

As with WPBay purchase codes, revealing the key counts as accessing the product under WPBay’s refund rules.

Renewals and expiry

  • One-time purchases create a lifetime license with no expiry.
  • Monthly and yearly subscriptions are billed by WPBay. Each license expires on the date the buyer has paid up to.
  • Each successful renewal on WPBay moves the Freemius expiry to the new paid-up date. No Freemius subscription is created; WPBay just updates the date.
  • If the buyer cancels auto-renewal, the license keeps working until the end of the paid period, then expires according to your plan’s expiry setting.
  • Upgrades and plan switches (e.g. 1 site → 5 sites) aren’t available for these subscriptions. Buyers who need more sites buy an additional license.

Refunds and cancellations

On WPBayEffect on the Freemius license
Full refund, cancelled or failed orderThe license is cancelled in Freemius. Its history is kept.
Order trashed or deleted by WPBay staffThe license is cancelled. Restoring an order from the trash does not reactivate it.
Partial refund (part of the amount)The license stays active.
Refund of a renewal paymentThe expiry goes back to the previous paid-up date.

Refund requests, decisions and payouts follow WPBay’s normal refund process. You don’t need to do anything in Freemius.

Don’t edit WPBay-issued licenses in Freemius. Extending, cancelling, reassigning or deleting them in the Freemius dashboard puts them out of step with what the buyer paid for. WPBay detects the difference and flags it for staff, and it cancels refunded licenses again if they’re re-enabled. Make changes through WPBay instead: refunds, renewals, or a request to WPBay support.

Releasing updates

  • Downloads on WPBay always come from the version you uploaded and WPBay reviewed.
  • If your product updates itself through the Freemius SDK, buyers may receive whatever you deploy to Freemius. Only deploy versions to Freemius that have been approved on WPBay, so both channels deliver the same reviewed code. WPBay records which Freemius release is live for comparison.

Changing or disconnecting

Replacing your API token or webhook secret

Open Credentials and webhooks, enter the same Product ID with the new token, and click Update and test connection. Leave the secret field blank to keep the saved one.

Disconnecting

Use Disconnect Freemius at the bottom of the section. It removes the saved credentials. What happens next depends on whether the product has Freemius sales:

  • No Freemius sales yet: the product simply returns to WPBay licensing.
  • With Freemius sales: existing licenses keep working in Freemius, but the product can’t be sold, and renewals and refunds stop syncing until you reconnect. Annual or monthly buyers who keep paying would see their license expire. Only disconnect a product with active subscription buyers after talking to WPBay.

The choice is effectively permanent per product. A product that has sold with Freemius licensing can’t switch back to WPBay licensing, and a product that has sold with WPBay licensing can’t switch to Freemius. This keeps every existing buyer’s key valid. Decide before your first sale. If you’re unsure, start with WPBay licensing.

Other changes

  • Changing which Freemius product a product with sales is connected to isn’t possible from the product page.
  • If a product changes owner, its Freemius connection needs WPBay review before it can sync again.

Limitations

  • WordPress plugins and themes only, not scripts or services.
  • No free trials and no subscription upgrades or plan switching.
  • Freemius plans must use standard per-site licensing and have USD pricing entries for each offer.
  • Partial refunds don’t cancel the license.
  • Products with existing WPBay sales can’t switch, and products with Freemius sales can’t switch back.
  • Freemius’s own welcome email can’t be suppressed.
  • Your Freemius sales and revenue reports won’t include WPBay sales, because payment happens on WPBay. Use your WPBay dashboard for earnings. The licenses themselves appear in Freemius under each buyer’s email.

Fees, privacy and data

  • WPBay fees and your earnings work exactly as for any WPBay product.
  • Freemius fees: your agreement with Freemius applies. Check it for any charges on licenses issued for sales made outside Freemius checkout, and factor them into your WPBay pricing.
  • Buyer data sent to Freemius: only the buyer’s name and email, plus the license details (plan, site allowance, expiry). No payment, card, tax or invoice data is shared, and buyers aren’t opted in to marketing. Freemius may create a customer account for the buyer, and it can be shared across their Freemius purchases.
  • Your credentials are stored encrypted, used only to manage this product’s licenses, and never displayed after saving.

FAQ

My product uses the WPBay SDK. Should I switch to Freemius?

No. The WPBay SDK and purchase codes are the native, fully supported option. This integration is only for products already built on Freemius.

Can I use both the WPBay SDK and Freemius in the same product?

Pick one licensing system per product. With the Freemius integration, buyers only receive a Freemius license key, so your product must activate through the Freemius SDK.

Do my Freemius prices need to match my WPBay prices?

No. Freemius pricing entries are only used to match the plan, site count and term. Buyers always pay your WPBay price.

Can I enable Freemius on a product that’s already selling on WPBay?

No. Existing buyers hold WPBay purchase codes, and switching would leave them with a key your product no longer accepts. List the Freemius version as a new product, or contact WPBay to discuss a migration.

A buyer says their license shows “Pending” or “Needs attention”.

Pending normally clears within minutes. Needs attention means WPBay couldn’t finish creating or updating the license after retrying. WPBay staff are alerted automatically and will resolve it. The buyer’s payment is safe either way. You can also check your Freemius plan and pricing for recent changes.

Why does “In use” show 0 sites when the buyer has activated?

Activation happens in Freemius, and WPBay reads the count back. With webhooks set up it updates within seconds; without them, about once a week. Localhost activations may not count, depending on your plan.

Can I test with a sandbox Freemius product?

Connect your live Freemius product unless WPBay has asked you to use a test environment. The connection is rejected if the product’s environment doesn’t match the marketplace’s.

What if Freemius is down when someone buys?

The order and payment complete normally on WPBay. The license is created as soon as Freemius responds; WPBay retries automatically and alerts staff if it can’t finish.

Need help?

Contact WPBay support with your product name, your Freemius Product ID and the exact message shown in the Freemius integration section. Never send your API token or secret key in a support message.