Mints a batch of activation codes from the entitlement's key-issuance policy.
const url = 'https://example.com/api/v1/provision/admin/entitlements/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/activation-workflow/batch/generate';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"count":1,"policyOverride":{"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},"workflowDefaults":{"requiredAuthenticationLevel":"Default","preAuthorizedDevices":["example"],"fingerprint":"example","maxDeviceActivations":1,"useEntitlementMaxActivations":true,"activationCode":"example","email":"example","isTrialActivation":true,"requiresUserConsent":true,"sendUserNotification":true,"organizationGroupId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","requiredUserId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","expirationTimeStamp":"2026-04-15T12:00:00Z"},"batchLabel":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/provision/admin/entitlements/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/activation-workflow/batch/generate \ --header 'Content-Type: application/json' \ --data '{ "count": 1, "policyOverride": { "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 }, "workflowDefaults": { "requiredAuthenticationLevel": "Default", "preAuthorizedDevices": [ "example" ], "fingerprint": "example", "maxDeviceActivations": 1, "useEntitlementMaxActivations": true, "activationCode": "example", "email": "example", "isTrialActivation": true, "requiresUserConsent": true, "sendUserNotification": true, "organizationGroupId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "requiredUserId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "expirationTimeStamp": "2026-04-15T12:00:00Z" }, "batchLabel": "example" }'Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Target entitlement.
Request Bodyrequired
Section titled “Request Bodyrequired”How many codes to cut, an optional policy override, and the limits copied onto each one.
Admin request to mint a batch of activation codes on an entitlement. Each code becomes an ordinary activation workflow, so a pre-registered code is redeemed through the normal activation pipeline.
object
How many codes to mint.
Shape to render the codes from; when null the entitlement’s key-issuance policy applies.
object
When false the platform default random code is issued and string KeyIssuancePolicyDto.Template is ignored.
Template the code is rendered from, e.g. ACME-{DATE:yyMM}-{SEQ:6}-{RAND:4}{CHK}.
Character set {RAND} draws from.
Characters {RAND} draws from when KeyAlphabet KeyIssuancePolicyDto.Alphabet is KeyAlphabet.Custom.
Casing applied to the rendered code.
Check-character algorithm used by the {CHK} token.
Counter the {SEQ} token draws from.
First value the counter issues.
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.
Ignore separators (spaces and dashes) in a submitted code before lookup.
Match a submitted code without regard to case.
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.
Value the counter will issue next. Populated on reads; ignored on writes. A snapshot taken while other requests may be reserving blocks, so treat it as advisory rather than a count.
Limits and restrictions copied onto every workflow in the batch (device caps, expiration,
authentication level). ActivationCode on the defaults is ignored — the codes come from
the policy.
object
Authentication level a user must meet before a license activation is permitted. Used on activation policies and activation workflows.
Vendor’s own label for the batch, e.g. a campaign or reseller order it was cut for.
Admin request to mint a batch of activation codes on an entitlement. Each code becomes an ordinary activation workflow, so a pre-registered code is redeemed through the normal activation pipeline.
object
How many codes to mint.
Shape to render the codes from; when null the entitlement’s key-issuance policy applies.
object
When false the platform default random code is issued and string KeyIssuancePolicyDto.Template is ignored.
Template the code is rendered from, e.g. ACME-{DATE:yyMM}-{SEQ:6}-{RAND:4}{CHK}.
Character set {RAND} draws from.
Characters {RAND} draws from when KeyAlphabet KeyIssuancePolicyDto.Alphabet is KeyAlphabet.Custom.
Casing applied to the rendered code.
Check-character algorithm used by the {CHK} token.
Counter the {SEQ} token draws from.
First value the counter issues.
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.
Ignore separators (spaces and dashes) in a submitted code before lookup.
Match a submitted code without regard to case.
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.
Value the counter will issue next. Populated on reads; ignored on writes. A snapshot taken while other requests may be reserving blocks, so treat it as advisory rather than a count.
Limits and restrictions copied onto every workflow in the batch (device caps, expiration,
authentication level). ActivationCode on the defaults is ignored — the codes come from
the policy.
object
Authentication level a user must meet before a license activation is permitted. Used on activation policies and activation workflows.
Vendor’s own label for the batch, e.g. a campaign or reseller order it was cut for.
Admin request to mint a batch of activation codes on an entitlement. Each code becomes an ordinary activation workflow, so a pre-registered code is redeemed through the normal activation pipeline.
object
How many codes to mint.
Shape to render the codes from; when null the entitlement’s key-issuance policy applies.
object
When false the platform default random code is issued and string KeyIssuancePolicyDto.Template is ignored.
Template the code is rendered from, e.g. ACME-{DATE:yyMM}-{SEQ:6}-{RAND:4}{CHK}.
Character set {RAND} draws from.
Characters {RAND} draws from when KeyAlphabet KeyIssuancePolicyDto.Alphabet is KeyAlphabet.Custom.
Casing applied to the rendered code.
Check-character algorithm used by the {CHK} token.
Counter the {SEQ} token draws from.
First value the counter issues.
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.
Ignore separators (spaces and dashes) in a submitted code before lookup.
Match a submitted code without regard to case.
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.
Value the counter will issue next. Populated on reads; ignored on writes. A snapshot taken while other requests may be reserving blocks, so treat it as advisory rather than a count.
Limits and restrictions copied onto every workflow in the batch (device caps, expiration,
authentication level). ActivationCode on the defaults is ignored — the codes come from
the policy.
object
Authentication level a user must meet before a license activation is permitted. Used on activation policies and activation workflows.
Vendor’s own label for the batch, e.g. a campaign or reseller order it was cut for.
Responses
Section titled “Responses”The issued codes and the batch they are tagged with.
Outcome of a batch generate call.
object
Identifier the created workflows are tagged with, for later filtering and export.
Label echoed from the request.
Codes asked for.
Codes actually created.
The issued codes, in generation order. Large batches may return this empty and expose the codes through the batch export endpoint instead; read int ActivationCodeBatchResultDto.CreatedCount for the tally.
Items that could not be minted, e.g. after exhausting the collision retry limit.
Why one item of a batch was rejected.
object
Zero-based position of the item in the submitted list.
The offending code, when reporting it is meaningful.
Human-readable explanation, e.g. a duplicate or a policy mismatch.
Outcome of a batch generate call.
object
Identifier the created workflows are tagged with, for later filtering and export.
Label echoed from the request.
Codes asked for.
Codes actually created.
The issued codes, in generation order. Large batches may return this empty and expose the codes through the batch export endpoint instead; read int ActivationCodeBatchResultDto.CreatedCount for the tally.
Items that could not be minted, e.g. after exhausting the collision retry limit.
Why one item of a batch was rejected.
object
Zero-based position of the item in the submitted list.
The offending code, when reporting it is meaningful.
Human-readable explanation, e.g. a duplicate or a policy mismatch.
Examplegenerated
{ "batchId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "batchLabel": "example", "requestedCount": 1, "createdCount": 1, "codes": [ "example" ], "errors": [ { "index": 1, "code": "example", "reason": "example" } ]}Outcome of a batch generate call.
object
Identifier the created workflows are tagged with, for later filtering and export.
Label echoed from the request.
Codes asked for.
Codes actually created.
The issued codes, in generation order. Large batches may return this empty and expose the codes through the batch export endpoint instead; read int ActivationCodeBatchResultDto.CreatedCount for the tally.
Items that could not be minted, e.g. after exhausting the collision retry limit.
Why one item of a batch was rejected.
object
Zero-based position of the item in the submitted list.
The offending code, when reporting it is meaningful.
Human-readable explanation, e.g. a duplicate or a policy mismatch.
Examplegenerated
{ "batchId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "batchLabel": "example", "requestedCount": 1, "createdCount": 1, "codes": [ "example" ], "errors": [ { "index": 1, "code": "example", "reason": "example" } ]}No usable key-issuance policy, or the template could not yield enough unique codes.
object
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}No such entitlement.
object
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}