Licensing lifecycle
- SellerClose the dealPO, contract or invoice handled outside LicenChain.
- Seller backendSubmit licensing requestApproved order data → requestId and onboarding link.
POST /licensing-requests - SellerSend onboarding linkDelivered to the Buyer contact through your own channel.
- BuyerAccept termsBuyer accepts the product's predefined terms version in LicenChain.
- LicenChainOnboarding completedNot issuance yet — do not grant access.
onboarding.completed - LicenChainLicense issuedStore the authoritative licenceKey.
licence.issued - Seller backendVerify before accessGrant new access only if valid === true and your user checks pass.
POST /licenses/verify
Stages
Section titled “Stages”| Stage | Trigger | What you can rely on |
|---|---|---|
| Order approved | Your PO, contract or invoice process, outside LicenChain | Nothing in LicenChain yet |
| Request created | 201 from Submit licensing request |
requestId and a Buyer onboarding link |
| Onboarding completed | onboarding.completed |
The Buyer accepted the product’s terms version. No license has been issued yet. |
| License issued | licence.issued |
The canonical licenceKey, accepted terms version, initial status, validity period and seat allowance of the one corporate license. Store them. |
| Access requested | Your user signs in to your offering | Check identity and assignment yourself, then verify the license |
Three different questions
Section titled “Three different questions”Keep these questions separate in your design; each has a different source of truth.
- Was a license issued? — Licensing evidence. Answered by the
licence.issuedevent and theissuedfield of the verification result. Evidence is durable, but it does not say whether the license is active today. - Is the license valid right now? — Current state. Answered only by
validin a fresh verification result. A license can be issued and still be suspended, revoked, expired, not yet valid or unverified. - Who is this user, and are they assigned a seat? — Application authentication and authorization. Answered by your own identity provider and assignment data. LicenChain does not authenticate your end users.
New access requires all three answers to be positive.
Request status vs license status
Section titled “Request status vs license status”The licensing request status (awaiting_buyer, onboarding_completed, issued, expired,
cancelled) tracks the order flow. The license status returned by verification (active,
not_yet_valid, expired, suspended, revoked, unverified) tracks the issued license. Never
use the request status to make an access decision.
Changes after issuance
Section titled “Changes after issuance”Suspension, revocation and expiry change the license’s current state. They do not delete issuance evidence. Your delivery system observes the change on its next verification; design session lengths and cache durations accordingly.