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.

Berechtigungen verwandeln eine erfolgreiche Zahlung oder ein aktives Abonnement in realen Zugang: einen Lizenzschlüssel im Posteingang Ihres Kunden, eine Discord-Rolle, ein GitHub-Repository, eine Notion-Vorlage, einen Framer-Remix-Link, eine Telegram-Chat-Einladung oder ein herunterladbares Datei-Paket. Dodo Payments stellt diesen Zugang automatisch aus, verfolgt ihn und widerruft ihn, wenn sich der Zahlungslebenszyklus ändert.
Berechtigungs-Dashboard mit einer Liste der Berechtigungen auf der linken Seite und der Zuordnungsaktivität auf der rechten Seite

Was sind Berechtigungen?

Eine Berechtigung ist eine wiederverwendbare Definition von etwas, das Sie einem Kunden liefern: ein Pro-Lizenzschlüssel, eine “Patrons”-Discord-Rolle, Zugang zu Ihrem privaten GitHub-Repository, ein herunterladbares eBook-Paket. Sie fügen Produkte Berechtigungen hinzu, und Dodo Payments kümmert sich um den Rest. Wenn ein Kunde das Produkt kauft, erstellt Dodo Payments eine Zuweisung, die Ausgabe dieser Berechtigung an einen einzelnen Kunden. Zuweisungen durchlaufen eine kleine Anzahl von Status: pending, während die Lieferung im Gange ist, delivered, sobald der Kunde Zugang hat, failed, wenn die Lieferung nicht abgeschlossen werden konnte, und revoked, wenn der Zugang entzogen wird.
Berechtigungen bestimmen die Erfüllung (hat der Kunde Zugang?). Credits bestimmen den Verbrauch (wie viel davon können sie nutzen?). Beide können mit demselben Produkt verbunden werden. Siehe guthabenbasierte Abrechnung für Credits.

Verfügbare Integrationen

Dodo Payments liefert jede Berechtigung durch eine dedizierte Integration. Wählen Sie die Integration, die zu Ihrem Verkauf passt.

License Keys

Erstellen Sie eindeutige Lizenzschlüssel mit Aktivierungsbegrenzungen und Ablauf. Am besten geeignet für Software, Plugins und CLIs.

Digital Files

Liefern Sie herunterladbare Dateien (eBooks, Vorlagen, Medien) mit vorgesignierten Download-URLs und optionalen Anweisungen.

Discord

Gewähren Sie einem Kunden eine Rolle auf Ihrem Discord-Server, wenn er kauft. Widerrufen Sie automatisch bei Kündigung.

GitHub

Fügen Sie Kunden als Mitarbeiter zu einem privaten Repository auf der von Ihnen gewählten Berechtigungsstufe hinzu.

Telegram

Fügen Sie Kunden nach dem Kauf zu einem privaten Telegram-Chat oder -Kanal hinzu.

Framer

Entsperren Sie einen Framer-Vorlagen-Remix-Link für zahlende Kunden.

Notion

Duplizieren Sie eine Notion-Vorlage in den Arbeitsbereich des Kunden beim Kauf.

Wie Zuweisungen funktionieren

Zuweisungen werden durch dieselben Zahlungs- und Abonnementereignisse gesteuert, die Sie bereits als Webhooks erhalten. Sie müssen die Zuweisungs-API für Käufe nicht selbst aufrufen. Dodo Payments erstellt und widerruft Zuweisungen automatisch basierend auf dem zugrunde liegenden Zahlungslebenszyklus.

Zuweisungslebenszyklus

1

Created

Eine Zuweisung wird erstellt, wenn eine Zahlung abgeschlossen wird oder ein Abonnement aktiv wird. Lizenzschlüssel springen direkt zu delivered. Jede andere Integration beginnt in pending. OAuth-basierte Integrationen (Discord, GitHub, Notion) beinhalten ein oauth_url, das der Kunde besuchen muss, um die Zustimmung abzuschließen. Plattformdirekte Integrationen (Telegram, Framer, Digitale Dateien) verweilen nur kurz in pending, während die Lieferung bereitgestellt wird, und wechseln dann zu delivered.
2

Delivered

Sobald die Lieferung abgeschlossen ist (Lizenzschlüssel generiert, Rolle zugewiesen, Repository-Zugang gewährt, Dateilinks aufgelöst, OAuth abgeschlossen), wechselt die Zuweisung zu delivered und delivered_at wird gesetzt.
3

Failed

Wenn der Integrationsaufruf einen nicht erneut versuchbaren Fehler zurückgibt (widerrufener OAuth-Token, verweigerte Berechtigung, Datei existiert nicht mehr), wechselt die Zuweisung zu failed. Die Felder error_code und error_message erfassen den Grund.
4

Revoked

Wenn der Zugang entzogen wird (Abonnement gekündigt, Rückerstattung ausgegeben oder Händler-initiierten Widerruf), wechselt die Zuweisung zu revoked. Das Feld revocation_reason zeichnet den Auslöser auf.

