Stelle Lizenzschlüssel, herunterladbare Dateien, Feature Flags sowie Zugriff auf Discord, GitHub, Telegram, Framer und Notion automatisch bereit, sobald Kunden bezahlen.
Entitlements verwandeln eine erfolgreiche Zahlung oder ein aktives Abonnement in Zugriff: einen Lizenzschlüssel im Posteingang deines Kunden, ein Feature Flag, das deine App prüft, eine Discord-Rolle, ein GitHub-Repository, eine Notion-Vorlage, einen Framer-Remix-Link, eine Einladung zu einem Telegram-Chat oder ein herunterladbares Dateipaket. Dodo Payments stellt diesen Zugriff automatisch bereit, verfolgt ihn und entzieht ihn, wenn sich der Zahlungslebenszyklus ändert.
The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.
Ein Entitlement ist eine wiederverwendbare Definition von etwas, das du einem Kunden bereitstellst, etwa einen Pro-Lizenzschlüssel, eine Discord-Rolle „Patrons“, Zugriff auf dein privates GitHub-Repository oder ein herunterladbares E-Book-Paket. Du verknüpfst Entitlements mit Produkten, und Dodo Payments stellt sie bereit, sobald ein Kunde bezahlt.Wenn ein Kunde das Produkt kauft, erstellt Dodo Payments einen Grant: die Ausstellung dieses Entitlements für einen einzelnen Kunden. Ein Grant hat einen von vier Statuswerten: Pending, während die Bereitstellung läuft, Delivered, sobald der Kunde Zugriff hat, Failed, wenn die Bereitstellung nicht abgeschlossen werden konnte, und Revoked, wenn der Zugriff entzogen wird.
Entitlements steuern die Bereitstellung (hat der Kunde Zugriff?). Credits steuern die Nutzung (wie viel davon kann der Kunde verwenden?). Du kannst beides mit demselben Produkt verknüpfen. Weitere Informationen zu Credits findest du unter Credit-Based Billing.
Jedes Entitlement wird über eine Integration bereitgestellt. Wähle die Integration, die zu deinem Angebot passt.
License Keys
Erstellen Sie eindeutige Lizenzschlüssel mit Aktivierungsbegrenzungen und Ablauf. Am besten geeignet für Software, Plugins und CLIs.
Digital Files
Stelle herunterladbare Dateien wie E-Books, Vorlagen und Medien mit vorab signierten Download-URLs und optionalen Anweisungen bereit.
Feature Flags
Schalte Funktionen deiner eigenen App nach einem Kauf frei. Die Bereitstellung erfolgt bei der Erstellung, die Prüfung über die API und der Entzug bei einer Kündigung.
Discord
Weise einem Kunden beim Kauf eine Rolle in deinem Discord-Server zu. Die Rolle wird bei einer Kündigung automatisch entfernt.
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.
Grants folgen denselben Zahlungs- und Abonnementereignissen, die du als Webhooks erhältst. Dodo Payments erstellt und widerruft Grants für Käufe automatisch auf Grundlage des Zahlungslebenszyklus, sodass du die Grant-API nicht selbst aufrufen musst.
Dodo Payments erstellt einen Grant, wenn eine Zahlung abgeschlossen wird oder ein Abonnement aktiv wird. Feature-Flag-Grants beginnen als Delivered. Lizenzschlüssel-Grants beginnen ebenfalls als Delivered, wenn das Entitlement fulfillment_mode: auto verwendet (der Standardwert). Bei fulfillment_mode: manual beginnt der Grant als Pending ohne Schlüssel, bis du einen über Fulfill License Key Grant bereitstellst. Jede andere Integration beginnt als Pending.OAuth-basierte Integrationen (Discord, GitHub, Notion) stellen eine oauth_url bereit, die der Kunde besucht, um seine Einwilligung zu erteilen. Dodo Payments versucht, diese URL bei der Erstellung des Grants zu generieren. Falls dies fehlschlägt, bleibt das Feld auf null, bis der Kunde den Bestätigungsablauf über seine Zustellungs-E-Mail oder das Customer Portal startet. Plattformdirekte Integrationen (Telegram, Framer, Digital Files) bleiben nur während der Bereitstellung als Pending bestehen und wechseln danach zu Delivered.
2
Delivered
Wenn die Bereitstellung abgeschlossen ist, wechselt der Grant zu Delivered und delivered_at wird gesetzt. Die Bereitstellung ist abgeschlossen, sobald der Lizenzschlüssel generiert, die Rolle zugewiesen, der Repository-Zugriff gewährt, die Dateilinks aufgelöst oder der OAuth-Ablauf beendet wurde.
3
Failed
Wenn der Integrationsaufruf einen nicht wiederholbaren Fehler zurückgibt, etwa ein widerrufenes OAuth-Token, eine verweigerte Berechtigung oder eine nicht mehr vorhandene Datei, wechselt der Grant zu Failed. Die Felder error_code und error_message enthalten den Grund.
4
Revoked
Wenn der Zugriff entzogen wird, beispielsweise weil ein Abonnement gekündigt, eine Rückerstattung ausgestellt oder der Grant von dir widerrufen wurde, wechselt der Grant zu Revoked. Das Feld revocation_reason enthält den Auslöser.
Jedes Zahlungs- und Abonnementereignis ändert Grants wie folgt:
Ereignis
Verhalten
payment.succeeded (einmalige Zahlung)
Stellt für jedes verknüpfte Entitlement einen Grant aus. Ein License-Key-Entitlement stellt pro Schlüssel einen Grant aus.
payment.succeeded (abonnementverknüpfte Zahlung)
Keine Änderung. Die unten aufgeführten Abonnementereignisse steuern diese Grants.
subscription.active
Stellt Grants für alle verknüpften Entitlements aus, die noch keinen Grant haben, und stellt zuvor für dasselbe Abonnement widerrufene Grants erneut aus. Grants, die mit manual, refund oder platform_external widerrufen wurden, werden nicht erneut ausgestellt.
subscription.renewed
Keine Änderung. Bestehende Grants bleiben über Verlängerungen hinweg bestehen.
subscription.past_due
Keine Änderung. Grants bleiben während der gesamten Kulanzfrist bereitgestellt.
subscription.on_hold
Widerruft alle bereitgestellten und ausstehenden Grants mit revocation_reason: subscription_on_hold.
subscription.paused
Widerruft alle bereitgestellten und ausstehenden Grants mit revocation_reason: SubscriptionPaused. Anders als die anderen Abonnementgründe verwendet dieser Wert PascalCase, achte daher auf eine exakte Übereinstimmung.
subscription.unpaused
Stellt zuvor für dasselbe Abonnement widerrufene Grants erneut aus, genauso wie subscription.active.
subscription.cancelled
Widerruft alle Grants mit revocation_reason: subscription_cancelled.
subscription.expired
Widerruft alle Grants mit revocation_reason: subscription_expired.
subscription.plan_changed
Widerruft zunächst alle aktuellen Grants mit revocation_reason: plan_changed und stellt anschließend Grants für die Entitlements des neuen Plans aus.
refund.succeeded (einmalige Zahlung)
Widerruft die Grants für diese Zahlung mit revocation_reason: refund.
Manueller API-Widerruf
Widerruft den Grant mit revocation_reason: manual. Manuelle Widerrufe werden bei einer Abonnementverlängerung nicht automatisch erneut ausgestellt.
Lizenzschlüssel deaktiviert
Bei Lizenzschlüssel-Grants widerruft die Deaktivierung des zugrunde liegenden Schlüssels den Grant mit revocation_reason: license_key_disabled. Die erneute Aktivierung des Schlüssels stellt den Grant automatisch wieder her.
Plattformabweichung erkannt
Wenn die Plattformseite einer Integration nicht mehr synchron ist, etwa weil eine Discord-Rolle manuell entfernt wurde, die GitHub App den Repository-Zugriff verloren hat oder ein Abgleich ein fehlendes Ziel feststellt, widerruft Dodo Payments den Grant mit revocation_reason: platform_external. Er wird bei einer Abonnementverlängerung nicht automatisch erneut ausgestellt, bis das Plattformproblem behoben ist.
Abonnementgesteuerte Grants sind pro (entitlement, customer, subscription) idempotent, sodass Verlängerungen und Reaktivierungen keine doppelten Grants erstellen. Einmalige Grants sind pro (entitlement, customer, payment) idempotent.
Gehe im Dashboard zu Entitlements und klicke auf +, um ein Entitlement zu erstellen.
2
Pick an Integration
Wähle den Integrationstyp: License Key, Digital Files, Feature Flag, Discord, GitHub, Telegram, Figma, Framer oder Notion. Bei einer Plattformintegration verbinde zuerst dein Konto, falls du dies noch nicht getan hast.
3
Configure Delivery
Fülle die Felder für die Integration aus. GitHub fragt beispielsweise nach einem Repository und einer Berechtigungsstufe, Discord nach einem Server und einer optionalen Rolle und License Key nach einem Aktivierungslimit und einer Lizenzlaufzeit.
Creating a GitHub entitlement. Each integration shows the fields it needs.
4
Save
Klicke auf Create Entitlement. Du kannst das Entitlement jetzt jedem Produkt zuordnen.
Öffne ein Produkt, gehe zum Abschnitt Entitlements und wähle die Entitlements aus, die bei einem Kauf des Produkts bereitgestellt werden sollen. Ein Produkt kann mehrere Entitlements gleichzeitig bereitstellen. Ein Pro-Plan kann beispielsweise einen Lizenzschlüssel, GitHub-Zugriff und eine Discord-Rolle enthalten.
Attaching entitlements to a product. Selected entitlements are delivered on every successful purchase or active subscription.
Nach einem Kauf erhält der Kunde eine Zustellungs-E-Mail mit dem Lizenzschlüssel, Download-Links, OAuth-Einladungslinks oder der passenden Plattform-Einladung für die Entitlements des Produkts. Dieselben Informationen bleiben im Customer Portal unter der Bestellhistorie verfügbar, solange der Grant aktiv ist.
Der Abonnentenzugriff auf Discord, GitHub und Notion erfordert, dass der Kunde Dodo Payments autorisiert, diesen Zugriff zu gewähren. Diese Grants bleiben Pending, bis der Kunde den OAuth-Ablauf über den Link in seiner E-Mail oder im Customer Portal abschließt. Nach der Autorisierung wechselt der Grant zu Delivered, und Dodo Payments stellt den Plattformzugriff bereit.
Wenn ein Grant widerrufen wird, entfernt Dodo Payments den Zugriff auf der Plattform: Die Discord-Rolle, der GitHub-Mitbearbeiter oder der Lizenzschlüssel wird entfernt beziehungsweise deaktiviert. Der Kunde sieht die Änderung im Customer Portal.
Bei Digital Files verhindert der Widerruf neue vorab signierte Download-URLs, macht jedoch keine Kopien ungültig, die ein Kunde bereits heruntergeladen hat. Plane deine Zugriffsbeschränkung für Inhalte entsprechend.
Öffne ein beliebiges Entitlement im Dashboard, um seine Grants anzuzeigen. Das Detailfenster zeigt die Gesamtzahl der ausgestellten Grants, einen Statusfilter und eine Zeile pro Grant mit dem Kunden, dem Zugriffsdatum, dem Status und der Aktion Revoke.Um Grants programmgesteuert zu verwalten, liste sie mit dem Filter status auf und widerrufe einen einzelnen Grant über seine ID:
import DodoPayments from 'dodopayments';const client = new DodoPayments({ bearerToken: process.env['DODO_PAYMENTS_API_KEY'],});// List grants for an entitlementconst grants = await client.entitlements.grants.list('ent_abc123', { status: 'Delivered',});// Revoke a single grantawait client.entitlements.grants.revoke('entg_xyz789', { id: 'ent_abc123',});
Dodo Payments sendet vier Webhook-Ereignisse für den Grant-Lebenszyklus. Abonniere sie, damit deine Anwendung mit dem Zugriff jedes Kunden synchron bleibt.
Ereignis
Wird ausgelöst, wenn
entitlement_grant.created
Ein Grant erstellt wird. Automatisch erfüllte Lizenzschlüssel-Grants und Feature-Flag-Grants werden als Delivered empfangen. Manuell erfüllte Lizenzschlüssel-Grants und alle anderen Integrationen werden als Pending empfangen und wechseln zu Delivered, sobald der Plattformaufruf erfolgreich ist oder der Kunde bei OAuth-basierten Integrationen seine Einwilligung erteilt.
entitlement_grant.delivered
Ein bestehender Grant zu Delivered wechselt und der Kunde nun Zugriff hat. Ein Grant, der bei der Erstellung Delivered ist, löst nur created aus.
entitlement_grant.failed
Der Grant nicht bereitgestellt werden konnte. Prüfe error_code und error_message.
entitlement_grant.revoked
Der Zugriff entzogen wurde. Prüfe revocation_reason.
Entitlement Grant Webhook Payloads
Zeige das vollständige Payload-Schema, Beispielereignisse und die Referenz für revocation_reason an.
Verwende ein Entitlement pro Bereitstellungskanal. Teile ein Discord-Entitlement nicht über Produkte mit unterschiedlichen Rollenabsichten hinweg. Erstelle ein Entitlement pro Rolle, damit der Widerruf sauber bleibt.
Teste zuerst im Testmodus. Erstelle das Entitlement, verknüpfe es mit einem Testprodukt, führe einen Checkout durch und beobachte, wie der Grant von Pending zu Delivered wechselt. Kündige anschließend das Testabonnement und bestätige, dass der Grant widerrufen wird.
Höre auf entitlement_grant.delivered, nicht auf payment.succeeded. Eine Zahlung kann erfolgreich sein, bevor die Bereitstellung abgeschlossen ist, insbesondere bei OAuth-Abläufen. Warte, bis der Grant Delivered erreicht, bevor du abhängige Funktionen in deinen eigenen Systemen freischaltest. Ein Grant, der bei der Erstellung bereitgestellt wird, etwa ein automatisch erfüllter Lizenzschlüssel oder ein Feature Flag, wird stattdessen als entitlement_grant.created mit status: "Delivered" empfangen.
Behandle entitlement_grant.failed als handlungsrelevant. Ein fehlgeschlagener Grant bedeutet, dass ein Kunde bezahlt, aber keinen Zugriff erhalten hat. Zeige diese Grants deinem Supportteam an oder löse eine erneute Ausstellung aus.
Ordne revocation_reason deinen Kundenbindungsabläufen zu. Ein subscription_on_hold-Widerruf kann behoben werden, da der Kunde möglicherweise seine Karte aktualisiert. Ein manual-Widerruf ist beabsichtigt. Behandle sie in Kundenmitteilungen unterschiedlich.
Entziehe den Zugriff nicht bei subscription.past_due. Dieses Ereignis startet eine Kulanzfrist, und der Kunde behält den Zugriff bis zum Ende des Zeitraums. Warte auf subscription.on_hold oder subscription.cancelled.
Zuletzt geändert am 26. September 2026
War diese Seite hilfreich?
⌘I
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Dodo Payments Documentation","description":"Documentation for Dodo Payments — the all-in-one payments, billing, and merchant of record platform for SaaS, AI, and digital products.","colors":{"primary":"#779812","light":"#C6FE1E","dark":"#166534"},"logo":{"light":"https://mintcdn.com/dodopayments/nM_mJfYkri-OpC5M/logo/light.svg?fit=max\u0026auto=format\u0026n=nM_mJfYkri-OpC5M\u0026q=85\u0026s=23f7a052f7ecb9d6570b7c95ee359a97","dark":"https://mintcdn.com/dodopayments/nM_mJfYkri-OpC5M/logo/dark.svg?fit=max\u0026auto=format\u0026n=nM_mJfYkri-OpC5M\u0026q=85\u0026s=cd6c20238a54526436f21c43fee51b26"},"favicon":"https://mintcdn.com/dodopayments/doYQc9oUE-WNz0cs/favicon.svg?fit=max\u0026auto=format\u0026n=doYQc9oUE-WNz0cs\u0026q=85\u0026s=271c6cc8ce7d6bf4d7f2b9cca029e004","background":{"color":{"light":"#FFFFFF","dark":"#0D0D0D"}},"navbar":{"links":[{"icon":"link","href":"https://docs.dodopayments.com/llms-full.txt","label":"llms-full.txt"},{"icon":"discord","href":"https://discord.gg/bYqAp4ayYh","label":"Community"},{"icon":"house","href":"https://app.dodopayments.com/","label":"Dashboard"}]},"footer":{"socials":{"x":"https://x.com/dodopayments","linkedin":"https://linkedin.com/company/dodopayments","website":"https://dodopayments.com","discord":"https://discord.gg/bYqAp4ayYh","github":"https://github.com/dodopayments","instagram":"https://www.instagram.com/dodo.payments","facebook":"https://www.facebook.com/profile.php?id=61565515607280"}},"seo":{"metatags":{"og:site_name":"Dodo Payments Documentation","twitter:card":"summary_large_image"},"indexing":"navigable"},"fonts":{"heading":{"family":"ApfelGrotezk","weight":400,"source":"fonts/ApfelGrotezk-Regular.woff2","format":"woff2"},"body":{"family":"Inter","weight":400,"source":"fonts/Inter-Variable.woff2","format":"woff2"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","cursor"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":"introduction"},{"language":"es","href":"es/introduction"},{"language":"ar","href":"ar/introduction"},{"language":"fr","href":"fr/introduction"},{"language":"de","href":"de/introduction"},{"language":"id","href":"id/introduction"},{"language":"ja","href":"ja/introduction"},{"language":"ko","href":"ko/introduction"},{"language":"pt-BR","href":"pt-BR/introduction"},{"language":"vi","href":"vi/introduction"},{"language":"cn","href":"cn/introduction"},{"language":"hi","href":"hi/introduction"},{"language":"it","href":"it/introduction"},{"language":"sv","href":"sv/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"dodopayments","hasAudioNarration":false,"actualSubdomain":"dodopayments","customDomains":["docs.dodopayments.com"],"gitSource":{"type":"github","owner":"dodopayments","repo":"dodo-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af4027c778b6a49d3c24d62","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"en","tag":"API Reference","count":181},{"language":"en","tag":"Docs","count":176},{"language":"ar","tag":"Docs","count":153},{"language":"cn","tag":"Docs","count":153},{"language":"de","tag":"Docs","count":153},{"language":"es","tag":"Docs","count":153},{"language":"fr","tag":"Docs","count":153},{"language":"hi","tag":"Docs","count":153},{"language":"id","tag":"Docs","count":153},{"language":"it","tag":"Docs","count":153},{"language":"ja","tag":"Docs","count":153},{"language":"ko","tag":"Docs","count":153},{"language":"pt-BR","tag":"Docs","count":153},{"language":"sv","tag":"Docs","count":153},{"language":"vi","tag":"Docs","count":153},{"language":"ar","tag":"API Reference","count":151},{"language":"cn","tag":"API Reference","count":151},{"language":"de","tag":"API Reference","count":151},{"language":"es","tag":"API Reference","count":151},{"language":"fr","tag":"API Reference","count":151},{"language":"hi","tag":"API Reference","count":151},{"language":"id","tag":"API Reference","count":151},{"language":"it","tag":"API Reference","count":151},{"language":"ja","tag":"API Reference","count":151},{"language":"ko","tag":"API Reference","count":151},{"language":"pt-BR","tag":"API Reference","count":151},{"language":"sv","tag":"API Reference","count":151},{"language":"vi","tag":"API Reference","count":151},{"language":"en","tag":"Features","count":86},{"language":"ar","tag":"Features","count":81},{"language":"cn","tag":"Features","count":81},{"language":"de","tag":"Features","count":81},{"language":"es","tag":"Features","count":81},{"language":"fr","tag":"Features","count":81},{"language":"hi","tag":"Features","count":81},{"language":"id","tag":"Features","count":81},{"language":"it","tag":"Features","count":81},{"language":"ja","tag":"Features","count":81},{"language":"ko","tag":"Features","count":81},{"language":"pt-BR","tag":"Features","count":81},{"language":"sv","tag":"Features","count":81},{"language":"vi","tag":"Features","count":81},{"language":"en","tag":"Integrate","count":74},{"language":"en","tag":"Changelog","count":66},{"language":"ar","tag":"Changelog","count":65},{"language":"cn","tag":"Changelog","count":65},{"language":"de","tag":"Changelog","count":65},{"language":"es","tag":"Changelog","count":65},{"language":"fr","tag":"Changelog","count":65},{"language":"hi","tag":"Changelog","count":65},{"language":"id","tag":"Changelog","count":65},{"language":"it","tag":"Changelog","count":65},{"language":"ja","tag":"Changelog","count":65},{"language":"ko","tag":"Changelog","count":65},{"language":"pt-BR","tag":"Changelog","count":65},{"language":"sv","tag":"Changelog","count":65},{"language":"vi","tag":"Changelog","count":65},{"language":"ar","tag":"Integrate","count":59},{"language":"cn","tag":"Integrate","count":59},{"language":"de","tag":"Integrate","count":59},{"language":"es","tag":"Integrate","count":59},{"language":"fr","tag":"Integrate","count":59},{"language":"hi","tag":"Integrate","count":59},{"language":"id","tag":"Integrate","count":59},{"language":"it","tag":"Integrate","count":59},{"language":"ja","tag":"Integrate","count":59},{"language":"ko","tag":"Integrate","count":59},{"language":"pt-BR","tag":"Integrate","count":59},{"language":"sv","tag":"Integrate","count":59},{"language":"vi","tag":"Integrate","count":59},{"language":"en","tag":"External Integrations","count":33},{"language":"ar","tag":"External Integrations","count":30},{"language":"cn","tag":"External Integrations","count":30},{"language":"de","tag":"External Integrations","count":30},{"language":"es","tag":"External Integrations","count":30},{"language":"fr","tag":"External Integrations","count":30},{"language":"hi","tag":"External Integrations","count":30},{"language":"id","tag":"External Integrations","count":30},{"language":"it","tag":"External Integrations","count":30},{"language":"ja","tag":"External Integrations","count":30},{"language":"ko","tag":"External Integrations","count":30},{"language":"pt-BR","tag":"External Integrations","count":30},{"language":"sv","tag":"External Integrations","count":30},{"language":"vi","tag":"External Integrations","count":30},{"language":"en","tag":"Webhooks","count":23},{"language":"ar","tag":"Webhooks","count":23},{"language":"cn","tag":"Webhooks","count":23},{"language":"de","tag":"Webhooks","count":23},{"language":"es","tag":"Webhooks","count":23},{"language":"fr","tag":"Webhooks","count":23},{"language":"hi","tag":"Webhooks","count":23},{"language":"id","tag":"Webhooks","count":23},{"language":"it","tag":"Webhooks","count":23},{"language":"ja","tag":"Webhooks","count":23},{"language":"ko","tag":"Webhooks","count":23},{"language":"pt-BR","tag":"Webhooks","count":23},{"language":"sv","tag":"Webhooks","count":23},{"language":"vi","tag":"Webhooks","count":23},{"language":"en","tag":"Guides","count":22},{"language":"ar","tag":"Guides","count":22},{"language":"cn","tag":"Guides","count":22},{"language":"de","tag":"Guides","count":22},{"language":"es","tag":"Guides","count":22},{"language":"fr","tag":"Guides","count":22},{"language":"hi","tag":"Guides","count":22},{"language":"id","tag":"Guides","count":22},{"language":"it","tag":"Guides","count":22},{"language":"ja","tag":"Guides","count":22},{"language":"ko","tag":"Guides","count":22},{"language":"pt-BR","tag":"Guides","count":22},{"language":"sv","tag":"Guides","count":22},{"language":"vi","tag":"Guides","count":22},{"language":"en","tag":"Entitlements","count":20},{"language":"ar","tag":"Entitlements","count":20},{"language":"cn","tag":"Entitlements","count":20},{"language":"de","tag":"Entitlements","count":20},{"language":"es","tag":"Entitlements","count":20},{"language":"fr","tag":"Entitlements","count":20},{"language":"hi","tag":"Entitlements","count":20},{"language":"id","tag":"Entitlements","count":20},{"language":"it","tag":"Entitlements","count":20},{"language":"ja","tag":"Entitlements","count":20},{"language":"ko","tag":"Entitlements","count":20},{"language":"pt-BR","tag":"Entitlements","count":20},{"language":"sv","tag":"Entitlements","count":20},{"language":"vi","tag":"Entitlements","count":20},{"language":"en","tag":"Invoices","count":17},{"language":"ar","tag":"Customers","count":16},{"language":"cn","tag":"Customers","count":16},{"language":"de","tag":"Customers","count":16},{"language":"es","tag":"Customers","count":16},{"language":"fr","tag":"Customers","count":16},{"language":"hi","tag":"Customers","count":16},{"language":"id","tag":"Customers","count":16},{"language":"it","tag":"Customers","count":16},{"language":"ja","tag":"Customers","count":16},{"language":"ko","tag":"Customers","count":16},{"language":"pt-BR","tag":"Customers","count":16},{"language":"sv","tag":"Customers","count":16},{"language":"vi","tag":"Customers","count":16}]},"assistantConfig":{"deflection":{"enabled":false,"email":"support@dodopayments.com","showHelpButton":true}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"#content-area{max-width:60rem}h1,h2,h3,h4,h5,h6{letter-spacing:0.05em!important}.welcome-page .card-group{margin:3rem auto 8rem;max-width:70rem;padding-left:1.25rem;padding-right:1.25rem}.welcome-page .card-group .card{padding:1rem}.welcome-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:20vh;text-align:center;margin-top:3rem;margin-bottom:2.5rem}.welcome-hero h1{font-size:2.5rem;font-weight:700;margin-bottom:1rem;line-height:1.2;color:#fff}.welcome-hero p{font-size:1.25rem;max-width:600px;margin:0 auto}.welcome-hero h1{color:rgb(41 42 37 / 1)}.dark .welcome-hero h1{color:rgb(255 255 255 / 1)}.welcome-hero p{color:rgb(83 85 79 / 1)}.dark .welcome-hero p{color:rgb(162 164 158 / 1)}"}],"page":{"pagePath":"de/features/entitlements/introduction","slug":"/de/features/entitlements/introduction","pageMetadata":{"title":"Einführung","sidebarTitle":"Einführung","description":"Stelle Lizenzschlüssel, herunterladbare Dateien, Feature Flags sowie Zugriff auf Discord, GitHub, Telegram, Framer und Notion automatisch bereit, sobald Kunden bezahlen.","icon":"box-archive","keywords":["Dodo Payments","Berechtigungen","Erfüllung","Lizenzschlüssel","digitale Lieferung","Plattformzugang"],"href":"/de/features/entitlements/introduction"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Stelle Lizenzschlüssel, herunterladbare Dateien, Feature Flags sowie Zugriff auf Discord, GitHub, Telegram, Framer und Notion automatisch bereit, sobald Kunden bezahlen.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,CodeGroup,Frame,Heading,Info,Note,OptimizedImage,Step,Steps,Table,Tip,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Info,{children:_jsx(_components.p,{children:`Entitlements verwandeln eine erfolgreiche Zahlung oder ein aktives Abonnement in Zugriff: einen Lizenzschlüssel im Posteingang deines Kunden, ein Feature Flag, das deine App prüft, eine Discord-Rolle, ein GitHub-Repository, eine Notion-Vorlage, einen Framer-Remix-Link, eine Einladung zu einem Telegram-Chat oder ein herunterladbares Dateipaket. Dodo Payments stellt diesen Zugriff automatisch bereit, verfolgt ihn und entzieht ihn, wenn sich der Zahlungslebenszyklus ändert.`})}),`\n`,_jsx(Frame,{caption:`The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=12a326205f64d1e71485bce46114d296`,alt:`Berechtigungs-Dashboard mit einer Liste der Berechtigungen auf der linken Seite und der Zuordnungsaktivität auf der rechten Seite`,style:{maxHeight:`500px`,width:`auto`},\"data-og-width\":`2000`,width:`2000`,\"data-og-height\":`1195`,height:`1195`,\"data-path\":`images/entitlements/list.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=d12b37e6f3daedbb84e544d08513207e 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=70afcf57fcdd38039179d3054a5eb73f 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=b1cb6ba70f564db87c9bd19f50b21f44 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=463a9ba560357d16a43e39c23ea5a042 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=8b695099d64c9bc75bef9fa1bef28541 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=9e86c8dff013279ce9c94de2b5d48338 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`was-sind-entitlements`,children:`Was sind Entitlements?`}),`\n`,_jsxs(_components.p,{children:[`Ein `,_jsx(_components.strong,{children:`Entitlement`}),` ist eine wiederverwendbare Definition von etwas, das du einem Kunden bereitstellst, etwa einen Pro-Lizenzschlüssel, eine Discord-Rolle „Patrons“, Zugriff auf dein privates GitHub-Repository oder ein herunterladbares E-Book-Paket. Du verknüpfst Entitlements mit Produkten, und Dodo Payments stellt sie bereit, sobald ein Kunde bezahlt.`]}),`\n`,_jsxs(_components.p,{children:[`Wenn ein Kunde das Produkt kauft, erstellt Dodo Payments einen `,_jsx(_components.strong,{children:`Grant`}),`: die Ausstellung dieses Entitlements für einen einzelnen Kunden. Ein Grant hat einen von vier Statuswerten: `,_jsx(_components.code,{children:`Pending`}),`, während die Bereitstellung läuft, `,_jsx(_components.code,{children:`Delivered`}),`, sobald der Kunde Zugriff hat, `,_jsx(_components.code,{children:`Failed`}),`, wenn die Bereitstellung nicht abgeschlossen werden konnte, und `,_jsx(_components.code,{children:`Revoked`}),`, wenn der Zugriff entzogen wird.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Entitlements steuern die `,_jsx(_components.strong,{children:`Bereitstellung`}),` (hat der Kunde Zugriff?). Credits steuern die `,_jsx(_components.strong,{children:`Nutzung`}),` (wie viel davon kann der Kunde verwenden?). Du kannst beides mit demselben Produkt verknüpfen. Weitere Informationen zu Credits findest du unter `,_jsx(_components.a,{href:`/features/credit-based-billing`,children:`Credit-Based Billing`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`verfügbare-integrationen`,children:`Verfügbare Integrationen`}),`\n`,_jsx(_components.p,{children:`Jedes Entitlement wird über eine Integration bereitgestellt. Wähle die Integration, die zu deinem Angebot passt.`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`License Keys`,icon:`key`,href:`/features/license-keys`,children:_jsx(_components.p,{children:`Erstellen Sie eindeutige Lizenzschlüssel mit Aktivierungsbegrenzungen und Ablauf. Am besten geeignet für Software, Plugins und CLIs.`})}),_jsx(Card,{title:`Digital Files`,icon:`download`,href:`/features/digital-product-delivery`,children:_jsx(_components.p,{children:`Stelle herunterladbare Dateien wie E-Books, Vorlagen und Medien mit vorab signierten Download-URLs und optionalen Anweisungen bereit.`})}),_jsx(Card,{title:`Feature Flags`,icon:`flag`,href:`/features/entitlements/feature-flags`,children:_jsx(_components.p,{children:`Schalte Funktionen deiner eigenen App nach einem Kauf frei. Die Bereitstellung erfolgt bei der Erstellung, die Prüfung über die API und der Entzug bei einer Kündigung.`})}),_jsx(Card,{title:`Discord`,icon:`discord`,href:`/features/entitlements/discord`,children:_jsx(_components.p,{children:`Weise einem Kunden beim Kauf eine Rolle in deinem Discord-Server zu. Die Rolle wird bei einer Kündigung automatisch entfernt.`})}),_jsx(Card,{title:`GitHub`,icon:`github`,href:`/features/entitlements/github`,children:_jsx(_components.p,{children:`Fügen Sie Kunden als Mitarbeiter in ein privates Repository auf der von Ihnen gewählten Berechtigungsebene hinzu.`})}),_jsx(Card,{title:`Telegram`,icon:`telegram`,href:`/features/entitlements/telegram`,children:_jsx(_components.p,{children:`Fügen Sie Kunden nach dem Kauf zu einem privaten Telegram-Chat oder -Kanal hinzu.`})}),_jsx(Card,{title:`Framer`,icon:`puzzle-piece`,href:`/features/entitlements/framer`,children:_jsx(_components.p,{children:`Entsperren Sie einen Framer-Template-Remix-Link für zahlende Kunden.`})}),_jsx(Card,{title:`Notion`,icon:`book`,href:`/features/entitlements/notion`,children:_jsx(_components.p,{children:`Duplizieren Sie eine Notion-Vorlage beim Kauf in den Arbeitsbereich des Kunden.`})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`wie-berechtigungen-funktionieren`,children:`Wie Berechtigungen funktionieren`}),`\n`,_jsx(_components.p,{children:`Grants folgen denselben Zahlungs- und Abonnementereignissen, die du als Webhooks erhältst. Dodo Payments erstellt und widerruft Grants für Käufe automatisch auf Grundlage des Zahlungslebenszyklus, sodass du die Grant-API nicht selbst aufrufen musst.`}),`\n`,_jsx(Heading,{level:`3`,id:`lebenszyklus-der-berechtigung`,children:`Lebenszyklus der Berechtigung`}),`\n`,_jsx(_components.p,{children:`Ein Grant durchläuft folgende Statuswerte:`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Created`,children:[_jsxs(_components.p,{children:[`Dodo Payments erstellt einen Grant, wenn eine Zahlung abgeschlossen wird oder ein Abonnement aktiv wird. Feature-Flag-Grants beginnen als `,_jsx(_components.code,{children:`Delivered`}),`. Lizenzschlüssel-Grants beginnen ebenfalls als `,_jsx(_components.code,{children:`Delivered`}),`, wenn das Entitlement `,_jsx(_components.code,{children:`fulfillment_mode: auto`}),` verwendet (der Standardwert). Bei `,_jsx(_components.code,{children:`fulfillment_mode: manual`}),` beginnt der Grant als `,_jsx(_components.code,{children:`Pending`}),` ohne Schlüssel, bis du einen über `,_jsx(_components.a,{href:`/api-reference/entitlements/fulfill-license-key`,children:`Fulfill License Key Grant`}),` bereitstellst. Jede andere Integration beginnt als `,_jsx(_components.code,{children:`Pending`}),`.`]}),_jsxs(_components.p,{children:[`OAuth-basierte Integrationen (Discord, GitHub, Notion) stellen eine `,_jsx(_components.code,{children:`oauth_url`}),` bereit, die der Kunde besucht, um seine Einwilligung zu erteilen. Dodo Payments versucht, diese URL bei der Erstellung des Grants zu generieren. Falls dies fehlschlägt, bleibt das Feld auf `,_jsx(_components.code,{children:`null`}),`, bis der Kunde den Bestätigungsablauf über seine Zustellungs-E-Mail oder das Customer Portal startet. Plattformdirekte Integrationen (Telegram, Framer, Digital Files) bleiben nur während der Bereitstellung als `,_jsx(_components.code,{children:`Pending`}),` bestehen und wechseln danach zu `,_jsx(_components.code,{children:`Delivered`}),`.`]})]}),_jsx(Step,{title:`Delivered`,children:_jsxs(_components.p,{children:[`Wenn die Bereitstellung abgeschlossen ist, wechselt der Grant zu `,_jsx(_components.code,{children:`Delivered`}),` und `,_jsx(_components.code,{children:`delivered_at`}),` wird gesetzt. Die Bereitstellung ist abgeschlossen, sobald der Lizenzschlüssel generiert, die Rolle zugewiesen, der Repository-Zugriff gewährt, die Dateilinks aufgelöst oder der OAuth-Ablauf beendet wurde.`]})}),_jsx(Step,{title:`Failed`,children:_jsxs(_components.p,{children:[`Wenn der Integrationsaufruf einen nicht wiederholbaren Fehler zurückgibt, etwa ein widerrufenes OAuth-Token, eine verweigerte Berechtigung oder eine nicht mehr vorhandene Datei, wechselt der Grant zu `,_jsx(_components.code,{children:`Failed`}),`. Die Felder `,_jsx(_components.code,{children:`error_code`}),` und `,_jsx(_components.code,{children:`error_message`}),` enthalten den Grund.`]})}),_jsx(Step,{title:`Revoked`,children:_jsxs(_components.p,{children:[`Wenn der Zugriff entzogen wird, beispielsweise weil ein Abonnement gekündigt, eine Rückerstattung ausgestellt oder der Grant von dir widerrufen wurde, wechselt der Grant zu `,_jsx(_components.code,{children:`Revoked`}),`. Das Feld `,_jsx(_components.code,{children:`revocation_reason`}),` enthält den Auslöser.`]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`grant-verhalten-nach-ereignis`,children:`Grant-Verhalten nach Ereignis`}),`\n`,_jsx(_components.p,{children:`Jedes Zahlungs- und Abonnementereignis ändert Grants wie folgt:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Ereignis`}),_jsx(_components.th,{children:`Verhalten`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`payment.succeeded`}),` (einmalige Zahlung)`]}),_jsx(_components.td,{children:`Stellt für jedes verknüpfte Entitlement einen Grant aus. Ein License-Key-Entitlement stellt pro Schlüssel einen Grant aus.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`payment.succeeded`}),` (abonnementverknüpfte Zahlung)`]}),_jsx(_components.td,{children:`Keine Änderung. Die unten aufgeführten Abonnementereignisse steuern diese Grants.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.active`})}),_jsxs(_components.td,{children:[`Stellt Grants für alle verknüpften Entitlements aus, die noch keinen Grant haben, und stellt zuvor für dasselbe Abonnement widerrufene Grants erneut aus. Grants, die mit `,_jsx(_components.code,{children:`manual`}),`, `,_jsx(_components.code,{children:`refund`}),` oder `,_jsx(_components.code,{children:`platform_external`}),` widerrufen wurden, werden nicht erneut ausgestellt.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.renewed`})}),_jsx(_components.td,{children:`Keine Änderung. Bestehende Grants bleiben über Verlängerungen hinweg bestehen.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.past_due`})}),_jsxs(_components.td,{children:[`Keine Änderung. Grants bleiben während der gesamten `,_jsx(_components.a,{href:`/features/subscription#grace-period`,children:`Kulanzfrist`}),` bereitgestellt.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.on_hold`})}),_jsxs(_components.td,{children:[`Widerruft alle bereitgestellten und ausstehenden Grants mit `,_jsx(_components.code,{children:`revocation_reason: subscription_on_hold`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.paused`})}),_jsxs(_components.td,{children:[`Widerruft alle bereitgestellten und ausstehenden Grants mit `,_jsx(_components.code,{children:`revocation_reason: SubscriptionPaused`}),`. Anders als die anderen Abonnementgründe verwendet dieser Wert PascalCase, achte daher auf eine exakte Übereinstimmung.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.unpaused`})}),_jsxs(_components.td,{children:[`Stellt zuvor für dasselbe Abonnement widerrufene Grants erneut aus, genauso wie `,_jsx(_components.code,{children:`subscription.active`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.cancelled`})}),_jsxs(_components.td,{children:[`Widerruft alle Grants mit `,_jsx(_components.code,{children:`revocation_reason: subscription_cancelled`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.expired`})}),_jsxs(_components.td,{children:[`Widerruft alle Grants mit `,_jsx(_components.code,{children:`revocation_reason: subscription_expired`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.plan_changed`})}),_jsxs(_components.td,{children:[`Widerruft zunächst alle aktuellen Grants mit `,_jsx(_components.code,{children:`revocation_reason: plan_changed`}),` und stellt anschließend Grants für die Entitlements des neuen Plans aus.`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`refund.succeeded`}),` (einmalige Zahlung)`]}),_jsxs(_components.td,{children:[`Widerruft die Grants für diese Zahlung mit `,_jsx(_components.code,{children:`revocation_reason: refund`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Manueller API-Widerruf`}),_jsxs(_components.td,{children:[`Widerruft den Grant mit `,_jsx(_components.code,{children:`revocation_reason: manual`}),`. Manuelle Widerrufe werden bei einer Abonnementverlängerung nicht automatisch erneut ausgestellt.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Lizenzschlüssel deaktiviert`}),_jsxs(_components.td,{children:[`Bei Lizenzschlüssel-Grants widerruft die Deaktivierung des zugrunde liegenden Schlüssels den Grant mit `,_jsx(_components.code,{children:`revocation_reason: license_key_disabled`}),`. Die erneute Aktivierung des Schlüssels stellt den Grant automatisch wieder her.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Plattformabweichung erkannt`}),_jsxs(_components.td,{children:[`Wenn die Plattformseite einer Integration nicht mehr synchron ist, etwa weil eine Discord-Rolle manuell entfernt wurde, die GitHub App den Repository-Zugriff verloren hat oder ein Abgleich ein fehlendes Ziel feststellt, widerruft Dodo Payments den Grant mit `,_jsx(_components.code,{children:`revocation_reason: platform_external`}),`. Er wird bei einer Abonnementverlängerung nicht automatisch erneut ausgestellt, bis das Plattformproblem behoben ist.`]})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Abonnementgesteuerte Grants sind pro `,_jsx(_components.code,{children:`(entitlement, customer, subscription)`}),` idempotent, sodass Verlängerungen und Reaktivierungen keine doppelten Grants erstellen. Einmalige Grants sind pro `,_jsx(_components.code,{children:`(entitlement, customer, payment)`}),` idempotent.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`erstelle-dein-erstes-entitlement`,children:`Erstelle dein erstes Entitlement`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Entitlements`,children:_jsxs(_components.p,{children:[`Gehe im Dashboard zu `,_jsx(_components.strong,{children:`Entitlements`}),` und klicke auf `,_jsx(_components.strong,{children:`+`}),`, um ein Entitlement zu erstellen.`]})}),_jsx(Step,{title:`Pick an Integration`,children:_jsx(_components.p,{children:`Wähle den Integrationstyp: License Key, Digital Files, Feature Flag, Discord, GitHub, Telegram, Figma, Framer oder Notion. Bei einer Plattformintegration verbinde zuerst dein Konto, falls du dies noch nicht getan hast.`})}),_jsxs(Step,{title:`Configure Delivery`,children:[_jsx(_components.p,{children:`Fülle die Felder für die Integration aus. GitHub fragt beispielsweise nach einem Repository und einer Berechtigungsstufe, Discord nach einem Server und einer optionalen Rolle und License Key nach einem Aktivierungslimit und einer Lizenzlaufzeit.`}),_jsx(Frame,{caption:`Creating a GitHub entitlement. Each integration shows the fields it needs.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=722e925ec5158a5d16c58213132ccb9d`,alt:`New Entitlement form with integration selector and configuration fields`,style:{maxHeight:`500px`,width:`auto`},\"data-og-width\":`2000`,width:`2000`,\"data-og-height\":`1130`,height:`1130`,\"data-path\":`images/entitlements/github/create.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=27f80ec98d393359ca3136524a0ad9d8 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=6cf0a907fa86298b9ad896b1a604fa0b 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=a34a563dad17160d3c13067e3a349f3c 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=fc893072e5f07d021b962b0bdd87933c 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=222cfaf3c0ac63f69d8494d7387d3e22 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=f6b547a74f61c76b6735d3e92c4960d8 2500w`})})]}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Klicke auf `,_jsx(_components.strong,{children:`Create Entitlement`}),`. Du kannst das Entitlement jetzt jedem Produkt zuordnen.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`entitlements-mit-produkten-verknüpfen`,children:`Entitlements mit Produkten verknüpfen`}),`\n`,_jsxs(_components.p,{children:[`Öffne ein Produkt, gehe zum Abschnitt `,_jsx(_components.strong,{children:`Entitlements`}),` und wähle die Entitlements aus, die bei einem Kauf des Produkts bereitgestellt werden sollen. Ein Produkt kann mehrere Entitlements gleichzeitig bereitstellen. Ein Pro-Plan kann beispielsweise einen Lizenzschlüssel, GitHub-Zugriff und eine Discord-Rolle enthalten.`]}),`\n`,_jsx(Frame,{caption:`Attaching entitlements to a product. Selected entitlements are delivered on every successful purchase or active subscription.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=965ad78262791fa8dbb712b4fdf89538`,alt:`Product entitlement selection panel showing checkboxes for each available entitlement`,style:{maxHeight:`500px`,width:`auto`},\"data-og-width\":`2000`,width:`2000`,\"data-og-height\":`1197`,height:`1197`,\"data-path\":`images/entitlements/attach-to-product.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=4b98785a408414890f3247f318c96740 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=64f89fb68e337ec53ff48c75f0c4dc4e 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=2c289e402cf161b27d7c0f90b81ccd6f 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=0632a046cb6d1c5e6529f3d63911f5d8 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=7e9d6f96690fcd3e53eebef77df2d279 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=adbc6c5a189350107f9faf43b2a47224 2500w`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`kundenerlebnis`,children:`Kundenerlebnis`}),`\n`,_jsx(Heading,{level:`3`,id:`e-mail-und-customer-portal`,children:`E-Mail und Customer Portal`}),`\n`,_jsxs(_components.p,{children:[`Nach einem Kauf erhält der Kunde eine Zustellungs-E-Mail mit dem Lizenzschlüssel, Download-Links, OAuth-Einladungslinks oder der passenden Plattform-Einladung für die Entitlements des Produkts. Dieselben Informationen bleiben im `,_jsx(_components.a,{href:`/features/customer-portal`,children:`Customer Portal`}),` unter der Bestellhistorie verfügbar, solange der Grant aktiv ist.`]}),`\n`,_jsx(Heading,{level:`3`,id:`oauth-basierte-bereitstellung`,children:`OAuth-basierte Bereitstellung`}),`\n`,_jsxs(_components.p,{children:[`Der Abonnentenzugriff auf Discord, GitHub und Notion erfordert, dass der Kunde Dodo Payments autorisiert, diesen Zugriff zu gewähren. Diese Grants bleiben `,_jsx(_components.code,{children:`Pending`}),`, bis der Kunde den OAuth-Ablauf über den Link in seiner E-Mail oder im Customer Portal abschließt. Nach der Autorisierung wechselt der Grant zu `,_jsx(_components.code,{children:`Delivered`}),`, und Dodo Payments stellt den Plattformzugriff bereit.`]}),`\n`,_jsx(Heading,{level:`3`,id:`widerruf`,children:`Widerruf`}),`\n`,_jsx(_components.p,{children:`Wenn ein Grant widerrufen wird, entfernt Dodo Payments den Zugriff auf der Plattform: Die Discord-Rolle, der GitHub-Mitbearbeiter oder der Lizenzschlüssel wird entfernt beziehungsweise deaktiviert. Der Kunde sieht die Änderung im Customer Portal.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Bei Digital Files verhindert der Widerruf neue vorab signierte Download-URLs, macht jedoch keine Kopien ungültig, die ein Kunde bereits heruntergeladen hat. Plane deine Zugriffsbeschränkung für Inhalte entsprechend.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`grants-verwalten`,children:`Grants verwalten`}),`\n`,_jsxs(_components.p,{children:[`Öffne ein beliebiges Entitlement im Dashboard, um seine Grants anzuzeigen. Das Detailfenster zeigt die Gesamtzahl der ausgestellten Grants, einen Statusfilter und eine Zeile pro Grant mit dem Kunden, dem Zugriffsdatum, dem Status und der Aktion `,_jsx(_components.strong,{children:`Revoke`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Um Grants programmgesteuert zu verwalten, liste sie mit dem Filter `,_jsx(_components.code,{children:`status`}),` auf und widerrufe einen einzelnen Grant über seine ID:`]}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`TypeScript`,expandable:`true`,numberOfLines:`15`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`15`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` DodoPayments`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'dodopayments'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` DodoPayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` bearerToken:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'DODO_PAYMENTS_API_KEY'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// List grants for an entitlement`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` grants`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`entitlements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`list`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'ent_abc123'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` status:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Delivered'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Revoke a single grant`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`entitlements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`revoke`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'entg_xyz789'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` id:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'ent_abc123'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,expandable:`true`,numberOfLines:`10`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Assumes client = DodoPayments(bearer_token=os.environ[\"DODO_PAYMENTS_API_KEY\"])`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`grants `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` client.entitlements.grants.list(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ent_abc123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` status`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Delivered\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.entitlements.grants.revoke(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"entg_xyz789\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ent_abc123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Go`,expandable:`true`,numberOfLines:`13`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Assumes client := dodopayments.NewClient() and ctx := context.Background().`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Entitlements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`List`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ctx`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ent_abc123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`EntitlementGrantListParams`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Status`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`F`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`EntitlementGrantListParamsStatusDelivered`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` nil`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` panic`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`())`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`fmt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Println`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`len`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Items`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`_`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Entitlements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Revoke`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ctx`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ent_abc123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"entg_xyz789\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`api-verwaltung`,children:`API-Verwaltung`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Create Entitlement`,icon:`plus`,href:`/api-reference/entitlements/create-entitlement`,children:_jsx(_components.p,{children:`Erstelle ein Entitlement eines beliebigen Integrationstyps.`})}),_jsx(Card,{title:`List Entitlements`,icon:`list`,href:`/api-reference/entitlements/list-entitlements`,children:_jsx(_components.p,{children:`Liste Entitlements, gefiltert nach Integrationstyp.`})}),_jsx(Card,{title:`Get Entitlement`,icon:`magnifying-glass`,href:`/api-reference/entitlements/get-entitlement`,children:_jsx(_components.p,{children:`Rufe ein Entitlement und seine aufgelöste Konfiguration ab.`})}),_jsx(Card,{title:`Update Entitlement`,icon:`pen`,href:`/api-reference/entitlements/update-entitlement`,children:_jsx(_components.p,{children:`Aktualisiere den Namen, die Beschreibung oder die Integrationskonfiguration.`})}),_jsx(Card,{title:`Delete Entitlement`,icon:`trash`,href:`/api-reference/entitlements/delete-entitlement`,children:_jsx(_components.p,{children:`Lösche ein Entitlement vorläufig. Bestehende Grants werden nicht widerrufen, aber Dodo Payments verwaltet sie nicht mehr.`})}),_jsx(Card,{title:`Upload File`,icon:`upload`,href:`/api-reference/entitlements/upload-file`,children:_jsx(_components.p,{children:`Lade eine Datei mit bis zu 500 MiB in ein Digital-Files-Entitlement hoch.`})}),_jsx(Card,{title:`List Grants`,icon:`users`,href:`/api-reference/entitlements/list-grants`,children:_jsx(_components.p,{children:`Liste die Grants eines Entitlements, gefiltert nach Status und Kunde.`})}),_jsx(Card,{title:`Revoke Grant`,icon:`ban`,href:`/api-reference/entitlements/revoke-grant`,children:_jsx(_components.p,{children:`Widerrufe einen einzelnen Grant manuell.`})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`webhooks`,children:`Webhooks`}),`\n`,_jsx(_components.p,{children:`Dodo Payments sendet vier Webhook-Ereignisse für den Grant-Lebenszyklus. Abonniere sie, damit deine Anwendung mit dem Zugriff jedes Kunden synchron bleibt.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Ereignis`}),_jsx(_components.th,{children:`Wird ausgelöst, wenn`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`entitlement_grant.created`})}),_jsxs(_components.td,{children:[`Ein Grant erstellt wird. Automatisch erfüllte Lizenzschlüssel-Grants und Feature-Flag-Grants werden als `,_jsx(_components.code,{children:`Delivered`}),` empfangen. Manuell erfüllte Lizenzschlüssel-Grants und alle anderen Integrationen werden als `,_jsx(_components.code,{children:`Pending`}),` empfangen und wechseln zu `,_jsx(_components.code,{children:`Delivered`}),`, sobald der Plattformaufruf erfolgreich ist oder der Kunde bei OAuth-basierten Integrationen seine Einwilligung erteilt.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`entitlement_grant.delivered`})}),_jsxs(_components.td,{children:[`Ein bestehender Grant zu `,_jsx(_components.code,{children:`Delivered`}),` wechselt und der Kunde nun Zugriff hat. Ein Grant, der bei der Erstellung `,_jsx(_components.code,{children:`Delivered`}),` ist, löst nur `,_jsx(_components.code,{children:`created`}),` aus.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`entitlement_grant.failed`})}),_jsxs(_components.td,{children:[`Der Grant nicht bereitgestellt werden konnte. Prüfe `,_jsx(_components.code,{children:`error_code`}),` und `,_jsx(_components.code,{children:`error_message`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`entitlement_grant.revoked`})}),_jsxs(_components.td,{children:[`Der Zugriff entzogen wurde. Prüfe `,_jsx(_components.code,{children:`revocation_reason`}),`.`]})]})]})]}),`\n`,_jsx(Card,{title:`Entitlement Grant Webhook Payloads`,icon:`bell`,href:`/developer-resources/webhooks/intents/entitlement-grant`,children:_jsxs(_components.p,{children:[`Zeige das vollständige Payload-Schema, Beispielereignisse und die Referenz für `,_jsx(_components.code,{children:`revocation_reason`}),` an.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best Practices`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Verwende ein Entitlement pro Bereitstellungskanal.`}),` Teile ein Discord-Entitlement nicht über Produkte mit unterschiedlichen Rollenabsichten hinweg. Erstelle ein Entitlement pro Rolle, damit der Widerruf sauber bleibt.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Teste zuerst im Testmodus.`}),` Erstelle das Entitlement, verknüpfe es mit einem Testprodukt, führe einen Checkout durch und beobachte, wie der Grant von `,_jsx(_components.code,{children:`Pending`}),` zu `,_jsx(_components.code,{children:`Delivered`}),` wechselt. Kündige anschließend das Testabonnement und bestätige, dass der Grant widerrufen wird.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Höre auf `,_jsx(_components.code,{children:`entitlement_grant.delivered`}),`, nicht auf `,_jsx(_components.code,{children:`payment.succeeded`}),`.`]}),` Eine Zahlung kann erfolgreich sein, bevor die Bereitstellung abgeschlossen ist, insbesondere bei OAuth-Abläufen. Warte, bis der Grant `,_jsx(_components.code,{children:`Delivered`}),` erreicht, bevor du abhängige Funktionen in deinen eigenen Systemen freischaltest. Ein Grant, der bei der Erstellung bereitgestellt wird, etwa ein automatisch erfüllter Lizenzschlüssel oder ein Feature Flag, wird stattdessen als `,_jsx(_components.code,{children:`entitlement_grant.created`}),` mit `,_jsx(_components.code,{children:`status: \"Delivered\"`}),` empfangen.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Behandle `,_jsx(_components.code,{children:`entitlement_grant.failed`}),` als handlungsrelevant.`]}),` Ein fehlgeschlagener Grant bedeutet, dass ein Kunde bezahlt, aber keinen Zugriff erhalten hat. Zeige diese Grants deinem Supportteam an oder löse eine erneute Ausstellung aus.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Ordne `,_jsx(_components.code,{children:`revocation_reason`}),` deinen Kundenbindungsabläufen zu.`]}),` Ein `,_jsx(_components.code,{children:`subscription_on_hold`}),`-Widerruf kann behoben werden, da der Kunde möglicherweise seine Karte aktualisiert. Ein `,_jsx(_components.code,{children:`manual`}),`-Widerruf ist beabsichtigt. Behandle sie in Kundenmitteilungen unterschiedlich.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Entziehe den Zugriff nicht bei `,_jsx(_components.code,{children:`subscription.past_due`}),`.`]}),` Dieses Ereignis startet eine `,_jsx(_components.a,{href:`/features/subscription#grace-period`,children:`Kulanzfrist`}),`, und der Kunde behält den Zugriff bis zum Ende des Zeitraums. Warte auf `,_jsx(_components.code,{children:`subscription.on_hold`}),` oder `,_jsx(_components.code,{children:`subscription.cancelled`}),`.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Einführung","sidebarTitle":"Einführung","description":"Stelle Lizenzschlüssel, herunterladbare Dateien, Feature Flags sowie Zugriff auf Discord, GitHub, Telegram, Framer und Notion automatisch bereit, sobald Kunden bezahlen.","icon":"box-archive","keywords":["Dodo Payments","Berechtigungen","Erfüllung","Lizenzschlüssel","digitale Lieferung","Plattformzugang"],"href":"/de/features/entitlements/introduction"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Was sind Entitlements?","slug":"was-sind-entitlements","depth":2,"children":[]},{"title":"Verfügbare Integrationen","slug":"verfügbare-integrationen","depth":2,"children":[]},{"title":"Wie Berechtigungen funktionieren","slug":"wie-berechtigungen-funktionieren","depth":2,"children":[{"title":"Lebenszyklus der Berechtigung","slug":"lebenszyklus-der-berechtigung","depth":3,"children":[]},{"title":"Grant-Verhalten nach Ereignis","slug":"grant-verhalten-nach-ereignis","depth":3,"children":[]}]},{"title":"Erstelle dein erstes Entitlement","slug":"erstelle-dein-erstes-entitlement","depth":2,"children":[]},{"title":"Entitlements mit Produkten verknüpfen","slug":"entitlements-mit-produkten-verknüpfen","depth":2,"children":[]},{"title":"Kundenerlebnis","slug":"kundenerlebnis","depth":2,"children":[{"title":"E-Mail und Customer Portal","slug":"e-mail-und-customer-portal","depth":3,"children":[]},{"title":"OAuth-basierte Bereitstellung","slug":"oauth-basierte-bereitstellung","depth":3,"children":[]},{"title":"Widerruf","slug":"widerruf","depth":3,"children":[]}]},{"title":"Grants verwalten","slug":"grants-verwalten","depth":2,"children":[]},{"title":"API-Verwaltung","slug":"api-verwaltung","depth":2,"children":[]},{"title":"Webhooks","slug":"webhooks","depth":2,"children":[]},{"title":"Best Practices","slug":"best-practices","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/dodopayments/0ee82a08f7b65bcb/seo.js","/_mintlify/custom/dodopayments/6f88c9bbee313616/assistant-loader.js"],"subdomain":"dodopayments","siteName":"Dodo Payments Documentation","title":"Einführung - Dodo Payments Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/features/entitlements/introduction","matchLevel":1},"es":{"href":"/es/features/entitlements/introduction","matchLevel":1},"ar":{"href":"/ar/features/entitlements/introduction","matchLevel":1},"fr":{"href":"/fr/features/entitlements/introduction","matchLevel":1},"de":{"href":"/de/features/entitlements/introduction","matchLevel":0},"id":{"href":"/id/features/entitlements/introduction","matchLevel":1},"ja":{"href":"/ja/features/entitlements/introduction","matchLevel":1},"ko":{"href":"/ko/features/entitlements/introduction","matchLevel":1},"pt-BR":{"href":"/pt-BR/features/entitlements/introduction","matchLevel":1},"vi":{"href":"/vi/features/entitlements/introduction","matchLevel":1},"cn":{"href":"/cn/features/entitlements/introduction","matchLevel":1},"hi":{"href":"/hi/features/entitlements/introduction","matchLevel":1},"it":{"href":"/it/features/entitlements/introduction","matchLevel":1},"sv":{"href":"/sv/features/entitlements/introduction","matchLevel":1}}},"lastModified":"2026-09-26T16:06:34.563Z","gitLastModified":"2026-09-26T16:03:47.000Z","originalFileLocation":"de/features/entitlements/introduction.mdx","locale":"de"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Stelle Lizenzschlüssel, herunterladbare Dateien, Feature Flags sowie Zugriff auf Discord, GitHub, Telegram, Framer und Notion automatisch bereit, sobald Kunden bezahlen.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Dodo Payments Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Einführung - Dodo Payments Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Stelle Lizenzschlüssel, herunterladbare Dateien, Feature Flags sowie Zugriff auf Discord, GitHub, Telegram, Framer und Notion automatisch bereit, sobald Kunden bezahlen.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Dodo Payments Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.dodopayments.com/de/features/entitlements/introduction\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://dodopayments.mintlify.site/_mintlify/api/og/v2?division=Entitlements\u0026amp;title=Einf%C3%BChrung\u0026amp;description=Stelle+Lizenzschl%C3%BCssel%2C+herunterladbare+Dateien%2C+Feature+Flags+sowie+Zugriff+auf+Discord%2C+GitHub%2C+Telegram%2C+Framer+und+Notion+automatisch+bereit%2C+sobald+Kunden+\u0026amp;theme=fcc3a546490e883f7462a320\u0026amp;signature=a1ac45bedd9e6eb8788c5997d9e89f28ef5993f496344bb5c5ccb86f8b127e53\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Einführung - Dodo Payments Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Stelle Lizenzschlüssel, herunterladbare Dateien, Feature Flags sowie Zugriff auf Discord, GitHub, Telegram, Framer und Notion automatisch bereit, sobald Kunden bezahlen.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dodopayments.mintlify.site/_mintlify/api/og/v2?division=Entitlements\u0026amp;title=Einf%C3%BChrung\u0026amp;description=Stelle+Lizenzschl%C3%BCssel%2C+herunterladbare+Dateien%2C+Feature+Flags+sowie+Zugriff+auf+Discord%2C+GitHub%2C+Telegram%2C+Framer+und+Notion+automatisch+bereit%2C+sobald+Kunden+\u0026amp;theme=fcc3a546490e883f7462a320\u0026amp;signature=a1ac45bedd9e6eb8788c5997d9e89f28ef5993f496344bb5c5ccb86f8b127e53\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Dodo Payments Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#779812\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.dodopayments.com/de/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/de/features/entitlements/introduction.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.dodopayments.com/de/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.dodopayments.com/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.dodopayments.com/es/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.dodopayments.com/ar/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.dodopayments.com/fr/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"id\" href=\"https://docs.dodopayments.com/id/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.dodopayments.com/ja/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.dodopayments.com/ko/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.dodopayments.com/pt-BR/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"vi\" href=\"https://docs.dodopayments.com/vi/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.dodopayments.com/cn/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"hi\" href=\"https://docs.dodopayments.com/hi/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://docs.dodopayments.com/it/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"sv\" href=\"https://docs.dodopayments.com/sv/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.dodopayments.com/features/entitlements/introduction\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.dodopayments.com/#organization\",\"name\":\"Dodo Payments Documentation\",\"url\":\"https://docs.dodopayments.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/dodopayments/nM_mJfYkri-OpC5M/logo/light.svg?fit=max\u0026auto=format\u0026n=nM_mJfYkri-OpC5M\u0026q=85\u0026s=23f7a052f7ecb9d6570b7c95ee359a97\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.dodopayments.com#website\",\"name\":\"Dodo Payments Documentation\",\"url\":\"https://docs.dodopayments.com\",\"publisher\":{\"@id\":\"https://docs.dodopayments.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.dodopayments.com/de/features/entitlements/introduction#webpage\",\"url\":\"https://docs.dodopayments.com/de/features/entitlements/introduction\",\"name\":\"Einführung\",\"description\":\"Stelle Lizenzschlüssel, herunterladbare Dateien, Feature Flags sowie Zugriff auf Discord, GitHub, Telegram, Framer und Notion automatisch bereit, sobald Kunden bezahlen.\",\"dateModified\":\"2026-09-26T16:03:47.000Z\",\"isPartOf\":{\"@id\":\"https://docs.dodopayments.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.dodopayments.com/de/features/entitlements/introduction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.dodopayments.com/de/features/entitlements/introduction#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Features\",\"item\":\"https://docs.dodopayments.com/de/features/products\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Einführung\",\"item\":\"https://docs.dodopayments.com/de/features/entitlements/introduction\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.dodopayments.com/de/features/entitlements/introduction#article\",\"headline\":\"Einführung\",\"name\":\"Einführung\",\"description\":\"Stelle Lizenzschlüssel, herunterladbare Dateien, Feature Flags sowie Zugriff auf Discord, GitHub, Telegram, Framer und Notion automatisch bereit, sobald Kunden bezahlen.\",\"url\":\"https://docs.dodopayments.com/de/features/entitlements/introduction\",\"mainEntityOfPage\":{\"@id\":\"https://docs.dodopayments.com/de/features/entitlements/introduction#webpage\"},\"dateModified\":\"2026-09-26T16:03:47.000Z\",\"keywords\":\"Dodo Payments, Berechtigungen, Erfüllung, Lizenzschlüssel, digitale Lieferung, Plattformzugang\",\"publisher\":{\"@id\":\"https://docs.dodopayments.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.dodopayments.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Dodo Payments Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Dodo Payments Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/de/features/entitlements/introduction.md","siteName":"Dodo Payments Documentation","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/features/entitlements/introduction"}]},{"language":"es","pages":[{"title":"es","href":"/es/features/entitlements/introduction"}]},{"language":"ar","pages":[{"title":"ar","href":"/ar/features/entitlements/introduction"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/features/entitlements/introduction"}]},{"language":"de","tabs":[{"tab":"Docs","icon":"book","groups":[{"group":"Getting Started","pages":[{"title":"Welcome to Dodo Payments","sidebarTitle":"Introduction","icon":"rocket","href":"/de/introduction"},{"title":"Mit KI-Coding-Agenten entwickeln","sidebarTitle":"KI-Coding-Agenten","icon":"robot","href":"/de/developer-resources/build-with-ai-coding-agents"},{"title":"Migration zu Dodo Payments","icon":"arrow-right-arrow-left","href":"/de/migrate-to-dodo"},{"title":"Account Verification","icon":"id-card","href":"/de/miscellaneous/verification-process"}]},{"group":"Features","pages":[{"sidebarTitle":"Produkte","title":"Produkte","icon":"box","href":"/de/features/products"},{"sidebarTitle":"Product Collections","title":"Product Collections","icon":"layer-group","href":"/de/features/product-collections"},{"sidebarTitle":"Einmalzahlungen","title":"Einmalzahlungen","icon":"credit-card","href":"/de/features/one-time-payment-products"},{"group":"Subscriptions","icon":"infinity","pages":[{"sidebarTitle":"Subscriptions","title":"Subscriptions","icon":"repeat","href":"/de/features/subscription"},{"sidebarTitle":"Add-Ons","title":"Add-Ons für Abonnements","icon":"puzzle","href":"/de/features/addons"},{"title":"On-Demand Subscriptions","icon":"bolt","href":"/de/developer-resources/ondemand-subscriptions"}]},{"group":"Usage Based Billing","icon":"arrow-trend-up","pages":[{"sidebarTitle":"Einführung","title":"Nutzungsbasierte Abrechnung","icon":"box","href":"/de/features/usage-based-billing/introduction"},{"sidebarTitle":"Zähler","title":"Zähler","icon":"sliders","href":"/de/features/usage-based-billing/meters"},{"sidebarTitle":"Event Ingestion","title":"Event Ingestion","icon":"bolt","href":"/de/features/usage-based-billing/event-ingestion"},{"group":"Ingestion Blueprints","icon":"copy","pages":[{"sidebarTitle":"Einführung","title":"Ingestion-Blueprints","icon":"box","href":"/de/features/usage-based-billing/ingestion-blueprints"},{"title":"LLM Blueprint","icon":"brain-circuit","href":"/de/developer-resources/ingestion-blueprints/llm"},{"title":"API Gateway Blueprint","icon":"cloud","href":"/de/developer-resources/ingestion-blueprints/api-gateway"},{"title":"Object Storage Blueprint","icon":"box-archive","href":"/de/developer-resources/ingestion-blueprints/object-storage"},{"title":"Stream Blueprint","icon":"tower-broadcast","href":"/de/developer-resources/ingestion-blueprints/stream"},{"title":"Zeitbereich-Blueprint","icon":"clock","href":"/de/developer-resources/ingestion-blueprints/time-range"}]}]},{"sidebarTitle":"Credit-Based Billing","title":"Credit-Based Billing","icon":"coins","tag":"NEW","href":"/de/features/credit-based-billing"},{"sidebarTitle":"Seat-Based Billing","title":"Seat-Based Billing","icon":"users","href":"/de/features/seat-based-billing"},{"sidebarTitle":"Hybride Abrechnung","title":"Modelle für hybride Abrechnung","icon":"layer-group","href":"/de/features/hybrid-billing"},{"title":"Upsells \u0026 Downsells","icon":"arrow-up-right-dots","href":"/de/features/upsells-and-downsells"},{"group":"Customers","icon":"user-group","pages":[{"title":"Kundenmanagement","icon":"user-group","href":"/de/features/customers"},{"sidebarTitle":"Kundenportal","title":"Kundenportal","icon":"id-card","href":"/de/features/customer-portal"},{"title":"Kunden-Wallets","icon":"wallet","tag":"NEW","href":"/de/features/customer-wallet"},{"sidebarTitle":"Gesendete E-Mails","title":"E-Mail-Protokolle der Kunden","icon":"envelope","tag":"NEW","href":"/de/features/email-logs"},{"sidebarTitle":"Customer Blocklist","title":"Customer Blocklist","icon":"user-slash","tag":"NEW","href":"/de/features/customer-blocklist"}]},{"sidebarTitle":"Rabatte","title":"Rabatte","icon":"percent","href":"/de/features/discount-codes"},{"group":"Recovery","icon":"rotate","tag":"NEW","pages":[{"sidebarTitle":"Übersicht","title":"Umsatzwiederherstellung","icon":"rotate","href":"/de/features/recovery/overview"},{"sidebarTitle":"Abgebrochene Warenkorb-Wiederherstellung","title":"Abgebrochene Warenkorb-Wiederherstellung","icon":"cart-shopping","href":"/de/features/recovery/abandoned-cart-recovery"},{"sidebarTitle":"Abo-Mahnverfahren","title":"Abo-Mahnverfahren","icon":"repeat","href":"/de/features/recovery/subscription-dunning"},{"sidebarTitle":"Erneute Zahlungsversuche bei Abonnements","title":"Erneute Zahlungsversuche bei Abonnements","icon":"arrow-rotate-right","href":"/de/features/recovery/payment-retries"},{"sidebarTitle":"Manueller Wiederholungsversuch","title":"Manueller Wiederholungsversuch für Zahlungen","icon":"hand-pointer","tag":"NEW","href":"/de/features/recovery/manual-retry"}]},{"group":"Transactions","icon":"credit-card","pages":[{"title":"Zahlungen","icon":"money-bill-transfer","href":"/de/features/transactions/payments"},{"title":"Rückerstattungen","icon":"rotate-left","href":"/de/features/transactions/refunds"},{"title":"Disputes","description":"Disputes auf der Seite „Transaktionen“ anzeigen und beantworten und mit Visa RDR, Ethoca Alerts und Deflections Rückbuchungen verhindern, bevor sie eingereicht werden.","icon":"circle-exclamation","href":"/de/features/transactions/disputes"}]},{"group":"Entitlements","icon":"gift","tag":"NEW","pages":[{"title":"Einführung","sidebarTitle":"Einführung","icon":"box-archive","href":"/de/features/entitlements/introduction"},{"title":"Lizenzschlüssel","description":"Stellen Sie Lizenzschlüssel mit Aktivierungslimits und Ablaufdatum über das License Key-Entitlement aus und aktivieren, validieren und deaktivieren Sie sie anschließend in Ihrer Software.","icon":"key","href":"/de/features/license-keys"},{"title":"Digital Product Delivery","sidebarTitle":"Digitale Produkte","icon":"download","href":"/de/features/digital-product-delivery"},{"title":"Feature-Flag-Berechtigung","sidebarTitle":"Feature Flags","icon":"flag","tag":"NEW","href":"/de/features/entitlements/feature-flags"},{"title":"Discord-Berechtigung","sidebarTitle":"Discord","icon":"discord","href":"/de/features/entitlements/discord"},{"title":"GitHub Berechtigung","sidebarTitle":"GitHub","icon":"github","href":"/de/features/entitlements/github"},{"title":"Telegram-Berechtigung","sidebarTitle":"Telegram","icon":"telegram","href":"/de/features/entitlements/telegram"},{"title":"Framer-Entitlement","sidebarTitle":"Framer","icon":"puzzle-piece","href":"/de/features/entitlements/framer"},{"title":"Notion-Berechtigung","sidebarTitle":"Notion","icon":"book","href":"/de/features/entitlements/notion"}]},{"group":"Payouts and Balances","icon":"wallet","pages":[{"title":"Auszahlungsprozess","icon":"money-bill","href":"/de/features/payouts/payout-structure"},{"title":"Salden","icon":"file-invoice-dollar","href":"/de/features/account-summary-payout-wallet"}]},{"group":"Account Management","icon":"user","pages":[{"sidebarTitle":"Ein Unternehmen archivieren","title":"Ein Unternehmen archivieren","icon":"box-archive","tag":"NEW","href":"/de/features/archive-business"},{"title":"Multi-Brand Setup","icon":"building-columns","href":"/de/features/multi-brands"},{"title":"Rechnungsmanagement","icon":"file-invoice-dollar","href":"/de/features/invoice-generation"},{"title":"Teammitglieder","icon":"user-gear","href":"/de/features/team"},{"title":"Kommunikationspräferenzen","sidebarTitle":"Kommunikationspräferenzen","icon":"bell","tag":"NEW","href":"/de/features/communication-preferences"},{"title":"Mein Konto","icon":"user-gear","href":"/de/miscellaneous/accounts"}]},{"group":"Pricing","icon":"dollar-sign","pages":[{"sidebarTitle":"Preisgestaltung inklusive Steuern","title":"Preisgestaltung inklusive Steuern","icon":"file-invoice","href":"/de/features/tax-inclusive-pricing"},{"sidebarTitle":"Zahle, was du willst","title":"Zahle, was du willst Preisgestaltung","icon":"dollar-sign","href":"/de/features/pay-what-you-want"},{"title":"B2B-Zahlungen","icon":"money-bills","href":"/de/features/b2b-payments"},{"title":"Lokalisierte Preisgestaltung","sidebarTitle":"Lokalisierte Preisgestaltung","icon":"earth-americas","href":"/de/features/localized-pricing"},{"sidebarTitle":"Kaufkraftparität","title":"Kaufkraftparität","tag":"NEW","icon":"money-bill-trend-up","href":"/de/features/purchasing-power-parity"},{"sidebarTitle":"Charm Pricing","title":"Charm Pricing","tag":"NEW","icon":"tag","href":"/de/features/charm-pricing"}]},{"sidebarTitle":"Checkout","title":"Checkout-Funktionen","icon":"cart-shopping","href":"/de/features/checkout"},{"sidebarTitle":"Design","title":"Design- \u0026 Themenanpassung","icon":"palette","tag":"NEW","href":"/de/features/design"},{"group":"Payment Methods","icon":"money-bill-wave","pages":[{"title":"Payment Methods","sidebarTitle":"Overview","icon":"layer-group","href":"/de/features/payment-methods"},{"title":"Kredit- \u0026 Debitkarten","sidebarTitle":"Karten","icon":"credit-card","href":"/de/features/payment-methods/cards"},{"title":"Digitale Wallets","sidebarTitle":"Digitale Wallets","icon":"wallet","href":"/de/features/payment-methods/digital-wallets"},{"title":"Jetzt kaufen, später bezahlen (BNPL)","sidebarTitle":"BNPL","icon":"calendar-days","href":"/de/features/payment-methods/bnpl"},{"title":"ACH Direct Debit","sidebarTitle":"ACH Direct Debit","icon":"building-columns","href":"/de/features/payment-methods/ach"},{"title":"Indische Zahlungsmethoden","sidebarTitle":"Indien","icon":"indian-rupee-sign","href":"/de/features/payment-methods/india"},{"title":"Europäische Zahlungsmethoden","sidebarTitle":"Europa","icon":"euro-sign","href":"/de/features/payment-methods/europe"},{"title":"Zahlungsmethoden in Südkorea","sidebarTitle":"Südkorea","icon":"won-sign","href":"/de/features/payment-methods/south-korea"},{"title":"Zahlungsmethoden im asiatisch-pazifischen Raum","sidebarTitle":"Asiatisch-pazifischer Raum","icon":"earth-asia","href":"/de/features/payment-methods/asia-pacific"},{"title":"Pix","sidebarTitle":"Pix","icon":"brazilian-real-sign","href":"/de/features/payment-methods/pix"},{"title":"Stablecoins","sidebarTitle":"Stablecoins","icon":"dollar-sign","href":"/de/features/payment-methods/stablecoins"},{"title":"WeChat Pay","sidebarTitle":"WeChat Pay","icon":"comment-dollar","href":"/de/features/payment-methods/wechat"}]},{"title":"Analysen von Drittanbietern","sidebarTitle":"Analysen von Drittanbietern","icon":"chart-line","tag":"NEW","href":"/de/features/analytics"},{"sidebarTitle":"Adaptive Currency","title":"Adaptive Currency","icon":"money-bill-transfer","href":"/de/features/adaptive-currency"},{"group":"BYOP","icon":"shuffle","tag":"BETA","pages":[{"title":"Bring Your Own Processor (BYOP)","sidebarTitle":"Overview","tag":"BETA","icon":"boxes-stacked","href":"/de/features/byop"},{"title":"Stripe - Connect \u0026 Raw Card API Access","sidebarTitle":"Stripe","icon":"stripe","href":"/de/features/byop/stripe"},{"title":"Adyen - Connect \u0026 Raw Card API Access","sidebarTitle":"Adyen","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/adyen.svg","href":"/de/features/byop/adyen"}]},{"title":"Storefront","icon":"store","href":"/de/features/storefront"},{"title":"Partnerprogramme","icon":"users-line","href":"/de/features/affiliates"},{"title":"Moderation API","icon":"shield-check","tag":"NEW","href":"/de/features/moderation"},{"title":"Verkauf digitaler Waren auf iOS","icon":"mobile","href":"/de/features/appstore-digital-goods"},{"title":"Dashboard Analytics","sidebarTitle":"Dashboard Analytics","icon":"chart-line","href":"/de/features/analytics-and-reporting"},{"title":"Berichte","sidebarTitle":"Berichte","icon":"file-invoice","href":"/de/features/reports"}]},{"group":"Integrate","pages":[{"group":"SDKs","icon":"box-open","pages":[{"sidebarTitle":"Overview","title":"Offizielle SDKs","icon":"box","href":"/de/developer-resources/dodo-payments-sdks"},{"title":"TypeScript","icon":"js","href":"/de/developer-resources/sdks/typescript"},{"title":"Python","icon":"python","href":"/de/developer-resources/sdks/python"},{"title":"Go","icon":"golang","href":"/de/developer-resources/sdks/go"},{"title":"Ruby","icon":"gem","href":"/de/developer-resources/sdks/ruby"},{"title":"Java","icon":"java","href":"/de/developer-resources/sdks/java"},{"title":"Kotlin","icon":"k","href":"/de/developer-resources/sdks/kotlin"},{"title":"PHP","icon":"php","href":"/de/developer-resources/sdks/php"},{"title":"C#","icon":"c","href":"/de/developer-resources/sdks/csharp"},{"title":"Rust","icon":"rust","href":"/de/developer-resources/sdks/rust"}]},{"group":"Mobile Checkout SDKs","icon":"mobile","pages":[{"title":"Mobile Integration Guide","sidebarTitle":"Integration Guide","icon":"mobile","href":"/de/developer-resources/mobile-integration"},{"title":"Android","sidebarTitle":"Android","tag":"NEW","icon":"android","href":"/de/developer-resources/sdks/android"},{"title":"iOS","sidebarTitle":"iOS","tag":"NEW","icon":"apple","href":"/de/developer-resources/sdks/ios"},{"title":"React Native","sidebarTitle":"React Native","tag":"NEW","icon":"react","href":"/de/developer-resources/sdks/react-native"},{"title":"Flutter","sidebarTitle":"Flutter","tag":"NEW","icon":"layer-group","href":"/de/developer-resources/sdks/flutter"}]},{"group":"Framework Adaptors","icon":"frame","pages":[{"sidebarTitle":"Übersicht","title":"Übersicht der Framework-Adapter","icon":"box","href":"/de/developer-resources/framework-adaptors"},{"title":"Next.js-Adaptor","icon":"code-merge","href":"/de/developer-resources/nextjs-adaptor"},{"title":"Better Auth Adaptor","icon":"code-merge","href":"/de/developer-resources/better-auth-adaptor"},{"title":"Convex-Komponente","icon":"code-merge","href":"/de/developer-resources/convex-component"},{"title":"TanStack Adaptor","icon":"code-merge","href":"/de/developer-resources/tanstack-adaptor"},{"title":"Nuxt-Adapter","icon":"code-merge","href":"/de/developer-resources/nuxt-adaptor"},{"title":"Express Adaptor","icon":"code-merge","href":"/de/developer-resources/express-adaptor"},{"title":"Astro-Adapter","icon":"code-merge","href":"/de/developer-resources/astro-adaptor"},{"title":"SvelteKit Adaptor","icon":"code-merge","href":"/de/developer-resources/sveltekit-adaptor"},{"title":"Hono Adaptor","icon":"code-merge","href":"/de/developer-resources/hono-adaptor"},{"title":"Remix Adaptor","icon":"code-merge","href":"/de/developer-resources/remix-adaptor"},{"title":"Fastify Adaptor","icon":"code-merge","href":"/de/developer-resources/fastify-adaptor"},{"title":"Bun-Adapter","icon":"code-merge","href":"/de/developer-resources/bun-adaptor"}]},{"group":"Webhooks","icon":"webhook","pages":[{"sidebarTitle":"Overview","title":"Webhooks","icon":"webhook","href":"/de/developer-resources/webhooks"},{"title":"Leitfaden zu Webhook-Ereignissen","icon":"bell","href":"/de/developer-resources/webhooks/intents/webhook-events-guide"},{"group":"Webhook Payloads","icon":"code","pages":[{"title":"Zahlung","icon":"credit-card","href":"/de/developer-resources/webhooks/intents/payment"},{"sidebarTitle":"Abonnement","title":"Subscription-Webhooks","icon":"repeat","href":"/de/developer-resources/webhooks/intents/subscription"},{"title":"Rückerstattung","icon":"rotate-left","href":"/de/developer-resources/webhooks/intents/refund"},{"sidebarTitle":"Streitfall","title":"Streitfall-Webhooks","icon":"circle-exclamation","href":"/de/developer-resources/webhooks/intents/dispute"},{"title":"Lizenzschlüssel","icon":"key","href":"/de/developer-resources/webhooks/intents/license-key"},{"title":"Entitlement-Gewährung","icon":"gift","href":"/de/developer-resources/webhooks/intents/entitlement-grant"},{"sidebarTitle":"Kreditbasierte Abrechnung","title":"Webhooks für kreditbasierte Abrechnung","icon":"coins","href":"/de/developer-resources/webhooks/intents/credit"},{"title":"Wiederherstellung","icon":"rotate","href":"/de/developer-resources/webhooks/intents/recovery"},{"sidebarTitle":"Auszahlung","title":"Webhooks für Auszahlungen","icon":"money-bill-transfer","href":"/de/developer-resources/webhooks/intents/payout"}]},{"group":"Deploy to Cloud","icon":"rocket","pages":[{"title":"Vercel Functions","icon":"triangle","href":"/de/developer-resources/webhooks/examples/vercel-example"},{"title":"Cloudflare Workers","icon":"cloud","href":"/de/developer-resources/webhooks/examples/cloudflare-example"},{"title":"Supabase Edge Functions","icon":"bolt","href":"/de/developer-resources/webhooks/examples/supabase-example"},{"title":"Netlify Functions","icon":"diamond","href":"/de/developer-resources/webhooks/examples/netlify-example"}]}]},{"group":"Testing \u0026 Demo Tools","icon":"flask","pages":[{"title":"Testmodus vs. Live-Modus","icon":"toggle-on","href":"/de/miscellaneous/test-mode-vs-live-mode"},{"title":"Testing Process","icon":"flask","href":"/de/miscellaneous/testing-process"},{"title":"Atlas Demo Produkt","icon":"palette","href":"/de/features/atlas-demo-website"}]},{"group":"Boilerplates","icon":"box-open","pages":[{"sidebarTitle":"Expo","title":"Expo Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/expo.svg","tag":"NEW","href":"/de/developer-resources/expo-boilerplate"},{"sidebarTitle":"Supabase","title":"Supabase-Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/supabase.svg","href":"/de/developer-resources/supabase-boilerplate"},{"sidebarTitle":"Figma Plugin","title":"Figma-Plugin","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/figma.svg","href":"/de/integrations/figma-plugin"},{"sidebarTitle":"Next.js","title":"Next.js Minimal Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/nextjs.svg","href":"/de/developer-resources/nextjs-boilerplate"},{"sidebarTitle":"Astro","title":"Astro Minimal Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/astro.svg","href":"/de/developer-resources/astro-boilerplate"},{"sidebarTitle":"FastAPI","title":"FastAPI-Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/fastapi.svg","tag":"NEW","href":"/de/developer-resources/fastapi-boilerplate"},{"sidebarTitle":"Go","title":"Go Boilerplate","icon":"golang","tag":"NEW","href":"/de/developer-resources/go-boilerplate"}]},{"title":"Dodo CLI","icon":"terminal","tag":"NEW","href":"/de/developer-resources/sdks/cli"},{"title":"Overlay Checkout","icon":"cart-shopping","href":"/de/developer-resources/overlay-checkout"},{"title":"Inline Checkout","icon":"credit-card","href":"/de/developer-resources/inline-checkout"},{"title":"Billing SDK","icon":"boxes-stacked","href":"/de/developer-resources/billingsdk"},{"title":"Dodo Payments MCP Server","icon":"server","href":"/de/developer-resources/mcp-server"},{"title":"Agent Skills","icon":"wand-magic-sparkles","href":"/de/developer-resources/agent-skills"},{"sidebarTitle":"Datenbank-Synchronisierung","title":"Mit Ihrer Datenbank synchronisieren","icon":"database","href":"/de/developer-resources/dodo-sync"},{"sidebarTitle":"Abonnement-Migration","title":"Abonnement-Migration zu Dodo Payments","icon":"file-import","href":"/de/miscellaneous/subscription-migration"}]},{"group":"Merchant of Record","pages":[{"sidebarTitle":"Was ist MoR?","title":"Einführung","icon":"building-columns","href":"/de/features/mor-introduction"},{"title":"MoR vs PG","icon":"scale-balanced","href":"/de/features/mor-vs-pg"},{"title":"Länder, die für die Händlerakzeptanz infrage kommen","icon":"globe","href":"/de/miscellaneous/accepted-countries-and-territories"},{"title":"Überwachungs- und Monitoring-Richtlinie","icon":"magnifying-glass","href":"/de/miscellaneous/review-monitoring-policy"},{"sidebarTitle":"Bypass of App Store Fees","title":"App-Store- und Play-Store-Gebühren mit Dodo Payments umgehen","icon":"shield-check","href":"/de/features/bypassing-app-store-fees"}]},{"group":"Miscellaneous","pages":[{"group":"Support Channels","icon":"headset","pages":[{"title":"Hilfe und Unterstützung","icon":"headset","href":"/de/miscellaneous/help-support"},{"title":"Funktionsanfrage und Roadmap","icon":"lightbulb","href":"/de/features/feature-request"}]},{"title":"Mobile- \u0026 Desktop-Apps","icon":"mobile","href":"/de/features/mobile-app"},{"title":"Sicherheitsberichterstattungspolitik","icon":"shield","href":"/de/miscellaneous/security-policy"}]}]},{"tab":"Guides","icon":"compass","pages":[{"title":"Guides","href":"/de/developer-resources/integration-guide"}]},{"tab":"API Reference","icon":"rectangle-code","pages":[{"title":"API Reference","href":"/de/api-reference/introduction"}]},{"tab":"External Integrations","icon":"plug","pages":[{"title":"External Integrations","href":"/de/integrations/introduction"}]},{"tab":"Changelog","icon":"calendar-days","pages":[{"title":"Changelog","href":"/de/changelog/introduction"}]},{"tab":"Community Projects","icon":"users","pages":[{"title":"Community Projects","href":"/de/community/overview"}]}]},{"language":"id","pages":[{"title":"id","href":"/id/features/entitlements/introduction"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/features/entitlements/introduction"}]},{"language":"ko","pages":[{"title":"ko","href":"/ko/features/entitlements/introduction"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/pt-BR/features/entitlements/introduction"}]},{"language":"vi","pages":[{"title":"vi","href":"/vi/features/entitlements/introduction"}]},{"language":"cn","pages":[{"title":"cn","href":"/cn/features/entitlements/introduction"}]},{"language":"hi","pages":[{"title":"hi","href":"/hi/features/entitlements/introduction"}]},{"language":"it","pages":[{"title":"it","href":"/it/features/entitlements/introduction"}]},{"language":"sv","pages":[{"title":"sv","href":"/sv/features/entitlements/introduction"}]}]},"basePath":"","title":"Einführung - Dodo Payments Documentation","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-u3J1-UOn.js","DynamicMarkdown-B-f2cqXQ.js","zoom-image-lightbox-DTFzvaXJ.js","lightbox-handle-r17bVUz3.js"]}