License and Subscription Management — Central Membership & SSO Hub
1. Document Purpose
This document explains how the system manages member licenses and subscriptions, including the creation of License-ID, license lifespan, and displaying license information to members.
2. License-ID Concept
2.1 Definition
License-ID is a unique code generated by the system for each active member subscription to a product.
2.2 Format
[PREFIX_PRODUK]-[XXXX]-[XXXX]-[XXXX]
- PREFIX_PRODUK: Short product SaaS code (2–4 characters, uppercase letters).
- [XXXX]: Four uppercase alphanumeric characters, generated randomly.
Example:
NTO-A1B2-C3D4-E5F6 → License for NOTO product
APP-X9Y8-Z7W6-V5U4 → License for Application B for the same member
2.3 Properties of License-ID
- Unique globally throughout the system.
- Cannot be changed after generation.
- Valid only for one member and one product.
- Cannot be transferred.
- Displayed on the member dashboard and sent via email.
3. License Lifespan
Activated
│
▼
[active]
│
├── (Free Package)
│ Never expires → remains [active/free] forever
│
└── (Paid Package)
│
▼ (expired_at reached)
[grace_period]
│
├── Member extends → back to [active]
│
└── Grace Period ends
│
▼
[suspended]
│
├── Member pays → back to [active]
│
└── Member does not return → data remains stored
3.1 License Status
| Status | Code | Description |
|---|---|---|
| Active | active |
Active license, full access |
| Free Forever | active_free |
Free package, no expiration |
| Grace Period | grace_period |
Expired, still in grace period |
| Suspended | suspended |
Grace period ended, access blocked |
| Cancelled | cancelled |
Cancelled by member or admin |
4. Creating License-ID
4.1 When License-ID is Created
- When a member first activates a free package.
- When the first payment for a specific product is successful.
4.2 Creation Rules
- The system checks for the uniqueness of License-ID before saving.
- If a member already has a license for the same product (extension), the existing License-ID is not replaced.
- License-ID is only recreated if the previous license is in the
cancelledstatus and the member purchases again.
5. Displaying License Information to Members
On the member dashboard, each license displays:
| Information | Example |
|---|---|
| Product Name | NOTO |
| License-ID | NTO-A1B2-C3D4-E5F6 |
| Package | Free Forever |
| Status | Active |
| Active Period | Unlimited |
| Activation Date | July 12, 2026 |
| Action Button | Open Application |
For paid packages, additional information is displayed:
| Information | Example |
|---|---|
| Expiration Date | August 12, 2026 |
| Remaining Days | 30 days |
| Action Button | Renew / Upgrade |
6. License Notifications
6.1 System-Sent Email Notifications
| Event | |
|---|---|
| New license activation | Confirmation activation + License-ID |
| Successful payment | Invoice + confirmation of extension |
| H-7 expiration reminder | Reminder will expire |
| H-3 expiration reminder | Urgent reminder |
| H-1 expiration reminder | Last day reminder |
| Grace Period starts | Notification + instructions for extension |
| Grace Period H+3 reminder | Reminder during grace period |
| Grace Period H+6 reminder | Warning will be blocked tomorrow |
| Access suspended | Notification access blocked |
| Activation after suspension | Confirmation access restored |
7. Multi-Product Dashboard
A member subscribed to multiple products will see a display like:
My Subscriptions
│
├── NOTO
│ License-ID : NTO-A1B2-C3D4-E5F6
│ Status : Active (Free Forever)
│ Action : [Open Application]
│
├── Application B
│ License-ID : APB-X9Y8-Z7W6-V5U4
│ Status : Active · Expires August 31, 2026
│ Action : [Open Application] [Renew]
│
└── Application C
License-ID : APC-Q5R4-S3T2-P1O0
Status : Grace Period · Remaining 3 days
Action : [Renew Now]
8. License Rules
- A member can only have one active license per product at a time.
- License-ID is unique and cannot be transferred.
- Free licenses do not expire.
- Grace Period only applies to paid licenses.
- Member data is not deleted even if the license is suspended.
- Renewal of expired licenses is counted from the old expiration date, not the payment date.
- Cancelled licenses cannot be restored; a new purchase will generate a new License-ID.
9. Acceptance Criteria
- License-ID is in the format
[PREFIX_PRODUK]-[XXXX]-[XXXX]-[XXXX]and is unique throughout the system. - License-ID is displayed on the dashboard after activation.
- An email confirmation with License-ID is sent after activation.
- License status changes automatically according to conditions (active → grace_period → suspended).
- Scheduled email notifications are sent.
- Members can view all their licenses in one dashboard.
- Members cannot access the application if the license is suspended.