Skip to main content
En funktion flagga rättighet förvandlar Dodo Payments till ett betalningsmedvetet funktion-flagglager. Bifoga en flagga som 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ör Pending, 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äser feature_id fö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.
Vanliga användningar inkluderar planbaserad funktionsbegränsning (Pro låser upp analys), tilläggsförmågor (en “API-åtkomst” uppgradering) och tidiga åtkomstprogram som säljs som engångsköp.
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

1

Open Entitlements

I din Dodo Payments dashboard, gå till Rättigheter och klicka på + för att starta en ny rättighet, välj sedan Funktion Flaggar.
2

Name the flag

Ge flaggan ett Visningsnamn för din dashboard, ett Funktion ID som din applikation kommer att kontrollera (dashboarden föreslår ett från namnet) och en Beskrivning så att ditt team vet vad den kontrollerar.
Ny Funktion Flagga formulär med visningsnamn, funktion ID, beskrivning och metadata nyckel-värde angivelser

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

3

Optionally add metadata

Toggle Meta Data för att bifoga nyckel-värde konfiguration — gränser, nivånamn, kvoter — som levereras till din applikation tillsammans med flaggan. Se Bifoga gränser med metadata.
4

Confirm

Klicka på Bekräfta. Flaggan visas i din rättighetslista, redo att bifogas till produkter.
Rättighetsdashboard som visar Avancerade Rapporter funktion flagga med sin beviljande aktivitetsfönster

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.
Rättigheter bifoga panel med Avancerade Rapporter funktion flagga vald

Attaching the feature flag to a product. One product can deliver multiple entitlements.

Den bifogade flaggan visas på produktformuläret, och förhandsgranskningen av kassan listar den under Inkluderar.
Produktformulär med Avancerade Rapporter funktion flagga fäst i Rättigheter kortet

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 metadata fält, så ett API-anrop ger dig både flaggan och dess konfiguration.
Till exempel, en 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).
Använd metadata för gränser och konfiguration; använd feature_id endast för identitet. Att koda gränser i id:t (advanced_reports_100) tvingar en ny flagga för varje gränsändring och bryter dina applikationskontroller.

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 efter integration_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.
Att kontrollera API på varje begäran lägger till latens till din heta väg. Cacha funktionsuppsättningen per kund med en kort TTL (minuter, inte timmar), och ogiltigförklara cachen från din webhook-hanterare när en beviljande ändrar tillstånd - den kombinationen håller kontroller snabb och återkallningar nästan direkt.

Livscykel

Feature flag-grants följer den standardiserade grant-livscykeln med en förenkling: det finns inget leveranssteg, så grants befinner sig aldrig i Pending och flyttas aldrig till Failed. Beviljanden är idempotenta per rättighet och kund: medan en kund har en icke-återkallad beviljande för en flagga, skapar upprepade köp och förnyelser inga dubbletter.

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 i Delivered med feature-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 kontrollera revocation_reason för att avgöra hur meddelandet ska formuleras.
TypeScript
There is no entitlement_grant.failed for feature flags — delivery happens entirely inside Dodo Payments and cannot fail.

Exempel: Pro plan låser upp avancerade rapporter

  1. Skapa flaggan. feature_id: advanced_reports med metadata { "tier": "pro", "monthly_report_limit": 100 }.
  2. Koppla den till din prenumerationsprodukt Pro Plan.
  3. En kund prenumererar. Dodo Payments skapar en Delivered grant och utlöser entitlement_grant.created; din webhook-hanterare aktiverar advanced_reports för kunden med en gräns på 100.
  4. 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är advanced_reports finns.
  5. Kunden annullerar. Dodo Payments återkallar grant och utlöser entitlement_grant.revoked; din hanterare inaktiverar funktionen. Om kunden senare återställs via kravhantering återställer entitlement_grant.delivered den — 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_access som två entitlements framför en enda pro_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 Revoked som 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.
Senast ändrad 6 augusti 2026