Activate License (Offline Method)

circle-info

Currently we support trial, perpetual and consumption license types for offline activation purposes

Endpoint

  • Method: POST

  • Path: /api/v4/activate_offline

  • Description: Activates a license using the offline activation flow (base64 payload).

Authentication

See License API Authorization.

Required headers

  • Date (string) — RFC7231 GMT date string

  • Authorization (string) — signature or bearer token

  • Accept: application/json

Request

Body

The request body is a base64-encoded, stringified JSON object.

triangle-exclamation

Schema

The request body is a string representing a base64-encoded JSON object containing all the required activation data.

chevron-rightRequest body schema (TypeScript + JSON Schema)hashtag

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

chevron-rightResponse schema (TypeScript + JSON Schema)hashtag

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

circle-info

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.

Last updated

Was this helpful?