A licence key is a record
It says: this buyer acquired this product, on this date, under these terms. It is historical and it does not expire because a purchase does not un-happen. Its jobs are proof of purchase, support lookup, and giving the buyer something to reference.
What a licence key is *not* is an access check. Asking "does this person hold a licence" answers a question about the past.
An entitlement is a live answer
It says: right now, this person may do this thing. It has a state and a validity window, and it is what gets checked at the moment of a download, a test attempt, or a metered feature call.
Entitlements can come from several places — a one-time purchase, an active subscription, a manual grant, a lifetime plan — and the thing being protected does not need to care which. That indirection is the entire point: the download path asks one question and does not need to know about payment models.
Why both
- Subscriptions end; purchases do not
- A cancelled subscriber keeps their purchase history and loses their access. Two different records, two different lifecycles.
- Failed renewals need a grey area
- A grace window keeps an entitlement alive while payment retries run, so a temporary failure does not lock a paying customer out. A purchase record has no equivalent state.
- Support needs history
- "I bought this last year" is a licence question. "Why can I not download it today" is an entitlement question. Answering the second requires the first.
- One check, many sources
- Adding a new way to grant access — a promotional grant, a bundle, an admin override — means creating an entitlement, not editing every gate.
Where signed URLs fit
Neither a licence nor an entitlement is the download link. The link should be generated per request, short-lived, and issued only after the entitlement check passes.
A permanent download URL is an access-control system that leaks by being forwarded. If the link outlives the check, the check may as well not exist.
How this platform models it
Every purchase mints a licence key for the buyer. Separately, an entitlement is granted — by the purchase, by a subscription, or by an administrative grant — and that entitlement is what is checked on every download and every gated test attempt. Downloads themselves are served through short-lived pre-signed URLs generated at request time.
Common questions
Do I need licence keys if I already have entitlements?
They answer different questions. The entitlement decides whether someone may act right now; the licence key records that a purchase happened. Support and proof-of-purchase need the record even when access has ended.
What happens to a licence key when a subscription is cancelled?
Nothing — a purchase record does not expire. What ends is the entitlement, which is why access stops while the history remains.
Why are download links short-lived?
Because a permanent link is an access check that can be forwarded. Generating a signed, time-boxed URL per request after the entitlement check keeps the check meaningful.
More answers on the full FAQ.