Zuweisungsverhalten nach Ereignis

EreignisVerhalten
payment.succeeded (Einmalzahlung)Erstellen Sie pro angehängter Berechtigung eine Zuweisung.
payment.succeeded (abonnementgebundene Zahlung)Keine Operation. Zuweisungen werden durch das untenstehende Abonnementereignis gesteuert.
subscription.activeErstellen Sie Zuweisungen für alle angehängten Berechtigungen, die noch keine haben. Geben Sie alle zuvor widerrufenen Zuweisungen für dasselbe Abonnement erneut zu.
subscription.renewedKeine Operation. Bestehende Zuweisungen bleiben über Verlängerungen hinweg bestehen.
subscription.on_holdWiderrufen Sie alle gelieferten und ausstehenden Zuweisungen. revocation_reason: subscription_on_hold.
subscription.cancelledWiderrufen Sie alle. revocation_reason: subscription_cancelled.
subscription.expiredWiderrufen Sie alle. revocation_reason: subscription_expired.
subscription.plan_changedWiderrufen Sie alle aktuellen Zuweisungen, und erstellen Sie dann Zuweisungen für die Berechtigungen des neuen Plans. revocation_reason: plan_changed.
refund.succeeded (Einmalzahlung)Widerrufen Sie Zuweisungen für diese Zahlung. revocation_reason: refund.
Manuelle API-WiderrufWiderrufen mit revocation_reason: manual. Manuelle Widerrufe werden bei Abonnementverlängerung nicht automatisch erneut zugewiesen.
Lizenzschlüssel deaktiviertBei Lizenzschlüssel-Zuweisungen widerruft das Deaktivieren des zugrunde liegenden Schlüssels die Zuweisung mit revocation_reason: license_key_disabled. Die Zuweisung wird automatisch wieder aktiviert, wenn der Schlüssel erneut aktiviert wird.
Plattformdrift erkanntWenn die Plattformseite einer Integration aus der Synchronisation gerät (eine Discord-Rolle manuell entfernt, die GitHub-App verliert Repository-Zugang oder ein Abgleichspass erkennt ein fehlendes Ziel), wird die Zuweisung mit revocation_reason: platform_external widerrufen. Wird bei Abonnementverlängerung nicht automatisch erneut zugewiesen, bis das zugrunde liegende Plattformproblem gelöst ist.
Abonnementgetriebene Zuweisungen sind idempotent pro (entitlement, customer, subscription); Verlängerungen und Reaktivierungen erstellen keine doppelten Zuweisungen. Einmalige Zuweisungen sind idempotent pro (entitlement, customer, payment).

Erstellen Sie Ihre erste Berechtigung

1

Open Entitlements

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

Pick an integration

Wählen Sie den Integrationstyp: Lizenzschlüssel, Digitale Dateien, Discord, GitHub, Telegram, Framer oder Notion. Für Plattformintegrationen verbinden Sie zuerst Ihr Konto, falls noch nicht geschehen.
3

Configure delivery

Füllen Sie die integratioonspezifischen Felder aus. GitHub fragt zum Beispiel nach einem Repository und einer Berechtigungsstufe; Discord fragt nach einem Server und einer optionalen Rolle; der Lizenzschlüssel fragt nach Aktivierungsgrenzen und Ablaufdatum.
Neues Entitätsformular mit Integrationsauswahl und Konfigurationsfeldern
4

Save

Speichern Sie die Berechtigung. Sie können sie jetzt jedem Produkt zuordnen.

Berechtigungen an Produkte anhängen

Öffnen Sie ein Produkt, erweitern Sie Erweiterte Einstellungen → Berechtigungen & Credits und wählen Sie die Berechtigungen, die bei Kauf des Produkts geliefert werden sollen. Ein einzelnes Produkt kann mehrere Berechtigungen gleichzeitig bereitstellen. Ein Pro-Plan kann beispielsweise einen Lizenzschlüssel, GitHub-Zugang und eine Discord-Rolle umfassen.
Produktberechtigungs-Auswahlfeld mit Kontrollkästchen für jede verfügbare Berechtigung

Kundenerfahrung

E-Mail und Kundenportal

Kunden erhalten nach dem Kauf eine Liefer-E-Mail, die den Lizenzschlüssel, Download-Links, OAuth-Einladungslinks oder die Plattform-Einladung enthält, je nachdem, welche für die Berechtigungen des Produkts gilt. Die gleichen Details bleiben im Kundenportal unter ihrem Bestellverlauf unbegrenzt verfügbar.

OAuth-basierte Lieferung

Discord-, GitHub- und Notion-Abonnentenzugriff erfordern, dass der Kunde Dodo Payments autorisiert, ihnen Zugang zu gewähren. Diese Zuweisungen verbleiben im Status pending, bis der Kunde den OAuth-Fluss über den Link in seiner E-Mail oder im Kundenportal abschließt. Sobald sie autorisieren, wechselt die Zuweisung zu delivered und der Plattformzugang wird sofort bereitgestellt.

