License API
License Activation/Deactivatio...

Activate License (Online Method)

19min
Activate a license for a product
POST
Request
Header Parameters
Date
required
String
In RFC7231 format (see "License API Authorization"), eg.: Thu, 17 Nov 2022 20:51:35 GMT
Authorization
required
String
See "License API Authorization" article
Body Parameters
hardware_id
required
String
Unique hardware ID generated for the client device
product
required
String
Product short code
license_key
optional
String
Required if product is key-based (see section below)
username
optional
String
Required if product is user based (see section below)
password
optional
String
Required if product is user based (see section below)
id_token
optional
String
Required if using SSO (see section below). This is the id_token received from the SSO if Implicit grant authorization method is being used.
code
optional
String
Required if using SSO (see section below). This is the code received from the SSO if Authorization code grant method is being used.
customer_account_code
optional
String
Required if using SSO (see section below). This is the customer_account_code to which SSO provider is configured.
license_id
optional
Number
Ensures that the action affects only the license with the specified ID. This is useful if e.g. you have multiple licenses for the same product assigned to the same user. For obtaining a list of licenses assigned to a user, see "User Licenses"
is_vm
optional
Boolean
Set to true if using a virtual machine
vm_info
optional
String
Optional virtual machine metadata
os_ver
optional
String
Version of the operating system.
hostname
optional
String
Device hostname
os_hostname
optional
String
Hostname of the OS
ip
optional
String
IP address
ip_local
optional
String
Local IP address
app_ver
optional
String
Version of the product application used with this license
sdk_ver
optional
String
Version of the SDK used
mac_address
optional
String
Device MAC address
variables
optional
Object
Device variables. Variables are sent as a JSON object where the key is the variable name, and the value is the value of the variable
Curl
Node.js
JS
Python
Ruby
Responses
200
400


Schema

Request Body

TypeScript
JSON


Response Body

TypeScript
JSON


Response Signature

The response objects contains a license_signature value which the client app can use to verify the authenticty of the response (see the Response Signature article for instructions on how to verify this signature).

License Authorization Method

There are two types of product licenses based on how the client application authorizes itself to interact with a license:

Key-based product licenses

Each license assigned to the product requires the client to provide a license key in order to activate, check or deactivate the license (property license_key in the request body).

The license response object will contain the license_key property, and the property product_details.authorization_method will be the string license_key.

User-based product licenses

Each license assigned to the product has a corresponding "license user" instead of a license key. There are multiple ways a user-based product license can be accessed when making a request:

  • By providing the values for username and password for the license user
  • By providing the values for id_token and customer_account_code if using single sign-on authentication using Implicit grant
  • By providing the values for code and customer_account_code if using single sign-on authentication using Authorization code grant
    

In the license response object, product_details.authorization_method will have the string value user and the response object will contain the user object with information on the license user.

License Types

The license_type property defines one of the 4 types of licenses based on their duration and how the license is used:

  • Perpetual: perpetual
  • Time-limited: time-limited
  • Subscription: subscription
  • Consumption: consumption

For more information see: License Types

Errors

If an error occurs, the response will have an HTTP status code of 400 or higher, and the response body will contain an error description in the following format:

TypeScript


List of exceptions

unknown_product (400): Provided product was not found
license_not_found (400): License with the provided license user not found
license_not_enabled (400): The license is not enabled
vm_not_allowed (400): Virtual machine not allowed
offline_floating_cloud_not_supported (400): Floating cloud licenses cannot be activated offline
license_start_date_error (400): This license cannot be activated before start date: {date}
blacklisted (400): This device is blacklisted
license_activated_max_times (400): This license key has already been activated the maximum number of times
license_user_activated_max_times (400): License user has activated this license max times
license_expired (400): License validity period has expired
license_transferred_max_times (400): This license has already been transferred the maximum number of times
license_device_exists (409): A device matching this hardware_id is already created on the license.

Examples

User-Based License Activation

Curl


Single-Sign-On License Activation

Short instructions and link to detailed section about using Single Sign On directly via License Api can be find here

Curl


Use either id_token or code, not both at the same time.

Device variables

The optional variables property lets you set device variables during activation. For more information on how device variables work, see Device Variables