> For the complete documentation index, see [llms.txt](https://docs.soraco.co/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.soraco.co/docs/fundamental-concepts/how-does-online-activation-work.md).

# Online activation

If your customers are connected to the internet, they can activate their license online. The online activation process workflow is as follows:

* In your application. a customer enters an Activation Key and requests activation.
* Based on the selected [QlmLicenseBinding](/docs/api-reference/.net-api/qlmlicense/enums/elicensebinding.md), a unique computer identifier is extracted from the customer's system (ComputerID).
* The Activation Key and the Computer ID are sent to the License Server.
* The License Server validates the Activation Key. For example, the server checks if the license has expired, has been revoked, or has already been activated on another system.
* If the Activation Key is valid, the License Server generates a new license key, referred to as Computer (Bound) Key, and returns this new ComputerKey to the client. The  ComputerKey is bound to the customer's system.
* The ComputerKey is then stored on the end-user system.&#x20;
* The next time the end-user launches your application, the ComputerKey is automatically read and validated. If the ComputerKey is valid, your application starts up.

There are 2 ways to perform online activation:

* From the QLM License Wizard
* From the QLM API

### Activation from QLM License Wizard

To perform an activation from the QLM License Wizard follow the steps below:

* Launch the QLM License Wizard with the proper arguments.
* Click Activate your license.
* Click Activate Online.
* On the Activate Online page, enter the Activation Key then click Activate.

### Activation from the QLM API

To perform an activation from the QLM API, use any of the APIs listed below:

* [QlmLicense.ActivateLicense](/docs/api-reference/.net-api/qlmlicense/application-methods/activatelicense.md)
* [QlmLicense.ActivateLicenseByAuthorizationCode](/docs/api-reference/.net-api/qlmlicense/application-methods/activatelicensebyauthorizationcode.md)
* [QlmLicense.ActivateLicenseByField](/docs/api-reference/.net-api/qlmlicense/application-methods/activatelicensebyfield.md)
* [QlmLicense.ActivateLicenseEx](/docs/api-reference/.net-api/qlmlicense/application-methods/activatelicenseex.md)
* [QlmLicense.ActivateLicenseForUser](/docs/api-reference/.net-api/qlmlicense/application-methods/activatelicenseforuser.md)
* [QlmLicense.ActivateLicenseForUserEx](/docs/api-reference/.net-api/qlmlicense/application-methods/activatelicenseforuserex.md)
* [QlmLicense.ActivateLicenseForUserEx2](/docs/api-reference/.net-api/qlmlicense/application-methods/activatelicenseforuserex2.md)
