advanced_reports, till en produkt, så får varje betalande kund ett grant som din applikation kontrollerar via API:et eller håller synkroniserat med webhooks. Det finns ingen extern plattform, inget OAuth-steg och inget leveranssteg: själva grantet är funktionen.Vad som levereras
Inget lämnar Dodo Payments. Grantet är det som levereras:- Vid köp skapar Dodo Payments grantet direkt i
Delivered. Det hamnar aldrig iPending, kräver ingen åtgärd från kunden och har inget leveranssteg som kan misslyckas. - Grantet innehåller en typad payload för
feature:{ "feature_type": "boolean", "feature_id": "advanced_reports" }. Din applikation läserfeature_idför att avgöra vad som ska låsas upp. - Uppsägning, återbetalning eller en manuell återkallelse flyttar grantet till
Revoked, och flaggan försvinner från kundens levererade grants.
feature_id är en identifierare som du väljer, och den är inte unik mellan entitlements. Två entitlements kan ge samma feature_id, till exempel en månads- och en årsplan för Pro som båda ger advanced_reports.Skapa en feature flag
Open Entitlements
Name the Flag
api_access), och du kan redigera det. Det får inte innehålla mellanslag.
Creating a feature flag. The Feature ID is what your application checks; Meta Data attaches limits alongside the flag.
Add Metadata (Optional)
Confirm

The created feature flag. The right pane tracks every customer grant issued from it.
Koppla till en produkt
Öppna en produkt eller skapa en ny och leta reda på kortet Entitlements. Klicka på + för att koppla befintliga entitlements, välj din feature flag och klicka på Done.
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 boolesk flagga svarar på frågan “Har den här kunden funktionen?” Metadata svarar på frågan “Med vilken konfiguration?” Entitlement-metadata accepterar värden av typen string, integer, number och boolean. Varje grant tar en fryst ögonblicksbild av entitlementens metadata när grantet skapas. Ögonblicksbilden gör metadata säkra att använda för plangränser:- Om du redigerar entitlementens metadata senare påverkar det endast framtida grants. Kunderna behåller gränserna som de köpte.
- Varje grant returnerar sin ögonblicksbild i fältet
metadata, så ett API-anrop ger dig både flaggan och dess konfiguration.
advanced_reports med { "tier": "pro", "monthly_report_limit": 100 } gör till exempel att din applikation kan låsa upp dashboarden och tillämpa kvoten på 100 rapporter utan en andra sökning. Om du senare höjer gränsen till 250 ligger befintliga kunder kvar på 100 tills de får ett nytt grant, till exempel efter ett planbyte.
Kontrollera en kunds funktioner
För att skapa mängden funktioner som en kund har listar du deras levererade grants för feature flags. Endpointen returnerar en rad per grant för alla entitlements, och du kan filtrera den medintegration_type och status. I de här exemplen används client från Skapa via API.
feature fylls endast i för grants av typen feature_flag. Den är null för alla andra integrationstyper. Se API-referensen för List Customer Grants för den fullständiga svarsstrukturen.Livscykel
Grants för feature flags följer standarden för grantets livscykel med en förenkling: det finns inget leveranssteg, så grants ligger aldrig iPending och flyttas aldrig till Failed.
Webhooks
Om du vill spegla flaggor till din egen databas i stället för att polla prenumererar du på händelsernaentitlement_grant.*:
entitlement_grant.createdanländer redan i tillståndetDelivered, med payloadenfeature. Aktivera funktionen.entitlement_grant.deliveredutlöses när ett tidigare återkallat grant återställs. Aktivera funktionen igen.entitlement_grant.revokedbetyder att åtkomsten har dragits in. Inaktivera funktionen och kontrollerarevocation_reasonför att välja hur du ska kommunicera detta.
entitlement_grant.failed, eftersom leveransen sker helt inom Dodo Payments.
Exempel: Pro-planen låser upp avancerade rapporter
- Skapa flaggan. Ange
feature_id: advanced_reportsmed metadata{ "tier": "pro", "monthly_report_limit": 100 }. - Koppla den till din Pro Plan-prenumerationsprodukt.
- En kund prenumererar. Dodo Payments skapar ett grant av typen
Deliveredoch utlöserentitlement_grant.created. Din webhook-handler aktiveraradvanced_reportsför kunden med en gräns på 100. - Din app styr å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 säger upp prenumerationen. Dodo Payments återkallar grantet och utlöser
entitlement_grant.revoked, och din handler inaktiverar funktionen. Om en prenumeration senare återställs genom dunning återställerentitlement_grant.deliveredfunktionen utan kodändringar.
Rekommenderade metoder
- Använd stabila feature IDs i
snake_case. Din applikationskod kontrollerar dessa strängar, så att byta namn på en av dem är en breaking change på båda sidor. - Använd en flagga per funktion. Föredra
advanced_reportsochapi_accesssom två entitlements framför en endapro_bundle, så att återkallelser och plankombinationer förblir tydliga. - Låt webhooks styra status och verifiera med API:et. Webhooks håller din databas uppdaterad. List-endpointen är sanningskällan för avstämningsjobb och cache-missar.
- Behandla
Revokedsom omedelbart. En återkallad flagga betyder att kunden inte längre betalar för funktionen. Styr åtkomsten vid nästa request, inte nästa session. - Lägg gränser i metadata, inte i kod. När en kvot ändras behöver du då endast redigera entitlementen. Nya kunder får det nya värdet, och befintliga grants behåller sin köpta ögonblicksbild.