Zum Hauptinhalt springen

Documentation Index

Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt

Use this file to discover all available pages before exploring further.

Lizenzschlüssel sind der Berechtigungstyp “License Key”. Erstellen Sie eine License Key-Berechtigung einmalig mit dem gewünschten Aktivierungslimit, Ablauf und Anweisungen, verknüpfen Sie sie mit einem Produkt, und Dodo Payments generiert und liefert automatisch einen Schlüssel pro Kauf oder Abonnementplatz.

Was sind Lizenzschlüssel?

Lizenzschlüssel sind einzigartige Tokens, die den Zugriff auf Ihr Produkt autorisieren. Sie sind ideal für:
  • Softwarelizenzierung: Desktop-Apps, Plugins und CLIs
  • Pro-Benutzer-Kontrollen: Begrenzen Sie die Aktivierungen pro Benutzer oder Gerät
  • Digitale Waren: Steuern Sie Downloads, Updates oder Premium-Funktionen
Innerhalb von Dodo Payments werden Lizenzschlüssel über das Berechtigungen System verwaltet, was bedeutet, dass der Lebenszyklus jedes Schlüssels (Erstellung, Ablauf, Widerruf, Neugewährung) von denselben Zahlungs- und Abonnementereignissen wie Ihre anderen Lieferungen gesteuert wird.

Erstellen Sie eine License Key-Berechtigung

1

Open Entitlements

Gehen Sie zu Berechtigungen in Ihrem Dodo Payments-Dashboard und klicken Sie auf +, um eine neue Berechtigung zu erstellen.
2

Choose License Key

Wählen Sie License Key als Integration. Konfigurieren Sie, wie sich jeder ausgegebene Schlüssel verhält:
  • Aktivierungslimit: Maximale gleichzeitige Aktivierungen pro Schlüssel (z.B. 1 für Einzelbenutzer, 5 für Teamlizenzen, leer lassen für unbegrenzt).
  • Dauer: Wie lange der Schlüssel nach der Ausgabe gültig bleibt (z.B. 30 Tage, 1 Jahr). Für Abonnement-gestützte Schlüssel leer lassen; Schlüssel bleiben gültig, solange das Abonnement aktiv ist.
  • Aktivierungsanweisungen: Kundengerichtete Anweisungen, die mit dem Schlüssel per E-Mail gesendet werden. Beispiele: Paste the key in Settings → License oder Run: mycli activate <key>.
License Key-Berechtigungsformular mit Aktivierungslimit, Dauer und Anweisungen
3

Save the entitlement

Speichern. Die Berechtigung ist jetzt verfügbar, um sie mit jedem Produkt zu verknüpfen.

An Produke anhängen

Öffnen Sie ein Produkt, erweitern Sie Erweiterte Einstellungen → Berechtigungen & Gutschriften und wählen Sie Ihre License Key-Berechtigung aus. Ein einzelnes Produkt kann gemeinsam mit anderen Berechtigungen (Discord-Zugang, Dateidownloads, GitHub-Repo-Zugang usw.) einen Lizenzschlüssel bei demselben Kauf liefern.
Produktberechtigungspanel mit ausgewähltem Lizenzschlüssel

Wie Schlüssel ausgegeben werden

Die Schlüsselausgabe folgt dem Standard Zuwendungslebenszyklus:
EreignisVerhalten
payment.succeeded (einmalig)Generieren Sie einen Schlüssel pro quantity gekauft. Der Ablauf des Schlüssels berücksichtigt die Dauer der Berechtigung.
subscription.activeGenerieren Sie einen Schlüssel pro Abonnement quantity (Sitz). Der Schlüssel hat kein Ablaufdatum; die Gültigkeit ist an den Abonnementstatus gebunden.
subscription.renewedNo-op. Vorhandene Schlüssel bleiben bestehen.
subscription.on_holdDeaktivieren Sie die Schlüssel. Sie werden reaktiviert, wenn das Abonnement von der Haltestellung genommen wird.
subscription.cancelled / expiredDeaktivieren Sie die Schlüssel dauerhaft.
subscription.plan_changedDeaktivieren Sie die alten Schlüssel; geben Sie neue für den neuen Plan aus.
refund.succeeded (einmalig)Deaktivieren Sie die Schlüssel.
Manuelles Widerrufen über API/DashboardDeaktivieren Sie die Schlüssel mit revocation_reason: manual. Diese werden bei Abonnementverlängerung nicht automatisch erneut vergeben.
Lizenzschlüssel direkt deaktiviertWiderrufen Sie die Zuwendung mit revocation_reason: license_key_disabled. Das erneute Aktivieren des Schlüssels reaktiviert die Zuwendung automatisch.

Verhaltensweise der Menge

  • Abonnementprodukte geben einen Schlüssel pro Sitzplatz aus (subscriptions.quantity).
  • Einmalprodukte geben einen Schlüssel pro Warenkorbposition aus (product_cart.quantity).
  • Manuelle API-Zuwendungen geben genau einen Schlüssel aus.

