Preview — pending review
This reference is generated from the platform API contract and is still under review. Operations, fields, and descriptions can change before publication.
Stop an entitlement renewing (no refund)
Turns RENEWAL off. There is no refund and no early teardown. The current term is already paid
for and stays fully usable: the response still reports state: "active" and honoured: true, and
the entitlement remains ASSIGNABLE and continues to be billed until termEndsAt. What changes is
autoRenew: false, renewsAt: null and a cancelledAt stamp — cancelledAt is when renewal was
switched off, NOT when the entitlement stops working. At termEndsAt it becomes expired.
Validation: scopeId accessible; entitlementId resolvable. 409 CONFLICT when the term has
already ended — there is no renewal left to stop. Caller needs billing:write, else 403.
Async & state: Synchronous. Re-cancelling inside the term is an idempotent 200 preserving the
first cancelledAt.
Errors: 401; 403; 404 unknown scope or entitlement; 409 already expired; 500.
Idempotency/Concurrency: Naturally idempotent; no key required.
bearerTokenAuthorizationBearer <token>An API token (pc_live_…) or a service-account key (sak_live_…), created in Identity & Access Management and sent as Authorization: Bearer <token>. Requests are rate limited per credential and per tenant: every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a refused request gets 429 RATE_LIMITED with Retry-After.
scopeId*stringOpaque ownership+authorization scope resolving to tenant + subscription + project.
entitlementId*stringThe subscription-scoped entitlement's id.
Renewal is off; the entitlement stays active and usable until termEndsAt.
application/json- response
data*A subscription-scoped add-on or licence the account HOLDS, independent of any one resource. Unlike an
instance-scoped add-on (which is born with a VM and dies with it), an entitlement survives the
deletion of every resource it was applied to and can be re-applied elsewhere.
quantity is a POOL OF SEATS: an entitlement with quantity: N may be assigned to N DISTINCT
resources at the same time. Billing charges quantity units per period whether or not every seat is
currently assigned — the customer bought the pool, not the occupancy.
curl -X POST "https://example.com/scopes/string/billing/entitlements/string/actions/cancel"{ "data": { "id": "string", "itemKind": "addon", "itemId": "string", "itemSlug": "string", "name": "string", "period": "hour", "unitPriceMinor": 0, "currency": "string", "sku": "string", "quantity": 1, "seatsUsed": 0, "seatsAvailable": 0, "state": "active", "autoRenew": true, "honoured": true, "termStartedAt": "2019-08-24T14:15:22Z", "termEndsAt": "2019-08-24T14:15:22Z", "renewsAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z", "cancelledAt": "2019-08-24T14:15:22Z", "expiredAt": "2019-08-24T14:15:22Z", "assignments": [ { "id": "string", "resourceType": "instance", "resourceId": "string", "assignedAt": "2019-08-24T14:15:22Z" } ], "assignment": { "id": "string", "resourceType": "instance", "resourceId": "string", "assignedAt": "2019-08-24T14:15:22Z" } }}