advanced_reports till en produkt, och varje betalande kund får en beviljande som din applikation kan kontrollera via API eller hålla i sync med webhooks. Ingen extern plattform, ingen OAuth, inget leveranssteg — beviljandet i sig är förmågan.Vad som levereras
Inget lämnar Dodo Payments — beviljandet är leveransen:- Vid köp skapas grant och går direkt till
Delivered. Det finns ingen fas förPending, ingen kundåtgärd och inget sätt för leveransen att misslyckas. - Grant innehåller en typad
feature-nyttolast:{ "feature_type": "boolean", "feature_id": "advanced_reports" }. Din applikation läserfeature_idför att avgöra vad som ska låsas upp. - Annullering, återbetalning eller manuellt återkallande flyttar grant till
Revoked, och din applikation ser att flaggan försvinner.
feature_id är en handlarchosen identifierare, inte unik över rättigheter. Två rättigheter kan ge samma feature_id — till exempel, en månads- och en årsplan för Pro som båda ger advanced_reports.Skapa en funktion flagga
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.
Bifoga till en produkt
Öppna en produkt (eller skapa en), hitta Rättigheter kortet och klicka på + för att bifoga befintliga rättigheter. Välj din funktion flagga och klicka på Klar.
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.
Obligatorisk konfiguration
Skapa via API
Bifoga gränser med metadata
En boolean flagga svarar “har denna kund funktionen?”. Metadata svarar “med vilken konfiguration?”. Rättighetsmetadata accepterar strängar, heltal, nummer och boolean värden, och varje beviljande tar en fryst ögonblicksbild av rättighetens metadata i det ögonblick det skapas. Denna ögonblicksbildsbeteende är det som gör metadata säkra att använda för planegränser:- Att redigera rättighetens metadata senare påverkar endast framtida beviljanden. Kunder behåller de gränser de köpt under.
- Ögonblicksbilden returneras på varje beviljande som dess
metadatafält, så ett API-anrop ger dig både flaggan och dess konfiguration.
advanced_reports flagga med { "tier": "pro", "monthly_report_limit": 100 } låter din applikation låsa upp dashboarden och påtvinga 100-rapport kvoten utan en andra uppslagning. Om du senare höjer gränsen till 250, förblir befintliga kunder på 100 tills de får en ny beviljande (till exempel, efter en planförändring).
Kontrollera en kunds funktioner
Lista en kunds levererade funktion-flagg beviljanden och bygg upp uppsättningen av aktiverade funktioner. Endpointen returnerar en rad per beviljande över alla rättigheter, filtrerbar efterintegration_type och status.
feature nyttolasten fylls endast på feature_flag beviljanden; det är null för alla andra integrationstyper. Se den Lista Kund Grants API-referens för hela svarformatet.Livscykel
Feature flag-grants följer den standardiserade grant-livscykeln med en förenkling: det finns inget leveranssteg, så grants befinner sig aldrig iPending och flyttas aldrig till Failed.
Webhooks
Prenumerera påentitlement_grant.* händelser för att spegla flaggor in i din egen databas i stället för att fråga:
entitlement_grant.created— anländer redan iDeliveredmedfeature-nyttolasten. Aktivera funktionen.entitlement_grant.delivered— utlöses när en tidigare återkallad grant återställs. Aktivera funktionen igen.entitlement_grant.revoked— åtkomsten har dragits in. Inaktivera funktionen och kontrollerarevocation_reasonför att avgöra hur meddelandet ska formuleras.
entitlement_grant.failed for feature flags — delivery happens entirely inside Dodo Payments and cannot fail.
Exempel: Pro plan låser upp avancerade rapporter
- Skapa flaggan.
feature_id: advanced_reportsmed metadata{ "tier": "pro", "monthly_report_limit": 100 }. - Koppla den till din prenumerationsprodukt Pro Plan.
- En kund prenumererar. Dodo Payments skapar en
Deliveredgrant och utlöserentitlement_grant.created; din webhook-hanterare aktiveraradvanced_reportsför kunden med en gräns på 100. - Din app begränsar åtkomsten till funktionen. När dashboarden läses in kontrollerar du den cachade funktionsuppsättningen (eller anropar
listEntitlementGrants) och visar rapportfliken endast näradvanced_reportsfinns. - Kunden annullerar. Dodo Payments återkallar grant och utlöser
entitlement_grant.revoked; din hanterare inaktiverar funktionen. Om kunden senare återställs via kravhantering återställerentitlement_grant.deliveredden — inga kodändringar behövs.
Bästa praxis
- Använd stabila feature-id:n i snake_case. Din applikationskod kontrollerar dessa strängar; att byta namn på ett av dem är en brytande ändring på båda sidor.
- En flagga per funktion. Föredra
advanced_reports+api_accesssom två entitlements framför en endapro_bundle— återkallanden och planblandningar förblir tydliga. - Låt webhooks styra tillståndet och verifiera med API:t. Webhooks håller din databas aktuell; list-endpointen är sanningskällan för avstämningsjobb och cachemissar.
- Behandla
Revokedsom omedelbart. En återkallad flagga innebär att kunden inte längre betalar för funktionen. Begränsa åtkomsten vid nästa begäran, inte vid nästa session. - Lägg gränser i metadata, inte i koden. Om en kvot ändras behöver du då bara redigera entitlementen — nya kunder får den automatiskt, medan befintliga grants behåller den ögonblicksbild som köptes.