Aktivierung, Validierung, Deaktivierung

Die Aktivierungs-/Validierungs-/Deaktivierungs-API-Endpunkte sind öffentlich und erfordern keinen API-Schlüssel. Verwenden Sie sie direkt von Desktop-Software, CLIs oder browserbasierten Clients, um Schlüssel zur Laufzeit zu überprüfen.
Öffentliche Endpunkte: Die Aktivierungs-, Deaktivierungs- und Validierungslizenz-Endpunkte sind öffentlich und erfordern keinen API-Schlüssel. Rufen Sie sie direkt von Ihren Client-Anwendungen auf, ohne Ihre API-Anmeldeinformationen offenzulegen.

Aktivieren Sie eine Lizenz

import DodoPayments from 'dodopayments';

// No API key needed for public license endpoints
const client = new DodoPayments();

const response = await client.licenses.activate({
  license_key: 'PRO-AAAA-BBBB-CCCC-DDDD',
  name: 'Device Name',
});

console.log(response.id);

Validieren Sie eine Lizenz

const response = await client.licenses.validate({
  license_key: 'PRO-AAAA-BBBB-CCCC-DDDD',
});

console.log(response.valid);

Deaktivieren Sie eine Aktivierungsinstanz

await client.licenses.deactivate({
  license_key: 'PRO-AAAA-BBBB-CCCC-DDDD',
  license_key_instance_id: 'instance_abc123',
});

Schlüssel verwalten

Öffnen Sie die Lizenzschlüssel-Berechtigung in Ihrem Dashboard, um jede Zuwendung zu sehen (eine Zeile pro Kunden-Schlüssel) mit Lieferdatum, Aktivierungsanzahl und einer Widerrufsaktion. Jede Zuwendungsdetailanzeige zeigt den zugrunde liegenden Lizenzschlüssel, Ablauf, genutzte Aktivierungen und das Aktivierungslimit. Sie können Zuwendungen auch programmatisch auflisten:
const grants = await client.entitlements.grants.list('ent_license_key_id', {
  status: 'delivered',
});

for (const grant of grants.items) {
  console.log(grant.license_key.key, grant.license_key.activations_used);
}

Bestehende Lizenzschlüssel über API importieren

Haben Sie bereits Lizenzschlüssel in einem anderen System? Verwenden Sie die Create License Key API, um sie in Dodo Payments zu importieren. Dies ermöglicht Ihnen die Migration bestehender Schlüssel, ohne Ihre Kunden zu stören — sie können weiterhin aktivieren, validieren und gegen dieselben Schlüsselstränge deaktivieren, ohne dass eine erneute Ausgabe erforderlich ist.
Lizenzschlüssel, die über die API erstellt oder aktualisiert werden, lösen keine E-Mail-Benachrichtigungen an Kunden aus. Wenn Sie Kunden über einen importierten Schlüssel informieren müssen, handhaben Sie dies separat in Ihrer Anwendung.
const licenseKey = await client.licenseKeys.create({
  customer_id: 'cus_abc123',
  product_id: 'prod_456',
  key: 'YOUR-EXISTING-LICENSE-KEY',
  activations_limit: 5,
  expires_at: '2026-12-31T23:59:59Z',
});

Wie importierte Schlüssel sich von automatisch generierten unterscheiden

FeldAutomatisch generierter SchlüsselImportierter Schlüssel
source"auto""import"
payment_idWird auf die ursprüngliche Zahlung gesetztnull (keine Dodo Payments-Transaktion)
subscription_idWird gesetzt, wenn der Schlüssel über ein Abonnement ausgegeben wurdenull, es sei denn, ausdrücklich verknüpft
Kunden-E-Mail-BenachrichtigungWird bei Ausgabe gesendetNicht gesendet — separat handhaben
Verwenden Sie das source Feld auf GET /license_keys Antworten, um migrierten Bestand von organisch ausgegebenen Schlüsseln bei der Abstimmung oder Prüfung zu unterscheiden.
Migrieren Sie von Polar.sh oder Lemon Squeezy? Die dodo-migrate CLI automatisiert Massenimporte von Produkten, Kunden, Rabatten und Lizenzschlüsseln in einem einzigen Befehl und ordnet externe IDs automatisch Dodo-IDs zu.

Lizenzschlüssel in Rückgabe-URL

Wenn ein Kunde einen Kauf für ein Produkt mit einer Lizenzschlüsselberechtigung abschließt, wird der generierte Schlüssel automatisch als Abfrageparameter an Ihr return_url hinzugefügt. Dies ermöglicht Ihnen, den Schlüssel sofort auf Ihrer Erfolgsseite anzuzeigen, ohne einen zusätzlichen API-Aufruf zu tätigen.
https://yoursite.com/return?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com
Wenn der Kauf mehrere Schlüssel generiert (Menge > 1), werden sie durch Kommas getrennt:
https://yoursite.com/return?payment_id=pay_xxx&status=succeeded&license_key=LK-001,LK-002&email=customer%40example.com
Für Abonnements wird subscription_id anstelle von payment_id verwendet:
https://yoursite.com/return?subscription_id=sub_xxx&status=active&license_key=LK-001&email=customer%40example.com
Parsen Sie den license_key Parameter auf Ihrer Rückgabeseite, um den Schlüssel sofort anzuzeigen und die Kauferfahrung nach dem Kauf zu verbessern.

