{% extends 'administration/base.html.twig' %} {% block title %}License Server API Dokumentation{% endblock %} {% block body %}

License Server API Dokumentation

API Basis-URL
{{ app.request.schemeAndHttpHost }}/admin/license-server/api
Lizenz validieren
POST /api/license/validate

Validiert einen Lizenzschlüssel für eine bestimmte Domain.

Request Body (JSON):
{
    "licenseKey": "XXXX-XXXX-XXXX-XXXX",
    "domain": "example.com",
    "version": "1.0.0" // optional
}
Response:
{
    "valid": true,
    "license": {
        "id": 1,
        "type": "Professional",
        "validUntil": "2024-12-31",
        "domain": "example.com",
        "customer": "John Doe"
    }
}
Lizenz prüfen (GET)
GET /api/license/check?licenseKey=XXXX&domain=example.com

Prüft eine Lizenz über GET-Parameter.

Response:
{
    "valid": true,
    "license": {
        "id": 1,
        "type": "Professional",
        "validUntil": "2024-12-31",
        "domain": "example.com",
        "customer": "John Doe"
    }
}
Lizenz aktivieren
POST /api/license/activate

Aktiviert eine Lizenz für eine Domain.

Request Body (JSON):
{
    "licenseKey": "XXXX-XXXX-XXXX-XXXX",
    "domain": "example.com"
}
Response:
{
    "success": true,
    "license": {
        "id": 1,
        "key": "XXXX-XXXX-XXXX-XXXX",
        "type": "Professional",
        "domain": "example.com",
        "validFrom": "2024-01-01",
        "validUntil": "2024-12-31",
        "customer": "John Doe",
        "features": ["feature1", "feature2"]
    }
}
Lizenz Heartbeat
POST /api/license/heartbeat

Sendet einen Heartbeat für eine aktive Lizenz.

Request Body (JSON):
{
    "licenseKey": "XXXX-XXXX-XXXX-XXXX",
    "domain": "example.com"
}
Response:
{
    "success": true,
    "license": {
        "id": 1,
        "type": "Professional",
        "validUntil": "2024-12-31",
        "daysRemaining": 45,
        "features": ["feature1", "feature2"]
    }
}
Lizenz Features abrufen
GET /api/license/features?licenseKey=XXXX

Ruft die Features einer Lizenz ab.

Response:
{
    "success": true,
    "features": ["feature1", "feature2", "feature3"],
    "plan": {
        "name": "professional",
        "label": "Professional",
        "maxDomains": 5,
        "maxUsers": 100
    }
}
Fehler-Responses
Lizenzschlüssel nicht gefunden:
{
    "valid": false,
    "error": "Lizenzschlüssel nicht gefunden"
}
Lizenz ist nicht aktiv:
{
    "valid": false,
    "error": "Lizenz ist nicht aktiv"
}
Domain nicht autorisiert:
{
    "valid": false,
    "error": "Domain nicht autorisiert"
}
Lizenz ist abgelaufen:
{
    "valid": false,
    "error": "Lizenz ist abgelaufen"
}
API Test
Response:

                        
{% endblock %}