pending Zuweisung und wartet darauf, dass Sie den Schlüsselwert aus Ihrem eigenen System, einem Drittanbieter oder einem begrenzten Codepool bereitstellen.
Am Ende werden Sie haben:
- Ein Produkt mit einer Lizenzschlüssel-Berechtigung, die auf
manualErfüllung eingestellt ist. - Einen Webhook-Listener, der erkennt, wenn ein Kunde auf einen Schlüssel wartet.
- Einen Erfüllungsaufruf, der den Schlüssel liefert und den Kunden automatisch benachrichtigt.
fulfillment_mode Einstellung.
Ein API-Referenz für den Endpunkt, den Sie aufrufen, um einen Schlüssel zu liefern.
So funktioniert es
Manuelle Erfüllung ändert nur den Ausgabeschritt. Aktivierung, Validierung, Deaktivierung, Ablauf und Widerruf verhalten sich genau wie ein automatisch generierter Schlüssel, sobald er geliefert wird.Voraussetzungen
Um diesem Leitfaden zu folgen, benötigen Sie:- Ein Dodo Payments Händlerkonto.
- Ihren API-Schlüssel (
DODO_PAYMENTS_API_KEY) und den Webhook-Geheimschlüssel aus dem Dashboard. Siehe den Leitfaden zur API-Schlüsselerstellung. - Einen Backend-Endpunkt, der Webhooks empfangen kann.
https://test.dodopayments.com und Anmeldedaten im Testmodus beim Aufbau. Wechseln Sie zu https://live.dodopayments.com und Live-Schlüsseln, wenn Sie in die Produktion gehen.
Schritt 1 — Erstellen Sie eine Lizenzschlüssel-Berechtigung im manuellen Modus
Eine Berechtigung ist eine wiederverwendbare Definition dessen, was Sie liefern. Erstellen Sie eine Lizenzschlüssel-Berechtigung und stellen Sie derenfulfillment_mode auf manual ein.
Gehen Sie zu Berechtigungen in Ihrem Dashboard und klicken Sie auf +, um eine neue Berechtigung zu erstellen.
- Erfüllungsmodus — Standardmäßig
Automatic. Dies ist die Einstellung, die die manuelle Erfüllung ermöglicht; Sie ändern sie im nächsten Schritt. - Lizenzdauer — wie lange jeder ausgegebene Schlüssel gültig bleibt, oder Kein Ablauf.
- Aktivierungslimit — maximale Aktivierungen pro Schlüssel oder Unbegrenzt.
- Aktivierungsnachricht — optionale, kundenorientierte Nachricht, die angezeigt wird, wenn sie den Schlüssel aktivieren.
pending Zuweisung, die Sie erfüllen können. Klicken Sie auf Berechtigung erstellen, um zu speichern.
Erstellen Sie die Berechtigung mit integration_config.fulfillment_mode eingestellt auf manual.
fulfillment_mode ist standardmäßig auto. Wenn es weggelassen wird oder unverändert bleibt, bleibt das automatische Verhalten bestehen. Nur Berechtigungen, die explizit auf manual eingestellt sind, erstellen ausstehende Zuweisungen.
Schritt 2 — Die Berechtigung an ein Produkt anhängen
Öffnen Sie das Produkt, das Sie verkaufen möchten, erweitern Sie Erweiterte Einstellungen → Berechtigungen & Credits und wählen Sie die Lizenzschlüssel-Berechtigung, die Sie in Schritt 1 auf Manuell gesetzt haben. Ein einzelnes Produkt kann diesen Lizenzschlüssel zusammen mit anderen Berechtigungen beim selben Kauf liefern. Erfüllungsmodus ist eine Eigenschaft der Berechtigung, nicht des Produkts. Da Sie es in Schritt 1 auf Manuell gesetzt haben, erstellt jedes Produkt, dem diese Berechtigung zugewiesen ist, bei Kaufpending Lizenzschlüssel-Zuweisungen — hier gibt es nichts extra zu konfigurieren.
Wenn Sie noch kein Produkt haben, erstellen Sie zuerst eines (einmalig oder im Abonnement). Siehe den Leitfaden zur einmaligen Zahlungseinbindung für den Verkauf des Produkts über den Checkout.
Schritt 3 — Ausstehende Zuweisungen erkennen
Wenn ein Kunde das Produkt kauft, erstellt Dodo Payments eine Zuweisung impending Status ohne angehängten Schlüssel und löst einen entitlement_grant.created Webhook aus. Dies ist Ihr Signal, dass ein Kunde auf einen Schlüssel wartet.
Auf den Webhook hören
Richten Sie einen Webhook-Endpunkt ein (Entwickler → Webhooks im Dashboard) und reagieren Sie auf ausstehende Lizenzschlüssel-Zuweisungen. Die Implementierung folgt der Standard-Webhooks Spezifikation. Die Zuweisungsdaten tragenintegration_type: "license_key", sodass Sie eine Lizenzschlüssel-Zuweisung ohne zusätzliche Abfrage erkennen können. Siehe die Berechtigungs-Zuweisungs-Webhook-Referenz für die vollständige Nutzladung.
Oder die Listen-Zuweisungen-API abfragen
Wenn Sie nicht auf Webhooks angewiesen sein möchten, listen Sie Zuweisungen für die Berechtigung auf und filtern Sie nachintegration_type und status:
Schritt 4 — Den Schlüssel liefern
Erhalten Sie den Schlüsselwert aus Ihrem eigenen System und übermitteln Sie ihn über den Fulfill License Key Grant Endpunkt. Dies erfordert Ihren geheimen API-Schlüssel (Editor-Berechtigung); es ist nicht einer der öffentlichen Lizenzendpunkte.Anforderungsfelder
Die Lizenzschlüsselzeichenfolge, die dem Kunden geliefert werden soll. Leerzeichen werden entfernt; ein leerer oder nur Leerzeichen enthaltender Wert wird abgelehnt. Per-Schlüssel-Aktivierungslimit. Fällt auf die Berechtigungskonfiguration zurück, wenn nicht angegeben. Per-Schlüssel-Ablaufdatum (ISO 8601). Fällt auf die Dauer der Berechtigungskonfiguration zurück, wenn nicht angegeben. Für Abonnements ausgegebene Zuweisungen bleibt die Gültigkeit trotzdem an das Abonnement gebunden. Bei Erfolg wechselt die Zuweisung zudelivered, der Kunde erhält den Schlüssel automatisch (die gleiche E-Mail, die er bei automatischer Erfüllung erhalten würde), und entitlement_grant.delivered wird ausgelöst.
Der Kunde erhält eine E-Mail mit dem Lizenzschlüssel, dem Produkt, dem Aktivierungslimit, dem Ablaufdatum und Ihren Aktivierungsanweisungen:
Sie müssen den Schlüssel nicht selbst per E-Mail senden — die Lieferung erfolgt automatisch, wenn die Zuweisung erfüllt wird.
Schritt 5 — Fehler und Wiederholungen behandeln
Der Endpunkt überprüft die Zuweisung, bevor er etwas liefert. Behandeln Sie diese Antworten:| Status | Bedeutung | Was zu tun ist |
|---|---|---|
200 | Schlüssel geliefert, Zuweisung ist jetzt delivered. | Erledigt. |
400 | Keine Lizenzschlüssel-Zuweisung oder der Schlüssel ist leer/enthält nur Leerzeichen. | Korrigieren Sie die Anfrage; nicht so erneut versuchen. |
404 | Keine Zuweisung mit dieser ID für Ihr Unternehmen. | Überprüfen Sie den grant_id. |
409 | Zuweisung wartet nicht auf Erfüllung (bereits geliefert oder hat bereits einen Schlüssel), oder der Schlüsselwert existiert bereits. | Wenn bereits geliefert, als Erfolg betrachten. Bei doppeltem Schlüssel, anderen Schlüssel bereitstellen. |
422 | Anforderungsinhalt fehlerhaft validiert (z.B. activations_limit < 1). | Feld korrigieren und erneut versuchen. |
5xx) wiederholbar. Jede Zuweisung kann nur einmal erfüllt werden, daher gibt eine Wiederholung nach einem erfolgreich, aber nicht bestätigten Aufruf 409 zurück, anstatt einen zweiten Schlüssel auszustellen oder eine doppelte E-Mail zu senden. Verwenden Sie die Zuweisung id als Ihre Idempotenzschlüssel.
Überprüfen Sie den Ablauf
- Kaufen Sie das Produkt im Testmodus (siehe die Checkout-Anleitungen).
- Bestätigen Sie, dass Ihr Webhook
entitlement_grant.createdmitstatus: "pending"undintegration_type: "license_key"erhalten hat, oder dass die Zuweisung in der Listen-Zuweisungen-Antwort mit diesen Filtern erscheint. - Rufen Sie den Erfüllungsendpunkt mit einem Testschlüssel auf.
- Bestätigen Sie, dass die Antwort
status: "delivered"mit einem ausgefülltenlicense_keyzeigt, der Kunde erhält die Schlüssel-E-Mail, undentitlement_grant.deliveredwird ausgelöst.
Verwandte API-Referenz
Erstellen Sie die Lizenzschlüssel-Berechtigung mitfulfillment_mode: manual.
Filtern Sie nach integration_type und status, um ausstehende Zuweisungen zu finden.
Liefern Sie den Schlüsselwert und wechseln Sie die Zuweisung zu geliefert.
Die entitlement_grant.* Ereignisse, die auf ausstehende und gelieferte Zuweisungen hinweisen.
- Buy the product in test mode (see the checkout guides).
- Confirm your webhook received
entitlement_grant.createdwithstatus: "pending"andintegration_type: "license_key", or that the grant appears in the List Grants response with those filters. - Call the fulfill endpoint with a test key.
- Confirm the response shows
status: "delivered"with a populatedlicense_key, the customer receives the key email, andentitlement_grant.deliveredfires.
Once delivered, the customer can activate and validate the key against the public license endpoints exactly like an auto-generated key.
Related API Reference
Create Entitlement
Create the License Key entitlement with
fulfillment_mode: manual.List Grants
Filter by
integration_type and status to find pending grants.Fulfill License Key Grant
Deliver the key value and transition the grant to delivered.
Entitlement Grant Webhooks
The
entitlement_grant.* events that signal pending and delivered grants.