API-Management

Aktivierung, Deaktivierung und Validierung sind öffentlich; kein API-Schlüssel erforderlich.

Activate License

Erstellen oder protokollieren Sie eine Aktivierungsinstanz für einen Lizenzschlüssel.

Deactivate License

Widerrufen Sie eine vorherige Aktivierung, um Kapazität freizugeben.

Validate License

Überprüfen Sie die Authentizität, den Status und die Einschränkungen, bevor Sie Zugriff gewähren.
Erstellen, auflisten, abrufen und aktualisieren Sie einzelne Lizenzschlüsseleinträge. Verwenden Sie diese, um vorhandene Schlüssel zu importieren oder Nutzungsdetails abzurufen.

Create License Key

Erstellen Sie einen neuen Lizenzschlüssel oder importieren Sie einen vorhandenen.

List License Keys

Durchsuchen Sie alle Schlüssel mit Status- und Nutzungsdetails.

Get License Key

Rufen Sie einen bestimmten Schlüssel und dessen Metadaten ab.

Update License Key

Ändern Sie Ablauf, Aktivierungslimits oder aktivieren/deaktivieren Sie einen Schlüssel.
Verwalten Sie die Lizenzschlüsselberechtigung selbst: deren Aktivierungslimit, Dauer und Anweisungen.

Create Entitlement

Erstellen Sie eine Lizenzschlüsselberechtigung.

Update Entitlement

Aktualisieren Sie die Konfiguration der Berechtigung.

List Grants

Listen Sie die für eine Berechtigung ausgegebenen Schlüssel auf.

Revoke Grant

Widerrufen Sie manuell den Schlüssel eines Kunden.

Webhooks

Lizenzschlüssel-Lieferungen und -Widerrufe lösen die vier entitlement_grant.* Webhook-Ereignisse aus. Die Zuwendungsladung enthält ein ausgefülltes license_key-Objekt mit dem Schlüssel, Ablauf, genutzten Aktivierungen und Limit. Die Legacy license_key.* Ereignisse (license_key.created) werden weiterhin für den zugrunde liegenden Lizenzschlüssel-Datensatz-Lebenszyklus ausgelöst; siehe die Lizenzschlüssel-Webhook-Ladungsseite.
Für neue Integrationen hören Sie auf entitlement_grant.delivered anstatt license_key.created. Das Berechtigungsereignis informiert Sie, dass die Lieferung über alle Integrationen des Produkts hinweg abgeschlossen ist, nicht nur der Lizenzschlüssel.

Legacy-Lizenzschlüssel

Produkte, die mit dem älteren license_key_enabled-Flag erstellt wurden, wurden automatisch migriert in eine Lizenzschlüsselberechtigung. Die Migration ist transparent: Die Schlüssel bestehender Kunden funktionieren weiterhin unverändert, die öffentlichen /licenses/activate, /licenses/validate, /licenses/deactivate Endpunkte funktionieren weiterhin und die /license_keys/* API-Endpunkte lesen und schreiben weiterhin in denselben Schlüsselspeicher.Der eigenständige Lizenzschlüssel-Dashboardbereich bleibt als flache Liste aller ausgegebenen Schlüssel verfügbar und ist nützlich für Prüfung und Suche. Neue Konfigurationen (Änderung von Aktivierungslimits, Dauer oder Anweisungen) sollten durch Bearbeiten der migrierten Lizenzschlüsselberechtigung unter Berechtigungen vorgenommen werden.

Best Practices

  • Halten Sie die Aktivierungslimits klar: Wählen Sie sinnvolle Standardwerte (1 für Einzelbenutzer-Apps, 3–5 für Teamlizenzen) und dokumentieren Sie diese.
  • Bereitstellen Sie genaue Aktivierungsanweisungen: Kunden kopieren diese aus ihrer E-Mail, daher sparen genaue Pfade und Befehle Support-Tickets.
  • Validieren Sie Schlüssel serverseitig: Für netzwerkverbundene Produkte validieren Sie über /licenses/validate anstatt lokal zwischengespeicherte Aktivierungen.
  • Verwenden Sie Webhooks für Widerrufe: Hören Sie auf entitlement_grant.revoked, um In-App-Funktionen sofort zu deaktivieren, wenn ein Kunde kündigt oder eine Rückerstattung erhält.
  • Testen Sie mit Abonnements und Einmaligen: Das Verhalten von Lizenzschlüsseln unterscheidet sich subtil zwischen beiden, daher testen Sie beide, bevor Sie live gehen.
Last modified on May 14, 2026