Skip to content

Licensing lifecycle

  1. SellerClose the dealPO, contract or invoice handled outside LicenChain.
  2. Seller backendSubmit licensing requestApproved order data → requestId and onboarding link.POST /licensing-requests
  3. SellerSend onboarding linkDelivered to the Buyer contact through your own channel.
  4. BuyerAccept termsBuyer accepts the product's predefined terms version in LicenChain.
  5. LicenChainOnboarding completedNot issuance yet — do not grant access.onboarding.completed
  6. LicenChainLicense issuedStore the authoritative licenceKey.licence.issued
  7. Seller backendVerify before accessGrant new access only if valid === true and your user checks pass.POST /licenses/verify
Target journey from an approved Seller order to a verified license. Identity and user assignment remain in the Seller's delivery system throughout.
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

Keep these questions separate in your design; each has a different source of truth.

  1. Was a license issued? — Licensing evidence. Answered by the licence.issued event and the issued field of the verification result. Evidence is durable, but it does not say whether the license is active today.
  2. Is the license valid right now? — Current state. Answered only by valid in a fresh verification result. A license can be issued and still be suspended, revoked, expired, not yet valid or unverified.
  3. 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.

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.

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.