OD License

OD License
Self-hosted license management and digital delivery for Joomla 6 – with FastSpring integration, license validation, and a secure customer portal.

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.

The Dashboard provides a centralized overview of your licensing platform. It displays key statistics, recent activity, and quick access to the most frequently used administration tasks.

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.
Products define the digital items managed by OD License. They control licensing, downloads, customer access, and integration with external services such as FastSpring.

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

Products can be published, unpublished, or updated at any time without affecting existing licenses. Existing customer licenses remain valid according to their configured license terms.
Licenses connect customers to products and define access rights, activation limits, download permissions, and validity periods. Every license belongs to a single product and can be managed independently.

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

Bulk Actions allow administrators to update multiple licenses simultaneously. Typical tasks include changing license statuses, exporting license data, or managing larger groups of licenses more efficiently.

Lifetime Licenses

Lifetime licenses do not expire and remain valid until they are manually suspended or cancelled.
Files are linked to products and distributed securely through OD License. Access to downloads is controlled by the customer's license and product permissions.

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

Downloads are delivered through OD License instead of direct file links. This helps protect release files, control customer access, record download activity, and manage product versions securely.

This approach helps:

  • Protect release files
  • Control customer access
  • Track download activity
  • Maintain version history

Version Entitlement

Customers only see releases that are assigned to their licensed products. Access is automatically determined by the associated license and its permissions.

Updating Releases

Uploading a new release does not affect existing licenses. Customers automatically receive access to new versions according to their product and license permissions.
The REST API allows applications, extensions, and external services to validate licenses and retrieve licensing information securely.

Endpoint

POST index.php?option=com_odlicense&task=api.validate

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

Rate limiting helps protect the API against excessive or abusive validation requests.

Domain Authorization

Domain authorization allows OD License to associate activations with individual domains and enforce configured activation limits.

Typical Validation Process

  1. The application sends a validation request.
  2. OD License verifies the license and associated product.
  3. Activation limits and license status are checked.
  4. A validation response is returned.
OD License integrates with FastSpring to automate license generation, digital delivery, and customer access after successful purchases.

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

  1. FastSpring sends an order notification.
  2. OD License validates the webhook request.
  3. Customer and product information are processed.
  4. A license is created or updated.
  5. Download access is granted.
  6. The event is recorded in the webhook log.

Webhook Log

All incoming webhook events are recorded in the webhook log for monitoring, troubleshooting, and auditing purposes.

Failed Webhooks

If webhook processing fails, the event remains available in the webhook log for review. Administrators can use the log to identify configuration issues, missing product mappings, or invalid webhook requests.

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

Grace Period: Additional access period after license expiration before restrictions apply.

Important Note

Changes to webhook, API, or licensing settings may affect existing customer licenses and integrations. Review configuration changes carefully before using them in production.

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?

Yes. Administrators can create licenses directly in the Joomla backend and assign them to any existing customer and product.

Can customers download older releases?

Yes. Customers can access all releases available to their licensed product, depending on the configured permissions.

What happens when a license expires?

Expired licenses can no longer be used for validation or protected downloads unless a grace period has been configured.

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?

Yes. Administrators can reassign licenses to another Joomla user at any time.

Can I use OD License for products other than Joomla extensions?

Yes. OD License can manage licenses and digital downloads for any digital product, including software, templates, documents, and downloadable resources.

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?

Yes. The customer portal is integrated into Joomla and can be customized using templates, overrides, modules, and standard Joomla features.
octi Suite
Legal
Contact Us

Email: suite@octi-design.at

Support: support@octi-design.at

Address: Sonnhalb 35, 5511 Hüttau, Salzburg, Austria

We use cookies

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.