---
title: "Update a license template"
method: PATCH
path: "/v3/license-templates/{id}"
tags: ["LicenseTemplates"]
---

# Update a license template

`PATCH /v3/license-templates/{id}`

Updates the specified license template by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

## Path parameters

- `id` string, required

## Request body

- LicensePolicyUpdateRequestModel
  - `name` string, nullable — Name of the policy.
  - `fingerprintMatchingStrategy` 'fuzzy' | 'exact' | 'loose', nullable — Strategy for matching machine fingerprint.
  - `allowVmActivation` boolean, nullable — Whether to allow an activation inside a virtual machine.
  - `allowContainerActivation` boolean, nullable — Whether to allow an activation inside a container.
  - `userLocked` boolean, nullable — Locks the activation to the machine user.
  - `disableGeoLocation` boolean, nullable — Whether IP address and geo-location should be stored.
  - `allowedIpRanges` string[], nullable — Allowed IP ranges. Leave empty to ignore.
  - `allowedCountries` string[], nullable — List of the allowed countries. Leave empty to ignore.
  - `disallowedCountries` string[], nullable — List of the disallowed countries. Leave empty to ignore.
  - `allowedIpAddresses` string[], nullable — List of the allowed ip addresses. Leave empty to ignore.
  - `disallowedIpAddresses` string[], nullable — List of the disallowed ip addresses. Leave empty to ignore.
  - `validity` integer, nullable — The duration after which the license will expire. Set to '0' for no expiry.
  - `expirationStrategy` 'immediate' | 'delayed' | 'rolling', nullable — The strategy to determine the expiration start date.
  - `subscriptionInterval` string, nullable — The length of time which determines the subscription renewal cadence. ISO8601 durations accepted. Examples: - P1Y (1 year) - P6M (6 months) - P1M (1 month) - P1W (1 week) - P7D (7 days) - PT24H (24 hours)
  - `subscriptionStartTrigger` 'creation' | 'activation'
  - `allowedActivations` integer, nullable — Allowed number of activations for the license. Set to 0 or -1 for unlimited activations.
  - `allowedDeactivations` integer, nullable — Allowed number of deactivations for the license. Set to -1 for unlimited deactivations. This setting is ignored for floating licenses.
  - `type` 'node-locked' | 'hosted-floating' | 'on-premise-floating', nullable — Type of the license key.
  - `keyPattern` string, nullable — Regex for the license key pattern.
  - `leaseDuration` integer, nullable — Duration of lease for floating licenses. Set to 0 or -1 for unlimited lease duration.
  - `allowClientLeaseDuration` boolean, nullable — Allow client to set the lease duration for floating licenses.
  - `leasingStrategy` 'per-machine' | 'per-instance', nullable — Leasing strategy for floating licenses.
  - `allowedFloatingClients` integer, nullable — Allowed number of floating clients for the On-Premise LexFloatServer.
  - `serverSyncGracePeriod` integer, nullable — The duration for which the server sync failure due to network error is acceptable. Set to -1 for unlimited grace period.
  - `serverSyncInterval` integer, nullable — The interval at which license data in client is synced with the server.
  - `allowedClockOffset` integer, nullable — The allowed clock offset between the network time and the local time. Set to -1 to disable clock validation checks.
  - `disableClockValidation` boolean, nullable — Deprecated. Set AllowedClockOffset to -1 to disable clock validation checks.
  - `cryptoBindingEnabled` boolean, nullable — Whether crypto binding is enabled for the license.
  - `expiringSoonEventOffset` integer, nullable — The number of seconds to wait before license expiration date to trigger 'license.expiring-soon' webhook event.
  - `requiredMetadataKeys` string[], nullable — List of required metadata keys which a license must have.
  - `requiredMeterAttributes` string[], nullable — List of required meter attributes which a license must have.

## Response `200`

OK

- LicensePolicyDto
  - `id` string, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `name` string, required
  - `allowVmActivation` boolean, required
  - `allowContainerActivation` boolean, required
  - `userLocked` boolean, required
  - `disableGeoLocation` boolean, required
  - `allowedIpRange` string, nullable
  - `allowedIpRanges` string[], required
  - `allowedCountries` string[], required
  - `disallowedCountries` string[], required
  - `allowedIpAddresses` string[], required
  - `disallowedIpAddresses` string[], required
  - `validity` integer, nullable
  - `expirationStrategy` 'immediate' | 'delayed' | 'rolling', nullable
  - `subscriptionInterval` string, nullable
  - `subscriptionStartTrigger` 'creation' | 'activation'
  - `fingerprintMatchingStrategy` 'fuzzy' | 'exact' | 'loose', required
  - `allowedActivations` integer, required
  - `allowedDeactivations` integer, required
  - `type` 'node-locked' | 'hosted-floating' | 'on-premise-floating', required
  - `keyPattern` string, required
  - `leaseDuration` integer, required
  - `allowClientLeaseDuration` boolean, required
  - `leasingStrategy` 'per-machine' | 'per-instance', required
  - `allowedFloatingClients` integer, required
  - `serverSyncGracePeriod` integer, required
  - `serverSyncInterval` integer, required
  - `cryptoBindingEnabled` boolean, required
  - `allowedClockOffset` integer, required
  - `expiringSoonEventOffset` integer, required
  - `requireAuthentication` boolean, required
  - `requiredMetadataKeys` string[], required
  - `requiredMeterAttributes` string[], required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `429` — Too Many Requests
- `500` — Server Error

---

[API](https://skmtc.net/cryptlex/apis/cryptlex-web-api.md) · [All operations](https://skmtc.net/cryptlex/apis/cryptlex-web-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cryptlex/cryptlex-web-api/versions/ec1259c12475/schema)
