Zum Hauptinhalt springen
Berechtigungen verwandeln eine erfolgreiche Zahlung oder ein aktives Abonnement in echten Zugriff: ein Lizenzschlüssel im Posteingang Ihres Kunden, ein Feature Flag, das Ihre App überprüft, eine Discord-Rolle, ein GitHub-Repository, eine Notion-Vorlage, ein Framer-Remix-Link, eine Telegram-Chat-Einladung oder ein herunterladbares Dateipaket. Dodo Payments stellt diesen Zugriff automatisch aus, verfolgt 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.

Feature Flags

Sperren Sie Funktionen in Ihrer eigenen App nach einem Kauf. Sofort bereitgestellt, per API überprüft, bei Kündigung widerrufen.

Discord

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

GitHub

Fügen Sie Kunden als Mitarbeiter in ein privates Repository auf der von Ihnen gewählten Berechtigungsebene hinzu.

Telegram

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

Framer

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

Notion

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

Wie Berechtigungen funktionieren

Berechtigungen werden von denselben Zahlungs- und Abonnementereignissen angetrieben, die Sie bereits als Webhooks erhalten. Sie müssen die Grant-API nicht selbst für Käufe aufrufen. Dodo Payments erstellt und widerruft Berechtigungen basierend auf dem zugrunde liegenden Zahlungslebenszyklus automatisch.

Lebenszyklus der Berechtigung

1

Created

Eine Berechtigung wird erstellt, wenn eine Zahlung abgeschlossen oder ein Abonnement aktiv wird. Lizenzschlüssel und Feature-Flags springen direkt zu delivered. Alle anderen Integrationen beginnen in pending. Auf OAuth basierende Integrationen (Discord, GitHub, Notion) beinhalten einen oauth_url, den der Kunde besuchen muss, um die Zustimmung abzuschließen. Plattformdirekte Integrationen (Telegram, Framer, Digitale Dateien) verbleiben nur kurz in pending, während die Bereitstellung erfolgt, und wechseln dann zu delivered.
2

Delivered

Sobald die Bereitstellung abgeschlossen ist (Lizenzschlüssel generiert, Rolle zugewiesen, Repository-Zugriff gewährt, Dateilinks gelöst, OAuth abgeschlossen), wechselt die Berechtigung zu delivered und delivered_at wird gesetzt.
3

Failed

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

Revoked

Wenn der Zugriff entzogen wird (Abonnement gekündigt, Rückerstattung ausgegeben oder vom Händler initiierter Widerruf), wechselt die Berechtigung zu revoked. Das Feld revocation_reason protokolliert den Auslöser.

Berechtigungsverhalten nach Ereignis

EreignisVerhalten
payment.succeeded (Einmalzahlung)Erteilen Sie eine Berechtigung pro angehängtem Berechtigungsnachweis.
payment.succeeded (Abonnement-gebundene Zahlung)Keine Aktion. Berechtigungen werden durch das folgende Abonnementereignis ausgelöst.
subscription.activeErteilen Sie Berechtigungen für alle angehängten Berechtigungsnachweise, die noch keine haben. Gewähren Sie alle zuvor für dasselbe Abonnement widerrufenen Berechtigungen erneut.
subscription.renewedKeine Aktion. Bestehende Berechtigungen bestehen über Erneuerungen hinaus.
subscription.on_holdWiderrufen Sie alle ausgelieferten und ausstehenden Berechtigungen. 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 Berechtigungen und erteilen Sie dann Berechtigungen für die neuen Planberechtigungen. revocation_reason: plan_changed.
refund.succeeded (Einmalzahlung)Widerrufen Sie Berechtigungen für diese Zahlung. revocation_reason: refund.
Manueller API-WiderrufWiderrufen Sie mit revocation_reason: manual. Manuelle Widerrufe werden bei Abonnementerneuerung nicht automatisch erneut gewährt.
Lizenzschlüssel deaktiviertFür Lizenzschlüsselberechtigungen widerruft das Deaktivieren des zugrunde liegenden Schlüssels die Berechtigung mit revocation_reason: license_key_disabled. Die Berechtigung wird automatisch wieder aktiviert, wenn der Schlüssel wieder aktiviert wird.
Plattform-Abweichung erkanntWenn die Plattformseite einer Integration aus dem Gleichgewicht gerät (eine Discord-Rolle manuell entfernt wurde, die GitHub-App den Repository-Zugriff verloren hat oder ein Abgleichvorgang ein fehlendes Ziel erkannt hat), wird die Berechtigung mit revocation_reason: platform_external widerrufen. Wird bei Abonnementerneuerung nicht automatisch erneut gewährt, bis das zugrunde liegende Plattformproblem behoben ist.
Abonnementgetriebene Berechtigungen sind idempotent pro (entitlement, customer, subscription); Erneuerungen und Reaktivierungen erzeugen keine doppelten Berechtigungen. Einmalige Berechtigungen sind idempotent pro (entitlement, customer, payment).

