> **Source:** https://knowledge.leegality.com/sign-station/api/install-license > **Site:** Leegality Knowledge Base — https://knowledge.leegality.com > **About:** Leegality is a document execution platform covering eSigning, stamps, NeSL, workflows, and REST API integration. > **Navigation:** Every article on this site has a plain-text version at `.txt` (this format). To get an index of all articles with their `.txt` links, read: https://knowledge.leegality.com/llms.txt > **AI Guide:** For instructions on how to navigate this knowledge base as an AI agent, read: https://knowledge.leegality.com/ai-readable.txt --- # POST /api/v1/licenses — Upload and install a license Use this API to Upload a license file and install it into the SignStation system. **Authentication:** `X-Auth-Token` header required on every request. ## Request URL ``` POST https://app1.leegality.com/api/api/v1/licenses ``` **Environments:** - Production: `https://app1.leegality.com/api/api/v1/licenses` - Sandbox: `https://sandbox.leegality.com/api/api/v1/licenses` --- ## Request Body **Content-Type:** `application/json` | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `file` | string | Yes | License upload data with file. The license file must contain JWT (JSON Web Token) formatted data. You can use any file extension you prefer including .jwt, .lic, or .txt. | `TestLicense.lic` | ### Sample Request ```json { "file": "TestLicense.lic" } ``` --- ## Responses ### 200 — OK | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `code` | string | No | Response code indicating success or failure of the license upload. | — | | `message` | string | No | A message providing additional information about the license upload. | — | | `data` | LicenseVO | No | See **LicenseVO** below. | — | #### LicenseVO | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `licenseId` | string | No | Unique identifier for the license. | — | | `customerId` | string | No | Unique identifier for the customer associated with the license. | — | | `expiry` | string | No | Expiration date of the license in ISO 8601 format. | — | | `status` | string | No | Current status of the license (e.g., ACTIVE, EXPIRED). | — | | `licenseType` | string | No | Type of the license (e.g., ACTIVE, TRIAL) | — | | `createdAt` | string | No | The date and time when the license was created. | — | | `updatedAt` | string | No | The date and time when the license was last updated. | — | | `enabled` | boolean | No | Indicates whether the license is currently enabled or disabled. | — | ### 400 — License validation failed | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `code` | string | No | Top-level error code | `LE_ERR_SS_400` | | `errors` | array\ | No | List of error details See **ErrorDetailLicense400VO** below. | — | #### ErrorDetailLicense400VO | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `message` | string | No | Detailed error message | `License validation failed for the request.` | | `path` | string | No | API path that generated the error | `/api/v1/licenses` | | `code` | string | No | Specific error code | `LE_ERR_SS_008` | ### 401 — Authentication failed | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `code` | string | No | Top-level error code | `LE_ERR_SS_401` | | `errors` | array\ | No | List of error details See **ErrorDetailLicense401VO** below. | — | #### ErrorDetailLicense401VO | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `message` | string | No | Detailed error message | `Authentication failed. Please check your credentials.` | | `path` | string | No | API path that generated the error | `/api/v1/licenses` | | `code` | string | No | Specific error code | `LE_ERR_SS_301` | ### 500 — Internal server error | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `code` | string | No | Top-level error code | `LE_ERR_SS_500` | | `errors` | array\ | No | List of error details See **ErrorDetailToken500VO** below. | — | #### ErrorDetailToken500VO | Field | Type | Required | Description | Example | |-------|------|----------|-------------|---------| | `message` | string | No | Detailed error message | `Internal Server Error` | | `path` | string | No | API path that generated the error | `null` | | `code` | string | No | Specific error code | `null` | ### Sample Response (200) ```json { "code": "string", "message": "string", "data": { "licenseId": "string", "customerId": "string", "expiry": "2024-01-01", "status": "string", "licenseType": "string", "createdAt": "string", "updatedAt": "string", "enabled": false } } ```