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

Pushes the offer's plan, add-ons and, when asked, its promotion to the entitlements made from it: each gets the offer's plan and the add-ons the offer gives, and loses the ones the offer no longer gives. Preview first with a dry run.

POST
/api/v1/provision/admin/entitlements/offers/{offerId}/push
curl --request POST \
--url 'https://example.com/api/v1/provision/admin/entitlements/offers/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/push?dryRun=false' \
--header 'Content-Type: application/json' \
--data '{ "includeDeviating": true, "includePromotion": true }'

With includePromotion, each also gets the offer’s running promotion as a temporary plan override that ends on the promotion’s end date, with a plan-override touch of its campaign; it replaces an earlier promotion of the same offer only. Entitlements that deviate from the offer are skipped, unless includeDeviating is set; then the offer wins over the customer’s change, except that an add-on added for that customer alone stays. An entitlement with any other running temporary override (a trial, a lapsed payment, one set for that customer) is always skipped: no push ends one. Under the offer’s own promotion, the offer’s plan becomes the plan the promotion returns to. Each changed entitlement gets an audit entry and the usual plan-applied and add-on events. One the rules refuse is listed under failed with the reason and left as it was, and the push goes on with the rest. Refused for an archived offer.

offerId
required
string format: uuid

The offer.

dryRun
boolean

Change nothing, and say what the push would change.

Whether deviating entitlements are included, and whether the promotion is given.

How an offer’s plan and add-ons are pushed to the entitlements made from it.

object
includeDeviating

Push to the entitlements that deviate from the offer too. The offer then wins over the customer’s change: the plan is set back to the offer’s, an add-on the offer gives is granted again where it was revoked, and a promotion ended for that customer is given again. An add-on added for that customer alone stays, and an entitlement with a running temporary override other than this offer’s promotion (a trial, a lapsed payment) is still skipped. Without it, deviating entitlements are skipped.

boolean
includePromotion

Give the offer’s running promotion too (OfferPromotionDto? EntitlementDto.Promotion), as a temporary plan override that ends on the promotion’s end date. It replaces an earlier promotion of the same offer, and never any other temporary override. Without it, promotions are left as they are.

boolean
Examplegenerated
{
"includeDeviating": true,
"includePromotion": true
}

OK

What a push of an offer’s plan and add-ons changed on the entitlements made from it, or with a dry run would change. Every entitlement made from the offer is counted once: changed, up to date, skipped or failed.

object
offerId
string format: uuid
dryRun

True when nothing was changed and the counts say what the push would do.

boolean
planName

The offer’s plan the push sets; null when the offer has none, and plans are left as they are.

null | string
addOnNames

The add-ons the offer gives, which the push grants where they are missing.

Array<string>
promotion
One of:
null
entitlementCount

The entitlements made from the offer, try licenses left out.

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

Entitlements the push changed, or would change.

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

Entitlements that already hold what the offer gives.

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

Deviating entitlements left as they are: not included, or held by a running temporary override other than this offer’s promotion, which a push never ends.

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

Entitlements the push could not change, or would not be able to; List<OfferPushFailureDto> OfferPushResultDto.Failed says why.

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

Every entitlement that deviates from the offer, with why, whether it was skipped or included.

Array<object>

One entitlement made from an offer (its Guid? EntitlementDto.OriginOfferId), and whether it deviates from what the offer gave it: a change made to this customer since, which wins over the offer.

object
entitlementId
string format: uuid
customerContactEmail
string
customerContactName
string
assignedPlanName
null | string
status

Admin-controlled lifecycle state of an entitlement.

Allowed values: Draft Published Disabled Archived
createdAt
string format: date-time
deviates

True when at least one facet deviates; List<OfferDeviationDto> OfferEntitlementDto.Deviations says which and why.

boolean
deviations

Each facet whose current value differs from what the offer gave the entitlement, with the reason.

Array<object>

A facet of an entitlement whose current value differs from what its offer gave it.

object
facet

A part of an entitlement that an offer gives it and that can later be changed for that customer alone.

Allowed values: Plan AddOns Promotion
reason

What changed and, where it is recorded, what changed it; for example an approved plan-change request.

string
failed

The entitlements the push could not change, each with the reason. The others are changed all the same.

Array<object>

An entitlement a push could not change, and why.

object
entitlementId
string format: uuid
customerContactEmail
string
reason
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

Not Found

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