Import licenses
Use license import when you are migrating from Freemius or another platform and want customers to keep their existing license keys on License Bridge.
Import is for entitlement migration, not billing migration. Customers keep the same license key in WordPress; OAuth credentials are created automatically the first time their plugin connects to License Bridge.
What is preserved
- Original license keys (for example, a Freemius
secret_key) — unchanged - Plan mapping — each imported row is linked to a License Bridge price plan
- Local entitlement — expiry and cancel status from your CSV when provided
What is not migrated
- Subscription or billing history on the old platform
- Payment-provider subscriptions (Stripe, PayPal, Paddle on the previous vendor)
- Activation or site history from the old platform
- Remote renewal through the old gateway — imported licenses use imported gateway type and cannot be charged again through that provider
Import steps
- Open Licenses → Import for your product in the License Bridge admin.
- Upload a CSV export (Freemius format is supported).
- Map CSV columns to License Bridge fields.
- Map each plan name to a License Bridge price plan.
- Run the import.
OAuth credentials are not created during import. You do not receive a credentials CSV or distribute client_id / client_secret to customers manually.
Provisioning key
After you open the import page, License Bridge shows a plugin provisioning key for your product. Embed it in your WordPress plugin SDK config as provisioning-key:
$my_license = \LicenseBridge\WordPressSDK\Boot\Loader::register(__FILE__, [
'plugin-slug' => plugin_basename(__FILE__),
'license-product-slug' => 'my-first-product',
'provisioning-key' => 'your-product-provisioning-key',
]);
There is one provisioning key per product. It allows the SDK to request OAuth credentials on first connection. It is embedded in your plugin distribution — it is not a per-customer secret.
See SDK Installation — Configuration for the full config table.
What your customers experience
Customers who already have a license key stored in your plugin (for example from Freemius) do not need to do anything:
- They keep the same license key — no re-activation form, no new email with OAuth secrets
- The first time the plugin checks for updates or calls the License Bridge API, the SDK provisions OAuth credentials in the background
- After that, updates and license checks work like any other License Bridge customer
From the customer's perspective, nothing changes except that license validation and updates now go through License Bridge.
End-to-end flow
Freemius license key in WordPress
↓
CSV import → same key stored on License Bridge
↓
Customer plugin hits License Bridge API (update check, license API, etc.)
↓
SDK provisions OAuth credentials automatically (once per license)
↓
Plugin continues with normal OAuth token flow
SDK and API requirements
- WordPress plugins must use the License Bridge SDK with
provisioning-keyset inLoader::register(). - See Imported / migrated licenses for developer-facing behavior (
license_exists(), first connection, etc.). - For direct API integration, see OAuth provisioning API.
New purchases after import
Import does not replace checkout. Customers who buy through License Bridge landing page, hosted checkout, or inline checkout still receive OAuth credentials immediately via the normal post-purchase flow. Provisioning applies only when a license key exists locally but OAuth credentials do not.