Developer FAQ
Everything you need to integrate your products with LicenseOS.
Table of Contents
1 Getting Started
- Click Register to create an account.
- Navigate to the Developer → Apply page from your user menu or footer links.
- Fill in your developer profile (name, website, description) and submit.
- Once approved by admin, you'll get access to the Developer Dashboard.
- From Dashboard, go to Products → Create to publish your first product.
After your developer account is approved:
- Go to Developer Dashboard → API Keys.
- Click Generate New Key.
- Copy the key — it will only be shown once.
- Use this key in your SDK initialization as the
api_keyparameter.
wp_plugin — WordPress Plugin
wp_theme — WordPress Theme
android_app — Android App
ios_app — iOS App
desktop_app — Desktop App
web_app — Web App
chrome_extension — Chrome Extension
shopify_app — Shopify App
figma_plugin — Figma Plugin
laravel_package — Laravel Package
source_code — Source Code
script — Script
api_service — API Service
template — Template
ebook — eBook
course — Online Course
other — Other
2 SDK Integration (WordPress)
Download the SDK file from the platform and include it in your plugin. Initialize in your plugin's main file:
// In your plugin's main file (e.g. my-plugin.php)
require_once __DIR__ . '/licenseos-sdk.php';
// Initialize with your platform API URL and API key
LicenseOS::init(
'https://your-licenseos-domain.com/api/v2',
'your-api-key-here'
);
// Enable WordPress auto-update integration
LicenseOS::enableAutoUpdate(
'your-plugin-slug',
'stored-license-key'
);
This enables license activation, status checking, and automatic updates directly within WordPress.
Create a settings page where users enter their license key, then call the SDK:
// When user submits their license key
function my_plugin_activate_license($key) {
$domain = parse_url(home_url(), PHP_URL_HOST);
$result = LicenseOS::activate($key, $domain, 'my-plugin-slug');
if ($result['status'] === 'success') {
update_option('my_plugin_license_key', $key);
update_option('my_plugin_license_status', 'active');
return 'License activated!';
}
return 'Activation failed: ' . ($result['message'] ?? 'Unknown error');
}
Use a cached check to avoid API calls on every request. Verify once per hour:
function my_plugin_check_license() {
$key = get_option('my_plugin_license_key');
if (!$key) return false;
// Cache check result for 1 hour
$cached = get_transient('my_plugin_license_check');
if ($cached !== false) return $cached === 'valid';
$result = LicenseOS::check($key);
$valid = ($result['status'] ?? '') === 'valid';
set_transient('my_plugin_license_check',
$valid ? 'valid' : 'invalid', HOUR_IN_SECONDS);
return $valid;
}
3 License API
| Method | Endpoint | Auth | Description |
|---|---|---|---|
POST | /api/v2/license/activate | API Key | Activate a license key for a domain |
POST | /api/v2/license/check | API Key | Check license status & expiry |
GET | /api/v2/update/check | API Key | Check for new versions |
GET | /api/v2/download | License Key | Secure download |
Pass API Key via X-API-KEY header. All responses are JSON.
4 Update System
- Go to Developer → Products, click your product.
- In the Upload New Version section, fill in version number, ZIP file and changelog.
- Click Upload Version.
- All customers with active licenses will see the update automatically.
5 Pricing & Commission
Each product supports multiple pricing tiers: trial, monthly, quarterly, semi-annual, annual, and lifetime. Configure tiers in your product's Edit → Pricing Tiers section.
When a sale is made, the platform deducts a commission fee. The remaining amount is your developer income. Check Developer → Payouts for details.
6 Payout
- Set up your payout account in Developer → Payouts → Payout Methods.
- Supported methods: Bank transfer, PayPal, Alipay, WeChat Pay.
- Click Request Payout and enter the amount.
- Admin reviews and processes the payout.
7 Troubleshooting
The license has been activated on the maximum allowed number of domains. Purchase a higher-tier license with more domain slots.
- Verify
enableAutoUpdate()is called afterLicenseOS::init(). - Ensure the plugin slug matches the product slug.
- Force refresh: Dashboard → Updates → Check Again.
- Ensure the
X-API-KEYheader is being sent correctly. - Verify the API key hasn't been revoked.
- Regenerate a new key if needed.