Erstellen Sie Ihr erstes Berechtigungsnachweis

1

Open Entitlements

Gehen Sie in Ihrer Dodo Payments-Dashboard zu Berechtigungen und klicken Sie auf +, um ein neues Berechtigungsnachweis zu erstellen.
2

Pick an integration

Wählen Sie den Integrationstyp: Lizenzschlüssel, Digitale Dateien, Feature Flag, Discord, GitHub, Telegram, Framer oder Notion. Für Plattformintegrationen verbinden Sie zuerst Ihr Konto, wenn Sie dies nicht bereits getan haben.
3

Configure delivery

Füllen Sie die integrationsspezifischen Felder aus. Zum Beispiel fragt GitHub nach einem Repository und einer Berechtigungsebene; Discord fragt nach einem Server und einer optionalen Rolle; der Lizenzschlüssel fragt nach Aktivierungslimits und Ablaufdatum.
Neues Berechtigungsformular mit Integrationsauswahl und Konfigurationsfeldern
4

Save

Speichern Sie das Berechtigungsnachweis. Sie können es 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 aus, die geliefert werden sollen, wenn das Produkt gekauft wird. Ein einzelnes Produkt kann mehrere Berechtigungen gleichzeitig bereitstellen. Zum Beispiel kann ein Pro-Plan einen Lizenzschlüssel, GitHub-Zugriff und eine Discord-Rolle enthalten.
Produkt-Berechtigungsauswahlfeld, das Kontrollkästchen für jede verfügbare Berechtigung zeigt

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 Berechtigungen auf dem Produkt angewendet werden. Dieselben Details bleiben im Kundenportal unter ihrer Bestellhistorie unbegrenzt verfügbar.

OAuth-basierte Lieferung

Zugriffe für Discord, GitHub und Notion-Abonnenten erfordern, dass der Kunde Dodo Payments autorisiert, ihm/ihr Zugriff zu gewähren. Diese Berechtigungen verbleiben im Status pending, bis der Kunde den OAuth-Fluss mit dem Link aus seiner E-Mail oder dem Kundenportal abschließt. Sobald sie autorisieren, wechselt die Berechtigung zu delivered und der Plattformzugriff wird sofort bereitgestellt.

Widerruf

Widerrufene Berechtigungen werden auf Plattformebene entfernt: die Discord-Rolle wird entfernt, der GitHub-Mitarbeiter wird entfernt, der Lizenzschlüssel wird deaktiviert. Kunden sehen die Änderung im Kundenportal widergespiegelt.
Für Digitale Dateien entfernt der Widerruf den Zugriff auf die vorgeschriebenen URLs für die Zukunft, invalidiert jedoch nicht die Kopien, die ein Kunde bereits heruntergeladen hat. Planen Sie die Inhaltsbeschränkung entsprechend.

Berechtigungen verwalten

