Skip to content
Oclavex is in private preview, available to selected users. Public signup is blocked. Request access at [email protected].

Sets the shape of the activation codes issued for the entitlement.

POST
/api/v1/provision/admin/entitlements/{entitlementId}/policies/key-issuance
curl --request POST \
--url https://example.com/api/v1/provision/admin/entitlements/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/policies/key-issuance \
--header 'Content-Type: application/json' \
--data '{ "enabled": true, "template": "example", "alphabet": "CrockfordBase32", "customAlphabet": "example", "caseStyle": "Upper", "checksum": "None", "sequenceScope": "Entitlement", "sequenceStart": 1, "collisionRetryLimit": 1, "normalizeStripSeparators": true, "normalizeCaseInsensitive": true, "normalizeMapConfusables": true, "sequenceCurrent": 1 }'
entitlementId
required
string format: uuid

Target entitlement.

Template, alphabet, checksum and sequence settings.

Vendor-defined shape of the activation codes issued for an entitlement: the template the code is rendered from, the alphabet and casing, an optional check character, the sequence counter the {SEQ} token draws from, and how a submitted code is normalized before lookup. Carried on KeyIssuancePolicyDto? EntitlementDto.KeyIssuancePolicy and configured through POST {entitlementId}/policies/key-issuance.

object
enabled

When false the platform default random code is issued and string KeyIssuancePolicyDto.Template is ignored.

boolean
template

Template the code is rendered from, e.g. ACME-{DATE:yyMM}-{SEQ:6}-{RAND:4}{CHK}.

string
alphabet

Character set {RAND} draws from.

Allowed values: CrockfordBase32 UppercaseAlphanumeric Numeric Hexadecimal Custom
customAlphabet

Characters {RAND} draws from when KeyAlphabet KeyIssuancePolicyDto.Alphabet is KeyAlphabet.Custom.

null | string
caseStyle

Casing applied to the rendered code.

Allowed values: Upper Lower AsIs
checksum

Check-character algorithm used by the {CHK} token.

Allowed values: None LuhnMod10 Iso7064Mod37_2 Damm
sequenceScope

Counter the {SEQ} token draws from.

Allowed values: Entitlement Product Provider
sequenceStart

First value the counter issues.

integer | string format: int64
/^-?(?:0|[1-9]\d*)$/
collisionRetryLimit

How many times generation re-rolls the random segment after a uniqueness collision before the item fails. Templates whose only variable part is {SEQ} have nothing to re-roll, so they depend on the counter only ever moving forward.

integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
normalizeStripSeparators

Ignore separators (spaces and dashes) in a submitted code before lookup.

boolean
normalizeCaseInsensitive

Match a submitted code without regard to case.

boolean
normalizeMapConfusables

Fold characters the alphabet excludes onto the ones it keeps before lookup, so a user who types O for 0 or I for 1 still resolves. Only defined for alphabets that omit the confusable pair.

boolean
sequenceCurrent

Value the counter will issue next. Populated when one entitlement is read by id (a list page leaves it null); ignored on writes. A snapshot taken while other requests may be reserving blocks, so treat it as advisory rather than a count.

null | integer | string format: int64
/^-?(?:0|[1-9]\d*)$/

The stored policy.

Vendor-defined shape of the activation codes issued for an entitlement: the template the code is rendered from, the alphabet and casing, an optional check character, the sequence counter the {SEQ} token draws from, and how a submitted code is normalized before lookup. Carried on KeyIssuancePolicyDto? EntitlementDto.KeyIssuancePolicy and configured through POST {entitlementId}/policies/key-issuance.

object
enabled

When false the platform default random code is issued and string KeyIssuancePolicyDto.Template is ignored.

boolean
template

Template the code is rendered from, e.g. ACME-{DATE:yyMM}-{SEQ:6}-{RAND:4}{CHK}.

string
alphabet

Character set {RAND} draws from.

Allowed values: CrockfordBase32 UppercaseAlphanumeric Numeric Hexadecimal Custom
customAlphabet

Characters {RAND} draws from when KeyAlphabet KeyIssuancePolicyDto.Alphabet is KeyAlphabet.Custom.

null | string
caseStyle

Casing applied to the rendered code.

Allowed values: Upper Lower AsIs
checksum

Check-character algorithm used by the {CHK} token.

Allowed values: None LuhnMod10 Iso7064Mod37_2 Damm
sequenceScope

Counter the {SEQ} token draws from.

Allowed values: Entitlement Product Provider
sequenceStart

First value the counter issues.

integer | string format: int64
/^-?(?:0|[1-9]\d*)$/
collisionRetryLimit

How many times generation re-rolls the random segment after a uniqueness collision before the item fails. Templates whose only variable part is {SEQ} have nothing to re-roll, so they depend on the counter only ever moving forward.

integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
normalizeStripSeparators

Ignore separators (spaces and dashes) in a submitted code before lookup.

boolean
normalizeCaseInsensitive

Match a submitted code without regard to case.

boolean
normalizeMapConfusables

Fold characters the alphabet excludes onto the ones it keeps before lookup, so a user who types O for 0 or I for 1 still resolves. Only defined for alphabets that omit the confusable pair.

boolean
sequenceCurrent

Value the counter will issue next. Populated when one entitlement is read by id (a list page leaves it null); ignored on writes. A snapshot taken while other requests may be reserving blocks, so treat it as advisory rather than a count.

null | integer | string format: int64
/^-?(?:0|[1-9]\d*)$/

The template is not valid.

object
type
null | string
title
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
detail
null | string
instance
null | string

No such entitlement.

object
type
null | string
title
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
detail
null | string
instance
null | string