Zum Inhalt springen

API für eigene Lizenzdienste

Launch unterstützt Licentivo und eigene Lizenzdienste. Wählen Sie unter Systemeinstellungen → Lizenzsystem einen Anbieter für den gesamten Shop.

Produkte mit eigener Lizenzierung verwenden den Lizenzdienst und das SDK des Händlers. Launch übernimmt Verkauf, Zahlungsbestätigung, Kaufstatusabgleich und Auslieferungsabfragen.

  1. Konfigurieren Sie Verbindungen, Signaturschlüssel sowie Produkt- und Tarifzuordnungen getrennt für sandbox und live. Prüfen Sie die Verbindung vor der Tarifveröffentlichung.
  2. Verbindungen mit bestehenden Bestellungen können nicht direkt ersetzt werden. Migrieren Sie die Bestellungen vor einem Anbieterwechsel und veröffentlichen Sie die Tarife erneut.
  3. Prüfen Sie Käufe, Verlängerungen, Upgrades, Erstattungen und Fehlerbehebung in der Testumgebung, bevor Sie die Produktivkonfiguration veröffentlichen.

Schnittstellen des Händler-Lizenzdienstes

Diese vier Schnittstellen werden vom Lizenzdienst des Händlers implementiert und vom Launch-Server aufgerufen. Senden Sie diese Anfragen nicht an www.licentivo.com.

APIZweck
GET /launch/v1/capabilitiesProtokoll, Verbindung, Umgebung sowie unterstützte Kauf- und Auslieferungsarten angeben.
POST /launch/v1/eventsDen vollständigen Kauf-Snapshot annehmen und nach dauerhafter Speicherung des Ereignisses eine Quittung zurückgeben.
GET /launch/v1/events/{event_id}Die ursprüngliche Ereignisquittung abfragen. Nur applied bestätigt die abgeschlossene Lizenzänderung.
GET /launch/v1/entitlements/{entitlement_ref}/deliveryDie bestehende Auslieferung der aktuellen Kaufversion lesen, ohne eine weitere Lizenz auszustellen.

Snapshots enthalten Kaufversion, aktuellen Zustand und absolute Gültigkeitsdaten; valid_until=null steht für einen dauerhaften Kauf. Nach einer Erstattung kann ein Basiskauf bestehen bleiben. Berechnen Sie Rechte daher aus dem vollständigen Snapshot neu.

POST /launch/v1/events · JSON
{
  "schema": "launch-external-licensing-v1",
  "event_id": "7bf84b91-2749-4b01-a6a7-bd527c488ee8",
  "connection_ref": "merchant-01-sandbox",
  "environment": "sandbox",
  "type": "entitlement.snapshot",
  "change_reason": "purchase",
  "account_ref": "customer_opaque_001",
  "entitlement_ref": "purchase_opaque_001",
  "launch_product_id": "c6dd463e-50f7-4b76-8239-0a8ec6fc304b",
  "launch_plan_version_id": "5459a073-9362-4b46-949d-9b0c5d84421a",
  "product_ref": "desktop-editor",
  "plan_ref": "professional-yearly-v1",
  "version": 1,
  "desired_state": "active",
  "valid_from": "2026-10-26T00:00:00Z",
  "valid_until": "2027-10-26T00:00:00Z"
}

Signaturen und Wiederholungen

Verwenden Sie je Verbindung einen eigenen HMAC-SHA256-Schlüssel mit mindestens 32 zufälligen Bytes. Anfragen enthalten Schlüssel-ID, Unix-Zeitstempel in Sekunden, zufällige Nonce und Signatur. Prüfen Sie Signatur, ein Zeitfenster von 300 Sekunden und den Nonce-Wiederholungsschutz.

HMAC-SHA256 · UTF-8 canonical request
v1
<key_id>
<timestamp>
<nonce>
<UPPERCASE HTTP METHOD>
<encoded full path and raw query>
<lowercase SHA-256 of the exact request body>

Fügen Sie der Signatureingabe keinen abschließenden Zeilenumbruch hinzu. X-Launch-Signature besteht aus v1= und der base64url-Signatur ohne Padding. GET-Anfragen haben keinen Inhalt.

Wiederholungen behalten Ereignis-ID und Originalinhalt bei und verwenden jeweils eine neue Nonce. Fragen Sie nach einem Timeout das ursprüngliche Ereignis ab. Alte Versionen dürfen neue nicht überschreiben; 202 bestätigt keine abgeschlossene Lizenzierung.

Launch-Verwaltungs- und Kundenschnittstellen

Diese Schnittstellen gehören zur eigenen Launch-Website des Händlers. Administratoren verwenden eine Websitzung und X-CSRF-Token. Kunden dürfen nur ihre eigenen aktuell gültigen Käufe lesen.

PUT /api/v1/admin/licensing/provider{"provider":"custom_http"}
GET/POST /api/v1/admin/licensing/connectionsGET/POST
PUT /api/v1/admin/licensing/connections/{id}POST /api/v1/admin/licensing/connections/{id}/check
PUT /api/v1/admin/products/{id}/licensingenvironment + connection_id + mappings
GET /api/v1/me/products/{id}/delivery?environment=sandboxpending / ready / unavailable

Die Auslieferung kann einen Lizenzschlüssel, einen HTTPS-Aktivierungslink oder Klartextanweisungen enthalten. Ein erfolgreicher Abgleich ersetzt keine Laufzeitprüfung im Client.

Vollständiges Protokoll und Beispiele · OpenAPI herunterladen · Python-Empfängerbeispiel

OpenAPI für Launch-Verwaltung und Kunden