advanced_reports an ein Produkt, und jeder zahlende Kunde erhält eine Berechtigung, die Ihre Anwendung über API überprüfen oder mit Webhooks synchron halten kann. Keine externe Plattform, kein OAuth, kein Lieferstep — die Berechtigung selbst ist die Fähigkeit.Was geliefert wird
Nichts verlässt Dodo Payments — die Berechtigung ist das Lieferbare:- Beim Kauf wird der Grant erstellt und wechselt direkt zu
Delivered. Es gibt keine PhasePending, keine Aktion des Kunden und keine Möglichkeit, dass die Bereitstellung fehlschlägt. - Der Grant enthält eine typisierte
feature-Payload:{ "feature_type": "boolean", "feature_id": "advanced_reports" }. Ihre Anwendung liestfeature_id, um zu entscheiden, was freigeschaltet werden soll. - Durch eine Stornierung, Rückerstattung oder manuelle Aufhebung wechselt der Grant zu
Revoked, und Ihre Anwendung erkennt, dass das Flag nicht mehr vorhanden ist.
feature_id ist eine vom Händler gewählte Kennung, die nicht einzigartig für Berechtigungen ist. Zwei Berechtigungen können die gleiche feature_id verleihen — zum Beispiel, ein monatlicher und ein jährlicher Pro-Plan, die beide advanced_reports gewähren.Erstellen eines Feature-Flags
Open Entitlements
Name the flag

Creating a feature flag. The Feature ID is what your application checks; Meta Data attaches limits alongside the flag.
Optionally add metadata
Confirm

The created feature flag. The right pane tracks every customer grant issued from it.
An ein Produkt anhängen
Öffnen Sie ein Produkt (oder erstellen Sie eines), finden Sie die Berechtigungen-Karte und klicken Sie auf +, um bestehende Berechtigungen zu verknüpfen. Wählen Sie Ihr Feature-Flag und klicken Sie auf Fertig.
Attaching the feature flag to a product. One product can deliver multiple entitlements.

The product now includes the feature flag. Every successful purchase or active subscription grants it.
Erforderliche Konfiguration
Erstellung über API
Limits mit Metadaten anhängen
Ein boolesches Flag beantwortet “Hat dieser Kunde die Funktion?”. Metadaten beantworten “Mit welcher Konfiguration?”. Berechtigungsmetadaten akzeptieren Zeichenfolgen, Ganzzahlen, Zahlen und boolesche Werte, und jede Berechtigung nimmt einen eingefrorenen Schnappschuss der Metadaten der Berechtigung zum Zeitpunkt ihrer Erstellung auf. Dieses Schnappschussverhalten macht Metadaten sicher für Planlimits einsetzbar:- Das spätere Bearbeiten der Metadaten der Berechtigung betrifft nur zukünftige Berechtigungen. Kunden behalten die Limits, unter denen sie erworben haben.
- Der Schnappschuss wird bei jeder Berechtigung als sein Feld
metadatazurückgegeben, sodass ein API-Aufruf sowohl das Flag als auch die Konfiguration liefert.
advanced_reports-Flag mit { "tier": "pro", "monthly_report_limit": 100 } Ihrer Anwendung erlauben, das Dashboard freizuschalten und das 100-Bericht-Quote ohne zweite Abfrage durchzusetzen. Wenn Sie das Limit später auf 250 erhöhen, bleiben bestehende Kunden bei 100, bis sie eine neue Berechtigung erhalten (zum Beispiel nach einem Planwechsel).
Features eines Kunden überprüfen
Listen Sie die gelieferten Feature-Flag-Berechtigungen eines Kunden auf und erstellen Sie den Satz aktivierter Features. Der Endpunkt gibt eine Zeile pro Berechtigung über alle Berechtigungen zurück, die nachintegration_type und status gefiltert werden können.
feature-Nutzlast wird nur bei feature_flag-Berechtigungen befüllt; sie ist null für jeden anderen Integrationstyp. Siehe die List Customer Grants API-Referenz für die vollständige Antwortstruktur.Lebenszyklus
Feature-Flag-Grants folgen dem standardmäßigen Grant-Lebenszyklus mit einer Vereinfachung: Es gibt keinen Bereitstellungsschritt, daher verbleiben Grants nie inPending und wechseln nie zu Failed.
Webhooks
Abonnieren Sie dieentitlement_grant.*-Ereignisse, um Flags in Ihre eigene Datenbank zu spiegeln, anstatt zu pollen:
entitlement_grant.created— kommt bereits alsDeliveredmit derfeature-Payload an. Aktivieren Sie das Feature.entitlement_grant.delivered— wird ausgelöst, wenn ein zuvor aufgehobener Grant wiederhergestellt wird. Aktivieren Sie das Feature erneut.entitlement_grant.revoked— Zugriff entzogen. Deaktivieren Sie das Feature und prüfen Sierevocation_reason, um Ihre Kommunikation festzulegen.
entitlement_grant.failed für Feature-Flags — die Lieferung erfolgt vollständig innerhalb Dodo Payments und kann nicht fehlschlagen.
Beispiel: Pro-Plan schaltet erweiterte Berichte frei
- Erstellen Sie das Flag.
feature_id: advanced_reportsmit den Metadaten{ "tier": "pro", "monthly_report_limit": 100 }. - Verknüpfen Sie es mit Ihrem Abonnementprodukt Pro Plan.
- Ein Kunde abonniert. Dodo Payments erstellt einen
Delivered-Grant und löstentitlement_grant.createdaus; Ihr Webhook-Handler aktiviertadvanced_reportsfür den Kunden mit einem Limit von 100. - Ihre Anwendung steuert den Feature-Zugriff. Prüfen Sie beim Laden des Dashboards das zwischengespeicherte Feature-Set (oder rufen Sie
listEntitlementGrantsauf) und rendern Sie den Berichte-Tab nur, wennadvanced_reportsvorhanden ist. - Der Kunde kündigt. Dodo Payments hebt den Grant auf und löst
entitlement_grant.revokedaus; Ihr Handler deaktiviert das Feature. Wenn der Kunde später durch Dunning wiederhergestellt wird, aktiviertentitlement_grant.deliveredes erneut – es sind keine Codeänderungen erforderlich.
Best Practices
- Verwenden Sie stabile Feature-IDs im snake_case-Format. Ihr Anwendungscode prüft diese Zeichenfolgen; die Umbenennung einer ID ist auf beiden Seiten eine Breaking Change.
- Ein Flag pro Funktion. Bevorzugen Sie
advanced_reports+api_accessals zwei Entitlements gegenüber einem einzelnenpro_bundle– Aufhebungen und Kombinationen von Plänen bleiben übersichtlich. - Steuern Sie den Status über Webhooks und verifizieren Sie ihn mit der API. Webhooks halten Ihre Datenbank aktuell; der Listen-Endpunkt ist die maßgebliche Quelle für Abgleich-Jobs und Cache-Misses.
- Behandeln Sie
Revokedals sofort wirksam. Ein aufgehobenes Flag bedeutet, dass der Kunde nicht mehr für das Feature bezahlt. Steuern Sie den Zugriff bei der nächsten Anfrage, nicht erst bei der nächsten Sitzung. - Legen Sie Limits in den Metadaten statt im Code fest. Wenn Sie ein Kontingent ändern, müssen Sie anschließend nur das Entitlement bearbeiten – neue Kunden übernehmen es automatisch, während bestehende Grants ihren erworbenen Snapshot behalten.