Skip to content

Activates a license and returns complete license information with metadata.

POST
/api/v1/provision/activations/license
curl --request POST \
--url https://example.com/api/v1/provision/activations/license \
--header 'Content-Type: application/json' \
--data '{ "activationCode": "example", "fingerprint": "example", "components": "example", "deviceName": "example", "applicationScope": "example", "applicationInstanceId": "example", "email": "example", "requestedLeaseDurationSeconds": 1, "targetSoftwareVersion": "example", "useInteractiveUser": true }'

Returns extended metadata: provider info, legal notices, public key for token verification, licensed product IDs. Prefer this when the client needs to display legal / product information or cache verification key. Error codes same as /jwt endpoint.

X-Correlation-Id
string
Idempotency-Key
string

Optional Idempotency-Key header, reserved for future use. Re-activating the same device returns the existing session (see remarks); this header is not yet independently enforced.

Represents a request to obtain (or check availability for) a license activation. All nullable fields are optional depending on the activation policy.

object
activationCode

Activation (or license) code required to identify entitlement or activation workflow.

string
0 <= 100 characters
fingerprint

The fingerprint is used to bind the license to a specific device or environment and therefore should be unique (as possible). This acts as identifier for binding a license to a seat.

null | string
0 <= 100 characters
components

Optional per-component one-way hashes of the device identity (well-known keys: MachineName, MacAddress, OsVersion, UserName). Enables the entitlement’s ComponentMatchingStrategy (MatchAny/Two/Most) during session-reuse lookup. Additive: when omitted the server falls back to exact-equality on string? LicenseRequestDto.Fingerprint (MatchAll). Values are hashed on-device; raw component values never leave the client.

null | object
deviceName

The device name is optional (but highly recommended) additional information about the device (e.g. for display in management UIs).

null | string
0 <= 100 characters
applicationScope

The license is bound to restricted to the provided application scope. This is to ensure that the activation code is used only for its intended application.

null | string
0 <= 100 characters
applicationInstanceId

Identifies the specific application or process that holds this license when concurrent licensing is enabled. Relevant when multiple processes on the same hardware require separate licenses.

null | string
0 <= 100 characters
email

End-user email (used for identity verification or association). Optional depending on policy.

null | string
0 <= 254 characters
requestedLeaseDurationSeconds

Desired lease duration. Use instead of former RequestedLeasePeriod (which incorrectly used DateTime).

null | integer | string format: int32
<= 2147483647 /^-?(?:0|[1-9]\d*)$/
targetSoftwareVersion

Software version requesting activation (policy may restrict allowed software versions).

null | string
0 <= 100 characters
useInteractiveUser

When true, the server will resolve the authenticated user’s identity and find entitlements assigned to that user (via EntitlementPrincipal). Requires an authenticated request with a valid user token. The activation code may be omitted when this is true and the user has exactly one assigned entitlement.

boolean
Example generated
{
"activationCode": "example",
"fingerprint": "example",
"components": "example",
"deviceName": "example",
"applicationScope": "example",
"applicationInstanceId": "example",
"email": "example",
"requestedLeaseDurationSeconds": 1,
"targetSoftwareVersion": "example",
"useInteractiveUser": true
}

License activated successfully – returns complete license information.

Media type application/json

End user license token with meta data.

object
licenseToken
string
version
integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
legalNotice
string
copyright
string
providerUrl
string
providerEmail
string
description
string
licensedProducts
Array<string>
activatedFeatures
Array<object>
object
id
string format: uuid
featureCode
string
productId
string format: uuid
moduleName
null | string
featurePath
null | string
name
null | string
description
null | string
value
null | string
version
null | string
isEnabled
boolean
isAvailableDuringTrialPeriod
boolean
isAvailableDuringGracePeriod
boolean
featureExpiration
null | string format: date-time
Example generated
{
"licenseToken": "example",
"version": 1,
"legalNotice": "example",
"copyright": "example",
"providerUrl": "example",
"providerEmail": "example",
"description": "example",
"licensedProducts": [
"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
],
"activatedFeatures": [
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"featureCode": "example",
"productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"moduleName": "example",
"featurePath": "example",
"name": "example",
"description": "example",
"value": "example",
"version": "example",
"isEnabled": true,
"isAvailableDuringTrialPeriod": true,
"isAvailableDuringGracePeriod": true,
"featureExpiration": "2026-04-15T12:00:00Z"
}
]
}

Invalid request data or activation code.

Media type application/json
object
type
null | string
title
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
detail
null | string
instance
null | string
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Activation forbidden by policy (e.g., authentication required, user not verified).

Media type application/json
object
type
null | string
title
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
detail
null | string
instance
null | string
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Activation code not found or expired.

Media type application/json
object
type
null | string
title
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
detail
null | string
instance
null | string
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Device already activated or seat limit exceeded.

Media type application/json
object
type
null | string
title
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
detail
null | string
instance
null | string
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Too many requests – rate limit exceeded.

Media type application/json
object
type
null | string
title
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
detail
null | string
instance
null | string
Example generated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}