Öffnen Sie ein Berechtigungsnachweis von Ihrem Dashboard aus, um seine Berechtigungen zu sehen. Das Detailfenster der Berechtigung zeigt die Gesamtanzahl der Berechtigungen, Statusfilter, Kundeninformationen, Lieferdaten und eine Widerrufsaktion. Sie können Berechtigungen 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', {
  id: 'ent_abc123',
});
client.entitlements.grants.list(
    "ent_abc123",
    status="Delivered",
)

client.entitlements.grants.revoke(
    "grant_xyz789",
    id="ent_abc123",
)
grants, _ := client.Entitlements.Grants.List(
  ctx, "ent_abc123",
  dodopayments.EntitlementGrantListParams{Status: dodopayments.F("delivered")},
)

_, _ = client.Entitlements.Grants.Revoke(ctx, "grant_xyz789", "ent_abc123")

API-Verwaltung

Create Entitlement

Erstellen Sie ein neues Berechtigungsnachweis eines beliebigen Integrationstyps.

List Entitlements

Listen Sie Berechtigungsnachweise mit Filterung nach Integrationstyp.

Get Entitlement

Rufen Sie ein Berechtigungsnachweis und dessen gelöste Konfiguration ab.

Update Entitlement

Aktualisieren Sie Name, Beschreibung oder Integrationskonfiguration.

Delete Entitlement

Löschen Sie ein Berechtigungsnachweis soft; bestehende Berechtigungen sind nicht betroffen.

Upload File

Laden Sie eine Datei in eine Digitale Dateien-Berechtigung hoch (bis zu 500 MiB).

List Grants

Listen Sie alle Berechtigungen für ein Berechtigungsnachweis mit Status und Kundenfiltern auf.

Revoke Grant

Widerrufen Sie manuell eine einzelne Berechtigung.

Webhooks

Dodo Payments löst vier Webhook-Ereignisse für den Berechtigungslebenszyklus aus. Abonnieren Sie diese Ereignisse, um Ihre Anwendung mit dem in Einklang zu bringen, worauf jeder Kunde Zugriff hat.
EreignisWird ausgelöst, wenn
entitlement_grant.createdEin neuer Berechtigung erstellt wird. Lizenzschlüssel-Berechtigungen 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 Berechtigung wird als geliefert gekennzeichnet. Der Kunde hat jetzt Zugriff.
entitlement_grant.failedDie Berechtigung konnte nicht geliefert werden. Überprüfen Sie error_code und error_message.
entitlement_grant.revokedDer Zugriff 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.

Best Practices

  • Verwenden Sie pro Bereitstellungskanal ein Berechtigungsnachweis. Teilen Sie keine einzelne Discord-Berechtigung über Produkte mit unterschiedlichen Rollenabsichten; erstellen Sie eine pro Rolle für saubereren Widerruf.
  • Testen Sie zuerst im Testmodus. Erstellen Sie die Berechtigung, fügen Sie sie einem Testprodukt hinzu, führen Sie eine Checkout durch und beobachten Sie, wie die Berechtigung durch pending → delivered wechselt. Bestätigen Sie, dass die Kündigung des Testabonnements die Berechtigung widerruft.
  • Hören Sie auf entitlement_grant.delivered, nicht auf payment.succeeded. Eine Zahlung kann erfolgreich sein, bevor die Erfüllung abgeschlossen ist (besonders bei OAuth-Flows). Warten Sie auf das Lieferereignis, bevor Sie abhängige Funktionen in Ihren eigenen Systemen entsperren.
  • Behandeln Sie entitlement_grant.failed als handlungsrelevant. Eine fehlgeschlagene Berechtigung bedeutet, dass ein Kunde bezahlt hat, aber keinen Zugriff erhalten hat. Zeigen Sie diese Ihrem Support-Team oder lösen Sie eine erneute Grant-Aktion aus.
  • Karte revocation_reason zu Ihren Retentionsflüssen ab. Eine subscription_on_hold-Widerruf ist rückholbar (der Kunde könnte seine Karte aktualisieren). Eine manual-Widerruf ist beabsichtigt. Behandeln Sie sie unterschiedlich in der Kundenkommunikation.
Zuletzt geändert am 9. Juli 2026