Authorization (string) — signature or bearer token
Recommended headers
Accept: application/json
Request
Body
The request body is a base64-encoded, stringified JSON object.
If using multipart/form-data, the file form parameter is mandatory.
Schema
The request body is a string representing a base64-encoded JSON object containing all the required activation data.
Request body schema (TypeScript + JSON Schema)
TypeScript
JSON Schema
Signature
The request signature is constructed and signed with HMAC-SHA256 using the company shared key (or client secret for OAuth). Steps to construct the signing string:
1
Build the signing string — part 1
Start with:
The literal string: licenseSpring
Then a newline
2
Build the signing string — part 2
Append:
The string "date: " plus the date value from the license payload, then a newline
3
Build the signing string — part 3
Append:
Either the license_key or username value from the payload (whichever is present), then a newline
4
Build the signing string — part 4
Append:
The hardware_id value from the payload, then a newline
5
Build the signing string — part 5
Append:
The api_key (or client_id) value from the payload
Encrypt the complete string using HMAC-SHA256 with the signing key (Shared Key for API key auth, Client Secret for OAuth). Example (Node.js):
Finalized payload
Stringify the activation object and encode it to base64.
Examples
Send the base64 payload as the request body. Set the Date and Authorization headers.
Response
Response schema (TypeScript + JSON Schema)
TypeScript
JSON Schema
Response signatures
The response contains two digital signatures:
license_signature: HMAC-SHA256 signature explained in Response Signature.
offline_signature: HMAC-SHA256 signature specific to this endpoint, constructed identically to the request signature generation but using the response date value.
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:
JSON Schema
List of exceptions
missing_headers (400): some headers are missing
when missing authorization or date headers
missing_parameters (400): some parameters are missing in the request
when no request body at all or no file found in request body
authorization_missing_params (400): some parameters are missing in authorization
when request body is not properly base64 encoded
when file is missing in request body (multipart case)
when license_key or hardware_id body parameters are missing
when data body parameter is missing
when api_key parameter is missing
If you want to use this API endpoint directly, instead of using an SDK (which does most of the heavy lifting for you), please contact us for additional instructions.
Guide on offline licensing
If any aspect of the offline licensing model remains unclear or raises questions, see: Offline License Activation.