Entitlements
Sell more than access. An entitlement is a feature or a pack of credits that a license or account can hold, each with its own length.
Open it now:Settings, EntitlementsUsers
What an entitlement is
A license says a customer may use your program. An entitlement says what they may do inside it: an export feature, 200 credits to spend, a pro pack that lasts 30 days. Two kinds exist:
| Kind | Behaves like | Example |
|---|---|---|
| Feature | On or off, until it expires. | export, pro |
| Counter (has credits) | A balance your program spends. The server refuses a spend past zero. | renders with 200 credits |
You define them once per application in Settings, Entitlements. Your program checks and spends them with the Entitlements calls of the SDK.
Give them with new keys
The generators for licenses and accounts have an Entitlements picker. Pick one or more; each shows a Validity period control. Leave it on Preset to use the length set for that entitlement, or type your own amount and unit, or choose lifetime.
Give them to existing customers
Open a license or account and press Give under Entitlements, or tick several rows and choose Give entitlement from the bulk menu. Choose the entitlement, optionally the number of credits (empty gives its default, and a counter with none set counts usage with no limit), and the validity period. For an existing customer the time counts from now.
See and change what someone holds
The Entitlements section of a license or account lists what it holds. A counter shows 120 used of 200, how many are left and a bar; a grant that has run out is marked EXPIRED and dimmed.
| Button | What it does |
|---|---|
| Reset (counters) | Sets the used count back to zero and keeps the credits. |
| Remove | Takes the entitlement away at once. A counter's usage is forgotten. |
Redeeming a key moves its entitlements
When a customer redeems a key onto an account (Account::Redeem), the key's entitlements move to the account in the same step. Counters add their credits, features keep the later end date, and usage already spent is kept. An entitlement that has a length starts counting at the redemption.
What the server enforces
Checking an entitlement in your program (Has, Remaining) is for showing and hiding things in your interface; a patched client can lie about it. Spending credits (Consume) is checked by the server, and refuses past zero. Keep anything valuable behind a counter or in server variables, not behind a feature flag in the program.