🔐 License API
Integrate licensing into your digital products
📖 What is Qlipper Licensing?
Qlipper provides a complete licensing system for desktop applications. Users purchase licenses and activate them on up to 2 devices. Your app verifies licenses when it starts.
👤 For Users
- Purchase a license at Scalev
- Receive license key via email
- Register at member.qlipper.id
- Activate license on their devices
💻 For Your App
- Call verify endpoint on startup
- Check if license is valid
- Load paid features if valid
- Show login page if not valid
🛒 For You
- Users pay through Scalev
- Webhook auto-generates licenses
- Welcome email sent automatically
- No manual license management
🔄 How It Works
- User purchases → Scalev sends webhook to our API
- License created → System generates unique license key
- Email sent → User receives license key automatically
- User registers → Goes to member.qlipper.id and creates account
- Activates license → Links license to their device(s)
- App verifies → Your app checks license on startup
- Features unlocked → Paid features become available
- Each license can be activated on maximum 2 devices
- License keys look like:
QLIP-3a9f2c-b81e04-c55d71 - Users manage licenses at https://member.qlipper.id
- Your app should verify license on startup only (not every action)
- If offline, use cached verification (1-24 hours)
🚀 Quick Start
⚡ For Desktop/Desktop Apps (Qlipper AI)
When your app starts, immediately call the license verification endpoint to check if the user's license is valid:
Features
✓ License Verification
Instantly verify if a license is valid and active
✓ Device Binding
Limit licenses to 2 devices max per user
✓ Tier Support
Expandable tier system (Free, Paid, Enterprise)
✓ Auto Email
Automatic welcome email on purchase
📡 Public API Endpoints
Verify a license key on a device (PUBLIC - No Auth Required)
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
key |
String | Yes | License key (e.g., QLIP-3a9f2c-b81e04-c55d71) |
fingerprint |
String | Yes | Device hardware fingerprint/ID |
Response (200 - Valid)
Response (200 - Invalid)
Example Request
Activate a license on a device (PUBLIC - No Auth Required)
Request Body
Response (200 - Success)
Response (400 - Error)
Example Request
Deactivate a license on a device (PROTECTED - JWT Required)
Request Body
Headers
Response (200 - Success)
🔑 Authentication & User Management
Create an account (Email must be whitelisted)
Request Body
Response (200)
Login and get JWT token
Request Body
Response (200)
Get current user info (PROTECTED - JWT Required)
Headers
Response (200)
👨💼 Admin Endpoints (Whitelist Management)
Manually add a user (PROTECTED - Admin Secret Required)
Headers
Request Body
Response (200)
🔔 Webhooks (Scalev Integration)
Receive purchase notifications from Scalev (PUBLIC)
Scalev Configuration
In your Scalev dashboard, add this webhook URL:
Expected Webhook Payload (from Scalev)
Response (200)
⚡ What Happens Automatically
- Scalev sends purchase data to our webhook
- We generate a license key for the buyer
- Email sent automatically with license key + link to member.qlipper.id
- Buyer registers account and activates license
📱 Desktop App Integration Guide
Step 1: Get Device Fingerprint
Generate a unique hardware ID for the device:
Step 2: Store & Retrieve License Key
Step 3: Verify License on App Startup
Step 4: Activate License (First Time)
Step 5: Handle License States
⚠️ Error Codes & Responses
| Reason Code | HTTP Status | Meaning | User Action |
|---|---|---|---|
key_not_found |
200 | License key doesn't exist | User needs to purchase |
device_not_activated |
200 | Key exists but not activated on this device | User must activate license first |
key_revoked |
200 | License was revoked/cancelled | User must contact support |
max_devices_reached |
400 | Already activated on 2 devices (limit) | Deactivate on another device first |
already_activated |
200 | This device is already activated | No action needed |
⚡ Best Practices
✓ Do
- Cache license verification (1-24 hours)
- Verify on app startup
- Allow offline access (verify when online)
- Use HTTPS only
- Handle network timeouts gracefully
- Store device fingerprint securely
✗ Don't
- Verify on every action (performance)
- Store license key in plain text
- Send license key in URLs
- Trust client-side verification only
- Expose device fingerprinting logic
- Log full license keys
📞 Support
Need help integrating? Issues with the API?
Email: widi.adyatma@gmail.com
API Status: All Systems Operational