License API
License Activation/Deactivatio...

Activate Bundle (Online Method)

15min
Activates all licenses inside of a bundle. Returns the list of activated licenses in response
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 bundle 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
String
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 request is sent from a Virtual Machine. If this value is true and prevent VM is set on the license, an error will be returned. If this value is set (true or false), it will be stored in license device data
vm_info
optional
String
A string describing the Virtual Machine environment which will be stored in license device data
os_ver
optional
String
Operating System description string which will be stored in license device data
hostname
optional
String
Hostname string which will be stored in license device data
os_hostname
optional
String
Legacy version of "hostname" parameter (see above)
ip
optional
String
Client IP address string which will be stored in license device data
ip_local
optional
String
Legacy version of "ip" parameter (see above)
app_ver
optional
String
Application version string which will be stored in license device data
sdk_ver
optional
String
SDK version string which will be stored in license device data
mac_address
optional
String
Client MAC address which will be stored in license device data
variables
optional
Object
Stores 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 Schema


Response Body

TypeScript
JSON Schema


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
JSON Schema


List of Exceptions

unknown_product (400): Provided product was not found
product_not_bundle (400): Specified product "code" is not a bundle
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.