OD License
- Getting Started - Installation, Requirements, Quick Start
- Dashboard - Platform Overview, Statistics, Quick Links
- Products - Creating Products, SKU Configuration, FastSpring Mapping
- Licenses - Viewing Licenses, Manual Creation, Status Management
- Files & Downloads - Upload Releases, File Protection, Download Tracking
- REST API - License Validation, Endpoint, Response Format
- FastSpring Integration - Webhook Setup, Event Handling, Security
- Settings - FastSpring, Email, Downloads, Advanced
- Troubleshooting - Common Issues and Solutions
- FAQ - Frequently Asked Questions
OD License is a self-hosted licensing and digital delivery solution for Joomla. It enables you to manage products, licenses, secure downloads, and customer access from a single administration interface.
Whether you distribute Joomla extensions, software, or other digital products, OD License helps automate licensing, download delivery, and customer access while keeping all data on your own server.
What's Included
- Component: Main administration interface for products, licenses, downloads, and customer management.
- Dashboard Module: Displays licensing statistics and quick access information in the Joomla administrator dashboard.
- Commons Plugin: Shared plugin providing licensing and common functionality across OD products.
- REST API: Built-in API for license validation and integration with your own extensions and applications.
Installation
Step 1: Download the Package
Download the latest installation package from your octi Suite account or purchase confirmation.
Step 2: Install via Joomla
Navigate to System → Extensions → Install in your Joomla backend and upload the package file.
Step 3: Access the Component
After installation, open Components → OD License to configure your licensing platform.
Requirements
Software | Version | Notes |
|---|---|---|
Joomla | 6 | Latest stable version recommended |
PHP | 8.3+ | As required by Joomla 6 |
MySQL | 8.0+ | Or MariaDB 10.6+ |
Fastspring | Required only for automated order processing and license generation |
Quick Start Guide
Step 1: Create a Product
Create your first product and configure its SKU and licensing options.
Step 2: Upload a Release
Upload one or more downloadable release files and assign them to the product.
Step 3: Create a License
FastSpring to generate licenses automatically after successful purchases.
Step 4: Publish the Customer Portal
Create a frontend menu item so customers can access their licenses, downloads, and account information.
Dashboard Sections
- Active Products: Number of published products available for customers.
- Total Licenses: Total number of licenses managed by OD License.
- Active Licenses: Licenses that are currently valid and usable.
- Recent Webhooks: Latest webhook events and their processing status.
- Download Activity: Recent download activity and statistics.
Quick Actions
- Create Product: Create a new licensable product.
- Create License: Generate a license manually.
- Open Webhook Log: Review incoming webhook events and processing results.
- Open Settings: Configure platform behavior and integrations.
Product Fields
- Name: Display name used throughout the administration interface and customer portal.
- SKU: Unique product identifier used internally and by integrations.
- FastSpring ID: Product identifier used to associate incoming FastSpring orders with the correct product.
- License Type: Defines whether licenses are Standard, Subscription, or Lifetime.
- Default Max Activations: Specifies the default activation limit for newly created licenses.
- Download Limit: Defines how many downloads are allowed per license.
- State: Controls whether the product is available for licensing and downloads.
FastSpring ID Matching
When FastSpring integration is enabled, the FastSpring Product ID should match the product identifier configured in FastSpring. This allows incoming webhook events to be mapped automatically to the correct product.
Pro Tip: Use consistent SKU values across Joomla, FastSpring, and your products to simplify integrations and troubleshooting.
Product Lifecycle
License Fields
- License Key: Unique identifier used for license validation.
- Customer: Joomla user assigned to the license.
- Product: Product associated with the license.
- Status: Current license state (Active, Expired, Suspended, or Cancelled).
- Valid Until: Expiration date or Lifetime access.
- Max Activations: Maximum number of allowed activations.
- Order ID: Reference to the related purchase or external order.
Creating Licenses Manually
Licenses are usually created automatically through FastSpring but can also be created manually.
- Step 1: Open Licenses → New
- Step 2: Select the customer and product.
- Step 3: Configure the license status, validity period, and activation limit.
- Step 4: Save the license.
Managing License Status
- Active: The license is valid and can be used for validation and downloads.
- Expired: The license validity period has ended.
- Suspended: The license is temporarily disabled.
- Cancelled: The license is permanently inactive.
Bulk Actions
Lifetime Licenses
Uploading a File
- Step 1: Open Components → OD License → Files → Upload
- Step 2: Select the associated product.
- Step 3: Upload the release package.
- Step 4: Optionally add release notes.
- Step 5: Publish the release.
File Information
- Product: Product associated with the uploaded release.
- Version: Release version displayed to customers.
- File: Uploaded installation package or download.
- Release Notes: Optional information describing changes in this release.
- State: Controls whether the release is available for download.
How Download Protection Works
This approach helps:
- Protect release files
- Control customer access
- Track download activity
- Maintain version history
Version Entitlement
Updating Releases
Endpoint
Required Parameters
- license_key: License key to validate.
- email: Customer email address.
- domain: Domain requesting activation.
- product_sku: Product identifier associated with the license.
Response Fields
- status: Current license status.
- valid_until: License expiration date or Lifetime.
- max_activations: Maximum allowed activations.
- current_activations: Number of currently registered activations.
- product_sku: Associated product identifier.
Rate Limiting
Domain Authorization
Typical Validation Process
- The application sends a validation request.
- OD License verifies the license and associated product.
- Activation limits and license status are checked.
- A validation response is returned.
Step-by-Step Webhook Setup
- Step 1: Configure the OD License webhook endpoint in your FastSpring account.
- Step 2: Copy the generated webhook secret into the OD License settings.
- Step 3: Verify that all product mappings are configured correctly.
- Step 4: Send a test webhook to confirm the integration.
Order Processing Workflow
- FastSpring sends an order notification.
- OD License validates the webhook request.
- Customer and product information are processed.
- A license is created or updated.
- Download access is granted.
- The event is recorded in the webhook log.
Webhook Log
Failed Webhooks
Configure OD License through Components → OD License → Options. Settings control webhook processing, email delivery, API behavior, licensing rules, and download management.
FastSpring Settings
- Webhook Secret: Security key used to validate incoming FastSpring webhook requests.
- Enable Webhook Processing: Enables automatic processing of FastSpring orders and events.
Email Settings
- Sender Email / Name: Sender information used for automated emails.
- Support Email: Reply-to address displayed in customer emails.
- Enable Email Templates: Enables automatic email notifications for supported events.
API Settings
- Rate Limit: Defines the maximum number of validation requests allowed per license.
- Enable API Endpoint: Enables or disables the built-in license validation API.
License Settings
Important Note
License validation failed
Possible Causes
- Invalid license key
- License has expired
- Activation limit has been reached
- Product SKU does not match
- Domain is not authorized
Solutions:
- Verify the license key.
- Check the license status in Components → OD License → Licenses
- Confirm that the correct product SKU is used.
- Verify the configured activation limit.
- Review the registered domains if domain validation is enabled.
What is the difference between Standard, Subscription, and Lifetime licenses?
Standard licenses remain valid until their configured expiration date.
Subscription licenses are intended for recurring renewals and expire when the subscription ends.
Lifetime licenses remain valid until they are manually suspended or cancelled.
Do I need FastSpring to use OD License?
No. FastSpring integration is optional. Licenses can be created and managed manually without any external e-commerce platform.
Can I create licenses manually?
Can customers download older releases?
What happens when a license expires?
How are activation limits enforced?
Each successful activation is associated with a license.
Once the configured activation limit is reached, additional activation requests are rejected until an existing activation is removed or the limit is increased.
Can I move a license to another customer?
Can I use OD License for products other than Joomla extensions?
How does the REST API work?
Applications send a validation request containing the required license information.
OD License verifies the license, evaluates its permissions, and returns the validation result.
Can I customize the customer portal?

Legal
Contact Us
Email: suite@octi-design.at
Support: support@octi-design.at
Address: Sonnhalb 35, 5511 Hüttau, Salzburg, Austria