Widerruf

Widerrufene Zuweisungen werden auf der Plattformebene entfernt: die Discord-Rolle wird entfernt, der GitHub-Mitarbeiter wird entfernt, der Lizenzschlüssel wird deaktiviert. Kunden sehen die Änderung im Kundenportal widergespiegelt.
Bei digitalen Dateien entfernt der Widerruf den Zugriff auf die vorgesignierten URLs für die Zukunft, macht jedoch keine bereits heruntergeladenen Kopien ungültig. Planen Sie die Zugangsbeschränkung entsprechend.

Zuweisungen verwalten

Öffnen Sie eine Berechtigung aus dem Dashboard, um deren Zuweisungen zu sehen. Das Zuweisungs-Detailfeld zeigt die Gesamtanzahl der Zuweisungen, Statusfilter, Kundeninformationen, Lieferdaten und eine Widerrufaktion. Sie können Zuweisungen auch programmgesteuert verwalten:
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'],
});

// List grants for an entitlement
const grants = await client.entitlements.grants.list('ent_abc123', {
  status: 'delivered',
});

// Revoke a single grant
await client.entitlements.grants.revoke('grant_xyz789', {
  path_id: 'ent_abc123',
});

API-Verwaltung

Create Entitlement

Erstellen Sie eine neue Berechtigung jeder Integrationstyp.

List Entitlements

Listen Sie Berechtigungen mit Filterung nach Integrationstyp auf.

Get Entitlement

Rufen Sie eine Berechtigung und deren aufgelöste Konfiguration ab.

Update Entitlement

Aktualisieren Sie Name, Beschreibung oder Integrationskonfiguration.

Delete Entitlement

Soft-Delete einer Berechtigung; bestehende Zuweisungen bleiben unbeeinflusst.

Upload File

Laden Sie eine Datei zu einer digitalen Dateien-Berechtigung hoch (bis zu 100 MB).

List Grants

Listen Sie alle Zuweisungen für eine Berechtigung mit Status- und Kundenfiltern auf.

Revoke Grant

Widerrufen Sie eine einzelne Zuweisung manuell.

Webhooks

Dodo Payments löst vier Webhook-Ereignisse für den Zuweisungslebenszyklus aus. Abonnieren Sie diese Ereignisse, um Ihre Anwendung mit dem abzustimmen, auf was jeder Kunde zugreifen kann.
EreignisWird ausgelöst, wenn
entitlement_grant.createdEine neue Zuweisung erstellt wird. Lizenzschlüssel-Zuweisungen kommen delivered an; jede andere Integration kommt pending an und wechselt zu delivered, sobald der Plattformaufruf erfolgreich ist (oder, für OAuth-basierte Integrationen, sobald der Kunde autorisiert).
entitlement_grant.deliveredDie Zuweisung wird als geliefert markiert. Der Kunde hat jetzt Zugang.
entitlement_grant.failedDie Zuweisung konnte nicht geliefert werden. Überprüfen Sie error_code und error_message.
entitlement_grant.revokedDer Zugang wurde entzogen. Überprüfen Sie revocation_reason.

Entitlement Grant Webhook Payloads

Sehen Sie sich das vollständige Payload-Schema, Beispielereignisse und revocation_reason-Referenz an.

Beste Praktiken

  • Verwenden Sie eine Berechtigung pro Lieferkanal. Teilen Sie keine einzelne Discord-Berechtigung über Produkte mit unterschiedlichen Rollenabsichten; erstellen Sie eine pro Rolle für eine saubere Widerrufung.
  • Testen Sie zuerst im Testmodus. Erstellen Sie die Berechtigung, fügen Sie sie einem Testprodukt hinzu, führen Sie einen Checkout aus und beobachten Sie die Zuweisungstransition durch pending → delivered. Bestätigen Sie, dass das Kündigen des Test-Abonnements die Zuweisung widerruft.
  • Hören Sie auf entitlement_grant.delivered, nicht payment.succeeded. Eine Zahlung kann erfolgreich sein, bevor die Erfüllung abgeschlossen ist (insbesondere bei OAuth-Flows). Warten Sie auf das Lieferereignis, bevor Sie abhängige Funktionen in Ihren eigenen Systemen entsperren.
  • Behandeln Sie entitlement_grant.failed als handlungsfähig. Eine fehlgeschlagene Zuweisung bedeutet, dass ein Kunde bezahlt hat, aber keinen Zugang erhalten hat. Präsentieren Sie diese Ihrem Support-Team oder lösen Sie einen erneuten Zuweisungsversuch aus.
  • Ordnen Sie revocation_reason Ihren Erhaltungsflüssen zu. Eine subscription_on_hold-Widerrufung ist wiederherstellbar (der Kunde kann seine Karte aktualisieren). Eine manual-Widerrufung ist absichtlich. Behandeln Sie sie unterschiedlich in Kundenmitteilungen.
Last modified on May 14, 2026