Skip to content

Requests a plan change for the entitlement behind the caller's license session. Accepted with the caller's own license-session token. Every consumer plan change runs through this workflow: the entitlement's approval policy either auto-approves (the response says the plan is already active) or the request stays pending until a tenant admin — or an integration acting for the tenant, e.g. after a payment — approves it.

POST
/api/v1/provision/consumer/me/plan-change-requests
curl --request POST \
--url https://example.com/api/v1/provision/consumer/me/plan-change-requests \
--header 'Content-Type: application/json' \
--data '{ "sessionId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "requestedPlanName": "example" }'

Plan-change workflow commands.

Consumer request to change the plan of the entitlement behind one of their license sessions. Every consumer plan change runs through a server-side plan-change request; the entitlement’s approval policy decides whether it applies immediately (auto-approval) or awaits a decision.

object
sessionId

The caller’s license session; the target entitlement is resolved from it.

string format: uuid
requestedPlanName
required

The plan (within the entitlement’s assigned plan set) to change to.

string
0 <= 100 characters
Examplegenerated
{
"sessionId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"requestedPlanName": "example"
}

OK

A plan-change request and its decision state.

object
id
string format: uuid
entitlementId
string format: uuid
currentPlanName
null | string
requestedPlanName
string
requestedAt
string format: date-time
requesterEmail

The requester’s notification email (their own address; empty for pure device activations).

null | string
status

Decision state of a consumer plan-change request.

Allowed values: Pending Approved Rejected
applied

True when the requested plan is active (the request was approved and applied).

boolean
reviewedBy
null | string
reviewedAt
null | string format: date-time
reviewNote
null | string

Bad Request

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

Unauthorized

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

Forbidden

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

Conflict

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