License API Documentation

Server-side API for client software license verification and activation.

Base URL: https://fctisoftware.com/api/v1

Auth: License serial key (no API key required)

Verify License

POST /api/v1/license/verify

Request Body

{
    "serial_key": "EDUM-9821-4402-8819",
    "product_code": "school-management",
    "domain": "example.com",
    "device_identifier": "device-abc-123"
}

Success Response

{
    "success": true,
    "valid": true,
    "license": {
        "status": "active",
        "expiry_date": "2027-01-15",
        "grace_period_days": 7,
        "max_activations": 5,
        "current_activations": 2
    },
    "timestamp": "2026-09-22T12:00:00Z"
}

Error Response

{
    "success": false,
    "valid": false,
    "error": "License not found or invalid",
    "code": 404
}

Activate License

POST /api/v1/license/activate

Request Body

{
    "serial_key": "EDUM-9821-4402-8819",
    "product_code": "school-management",
    "domain": "example.com",
    "device_identifier": "device-abc-123"
}

Success Response

{
    "success": true,
    "activated": true,
    "license": { "status": "active", "activation_count": 3, "max_activations": 5 }
}

Limit Reached

{
    "success": false,
    "activated": false,
    "error": "Maximum activations reached",
    "code": 400
}

Heartbeat / Status

POST /api/v1/license/heartbeat

Same request/response as Verify. Used for periodic check-ins.

License States

StatusDescription
activeLicense is valid and usable
expiredLicense has passed expiry date (grace period may apply)
suspendedTemporarily disabled by administrator
revokedPermanently disabled (cannot be reactivated)
pendingLicense created but not yet activated

Rate Limiting

60 requests per minute per IP. Exceeding this returns HTTP 429.

হোয়াটসঅ্যাপ সাপোর্ট