Skip to content
GPLWP Guides

How to manage API licenses for digital products in WooCommerce

WooCommerce Time About 45 minutes with a licensing extension, or several days for custom development 6 steps Updated 25 Sep 2026

WOOCOMMERCE
The short answer

WooCommerce handles digital orders and downloads, but it does not provide a complete API licence system on its own. For a small catalogue, you can build the validation flow yourself; for most software sellers, a licensing extension is the practical route.

The route
  1. 01Define the licence rules
  2. 02Configure the digital product
  3. 03Build the manual licensing flow
  4. 04Connect activation and validation
  5. 05Test the failure cases
  6. 06Use an API licensing extension

What you need

  • A WooCommerce store with downloadable software products
  • Administrator access to WordPress and WooCommerce
  • A clear licence policy for activations, expiry and renewals
  • A secure HTTPS connection for licence requests

Define the licence rules

Decide whether each purchase receives one product licence or an account-level key, how many sites or devices it may activate, whether licences expire, and what happens when a customer renews or cancels. Keep the product identifier stable, especially if the software is updated later.

For subscription products, decide whether access ends immediately when the subscription becomes inactive or remains available until the paid period ends. Write this down before configuring the store so your validation responses match your sales terms.

Configure the digital product

Edit the WooCommerce product and mark it as Virtual and Downloadable if it is software delivered online. Add the software file or update package, set the download restrictions you require, and use a unique product identifier in the licensing system.

Orders for virtual and downloadable products can move to completed automatically, which is important when licence generation depends on the order reaching the completed status. A common Friday-afternoon failure is expecting a key immediately while the order is still processing.

Build the manual licensing flow

WooCommerce alone can sell the file, but it does not create a complete customer licence service. A developer must create a licence record after payment, expose a protected endpoint, and validate the submitted key, product identifier, customer entitlement, expiry date and activation count.

The software should create and retain a unique instance identifier for each installation, then use it for status checks and deactivation. You also need an admin screen or database process for revoking activations, handling lost devices and recording requests. This route is reasonable for one product with a technical owner, but it becomes maintenance work as soon as you add renewals, upgrades or automatic updates.

Connect activation and validation

Whether you build the integration or use an extension, activation requests should send the licence key, product identifier and a unique instance value. Store the instance value securely and reuse it for later status checks; generating a new value on every request can consume activation slots.

For the WooCommerce API Manager workflow, activation, deactivation and status checks are separate requests. The documented activation request requires an API key, product ID and instance, while status checks confirm whether the activation and time limit are still valid. Pass a fixed product ID rather than relying on a value that can change between product variations.

Test the failure cases

Test a first activation, a repeat activation with the same instance, a second device after the activation limit, deactivation, an expired licence, a cancelled subscription and a product upgrade. Confirm that the software fails safely when the licensing server is unavailable rather than locking out every existing customer immediately.

Do not confuse WooCommerce REST API keys with customer licence keys. REST API keys authenticate an application that reads or writes store data; they are not the activation credentials you should distribute with software. Keep store API credentials server-side and use a separate licence response for the customer application.

Use an API licensing extension

The fast route is to install a WooCommerce licensing extension such as WooCommerce API Manager, create the API-enabled product, set its activation and expiry rules, and connect your plugin or application to the supplied API or integration library. The documented workflow supports product keys, master keys, activation limits, status checks, deactivation and update delivery.

This is the better choice when you sell more than one product or need customer self-service, renewal handling, activation reporting and update delivery without maintaining the licensing database and API yourself. Test the complete purchase-to-activation path before enabling automatic updates for customers.

The fast route

Let WooCommerce API Manager do it

Automates API keys, license activation, renewals, usage tracking, and updates for WooCommerce software sellers.

Get WooCommerce API Manager

Sources

  1. woocommerce.com /document/software-add-on/?utm_source=openai
  2. woocommerce.com /document/api-documentation/?utm_source=openai
  3. woocommerce.com /document/woocommerce-rest-api/?utm_source=openai

Questions

Can WooCommerce manage software licences without a plugin?
No, WooCommerce can sell a downloadable file but does not by itself provide licence keys, activation limits, validation or software update authentication. You can build those pieces with custom code and a protected endpoint, but you must also maintain the licence records, expiry rules, deactivation process and security. A licensing extension is usually more practical once you have multiple products or customers.
What should an API licence activation request contain?
An activation request normally needs the licence or API key, the product identifier and a unique instance identifier for the installation. The instance value should be retained and reused for later status checks and deactivation. The exact request format depends on the licensing system, so do not invent endpoint names or parameters. The WooCommerce API Manager documentation specifies these fields for its activation workflow.
Why are licences not generated after a WooCommerce order?
Licences may not be generated because the order has not reached the required completed status. This commonly happens when a software product is not marked virtual and downloadable, or when payment remains pending. Check the order status, product settings and licence-generation logs before creating a second key manually, or you may give the customer duplicate activations.
Should customers use WooCommerce REST API keys as licence keys?
No, WooCommerce REST API keys are integration credentials for applications that access store data and should remain private. Customer software needs a separate licence or API key issued by the licensing system, with validation tied to the purchased product and activation instance. Exposing store REST credentials could give an application more access than the customer needs.