SimpleDetail
📖 4 menit baca

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 cancelled status 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 Email
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

  1. A member can only have one active license per product at a time.
  2. License-ID is unique and cannot be transferred.
  3. Free licenses do not expire.
  4. Grace Period only applies to paid licenses.
  5. Member data is not deleted even if the license is suspended.
  6. Renewal of expired licenses is counted from the old expiration date, not the payment date.
  7. 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.