Skip to content

Pre-registers externally generated activation codes on the entitlement.

POST
/api/v1/provision/admin/entitlements/{entitlementId}/activation-workflow/batch/import
curl --request POST \
--url 'https://example.com/api/v1/provision/admin/entitlements/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/activation-workflow/batch/import?dryRun=false' \
--header 'Content-Type: application/json' \
--data '{ "codes": [ "example" ], "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", "enforceKeyPolicy": true }'

Imported codes are matched exactly at redemption: the look-alike-character tolerance offered for platform-generated codes is never applied to a code the vendor supplied, because folding an alphabet the platform does not control could merge two codes the vendor considers distinct.

entitlementId
required
string format: uuid

Target entitlement.

dryRun
boolean

Report the outcome without persisting anything.

The codes to register and the limits copied onto each one.

Admin request to pre-register externally generated activation codes on an entitlement. Send with dryRun = true first to preview the outcome without persisting anything.

object
codes

The vendor-supplied codes to register.

Array<string>
workflowDefaults
One of:
null
batchLabel

Vendor’s own label for the batch.

null | string
enforceKeyPolicy

Reject codes that do not match the entitlement’s key-issuance policy. Off by default so a vendor can carry over codes minted before the policy existed.

boolean

Per-item outcome and tallies.

Outcome of an import call. With dryRun = true the same counts and errors are reported but no rows are persisted.

object
batchId

Identifier the created workflows are tagged with. Guid Guid.Empty on a dry run.

string format: uuid
batchLabel

Label echoed from the request.

null | string
dryRun

True when nothing was persisted.

boolean
totalSubmitted

Codes submitted.

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

Codes registered (or that would be registered on a dry run).

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

Codes not registered because they failed validation; see List<BatchItemErrorDto> ActivationCodeImportResultDto.Errors.

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

Codes rejected because the normalized form already exists or repeats within the request.

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

One entry per rejected code.

Array<object>

Why one item of a batch was rejected.

object
index

Zero-based position of the item in the submitted list.

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

The offending code, when reporting it is meaningful.

null | string
reason

Human-readable explanation, e.g. a duplicate or a policy mismatch.

string

The request could not be applied.

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