Hoppa till huvudinnehåll
Rättigheter förvandlar en lyckad betalning eller aktiv prenumeration till verklig åtkomst: en licensnyckel i kundens inkorg, en funktionsflagga som din app kontrollerar, en Discord-roll, ett GitHub-förråd, en Notion-mall, en Framer-remixlänk, en Telegram-chattinbjudan eller ett nedladdningsbart filpaket. Dodo Payments utfärdar, spårar och återkallar den åtkomsten automatiskt när betalningslivscykeln förändras.
Entitlements dashboard med en lista över entitlements till vänster och grant-aktiviteter till höger

Vad är Entitlements?

En entitlement är en återanvändbar definition av något du levererar till en kund: en Pro licensnyckel, en “Patrons”-roll i Discord, åtkomst till ditt privata GitHub-repository, ett nedladdningsbart e-bokpaket. Du fäster entitlements till produkter, och Dodo Payments hanterar resten. När en kund köper produkten skapar Dodo Payments ett grant, en enskild kunds tilldelning av den entitlement. Grants rör sig genom ett litet antal statusar: pending medan leveransen pågår, delivered när kunden har tillgång, failed om leveransen inte kunde slutföras, och revoked när åtkomst återkallas.
Entitlements avgränsar uppfyllelse (har kunden tillgång?). Krediter avgränsar förbrukning (hur mycket kan de använda?). Båda kan fästas till samma produkt. Se Kreditbaserad Fakturering för krediter.

Tillgängliga Integrationer

Dodo Payments levererar varje entitlement genom en dedikerad integration. Välj integrationen som matchar det du säljer.

License Keys

Generera unika licensnycklar med aktiveringsgränser och utgångsdatum. Bäst för mjukvara, plugins och CLI:er.

Digital Files

Leverera nedladdningsbara filer (e-böcker, mallar, media) med undertecknade nedladdnings-URL:er och valfria instruktioner.

Feature Flags

Porta funktioner i din egen app mot ett köp. Levererat omedelbart, kontrollerat via API, återkallat vid avbokning.

Discord

Ge en kund en roll i din Discord-server när de köper. Återkalla automatiskt vid avbokning.

GitHub

Lägg till kunder som samarbetspartners i ett privat förråd på den tillståndsnivå du väljer.

Telegram

Lägg till kunder i en privat Telegram-chatt eller kanal efter köp.

Framer

Lås upp en Framer-mallremixlänk för betalande kunder.

Notion

Dubbletter en Notion-mall till kundens arbetsyta vid köp.

Hur rättigheterna fungerar

Rättigheter drivs av samma betalnings- och prenumerationshändelser som du redan tar emot som webhooks. Du behöver inte själv kalla på rättighets-API:t för köp. Dodo Payments skapar och återkallar rättigheter automatiskt baserat på den underliggande betalningslivscykeln.

Rättigheternas livscykel

1

Created

En rättighet skapas när en betalning slutförs eller en prenumeration blir aktiv. Licensnycklar och funktionsflaggor hoppar direkt till delivered. Alla andra integrationer börjar i pending. OAuth-baserade integrationer (Discord, GitHub, Notion) inkluderar en oauth_url som kunden måste besöka för att slutföra samtycke. Plattform-direkta integrationer (Telegram, Framer, Digitala filer) stannar i pending endast kort medan leveransen förbereds, sedan övergår de till delivered.
2

Delivered

När leveransen är klar (licensnyckel genererad, roll tilldelad, förrådsåtkomst beviljad, fillänkar lösta, OAuth slutfört), flyttas rättigheten till delivered och delivered_at sätts.
3

Failed

Om integrationsanropet returnerar ett ej återförsökbart fel (återkallad OAuth-token, nekad behörighet, filen finns inte längre), flyttas rättigheten till failed. Fälten error_code och error_message fångar anledningen.
4

Revoked

När åtkomst tas bort (prenumeration avbokad, återbetalning utfärdad eller köpmaninitierad återkallelse), flyttas rättigheten till revoked. Fältet revocation_reason registrerar utlösaren.

Rättighetsbeteende per händelse

HändelseBeteende
payment.succeeded (engångsbetalning)Utfärda en rättighet per bifogad rättighet.
payment.succeeded (prenumerationsbunden betalning)No-op. Rättigheter drivs av prenumerationshändelsen nedan.
subscription.activeUtfärda rättigheter för alla bifogade rättigheter som inte redan har en. Återgiv tidigare återkallade rättigheter för samma prenumeration.
subscription.renewedNo-op. Befintliga rättigheter kvarstår vid förnyelser.
subscription.on_holdÅterkalla alla levererade och väntande rättigheter. revocation_reason: subscription_on_hold.
subscription.cancelledÅterkalla alla. revocation_reason: subscription_cancelled.
subscription.expiredÅterkalla alla. revocation_reason: subscription_expired.
subscription.plan_changedÅterkalla alla nuvarande rättigheter, sedan utfärda rättigheter för den nya planens rättigheter. revocation_reason: plan_changed.
refund.succeeded (engångsbetalning)Återkalla rättigheter för den betalningen. revocation_reason: refund.
Manuell API-återkallelseÅterkalla med revocation_reason: manual. Manuella återkallanden återgrantas inte automatiskt vid prenumerationsförnyelse.
Licensnyckel inaktiveradFör licensnyckelrättigheter, inaktiverar den underliggande nyckeln återkallar rättigheten med revocation_reason: license_key_disabled. Rättigheten återaktiveras automatiskt om nyckeln aktiveras igen.
Plattform drift upptäcktOm plattformens sida av en integration går ur synk (en Discord-roll borttagen manuellt, GitHub-appen förlorar förrådsåtkomst, eller en avstämningspass upptäcker ett saknat mål), återkallas rättigheten med revocation_reason: platform_external. Inte automatiskt återgrantas vid prenumerationsförnyelse förrän det underliggande plattformsproblemet är löst.
Prenumerationsdrivna rättigheter är idempotenta per (entitlement, customer, subscription); förnyelser och återaktiveringar skapar inte dubbletträttigheter. Engångsrättigheter är idempotenta per (entitlement, customer, payment).

Skapa din första rättighet

1

Open Entitlements

Gå till Rättigheter i din Dodo Payments-instrumentpanel och klicka på + för att skapa en ny rättighet.
2

Pick an integration

Välj integrationstyp: Licensnyckel, Digitala Filer, Funktionsflagga, Discord, GitHub, Telegram, Framer eller Notion. För plattformsintegrationer, anslut ditt konto först om du inte redan har gjort det.
3

Configure delivery

Fyll i integrationsspecifika fält. Till exempel, GitHub frågar efter ett förråd och en behörighetsnivå; Discord frågar efter en server och en valfri roll; Licensnyckel frågar efter aktiveringsbegränsningar och utgångsdatum.
Ny rättighetsform med integrationsväljare och konfigurationsfält
4

Save

Spara rättigheten. Du kan nu bifoga den till valfri produkt.

Bifoga rättigheter till produkter

Öppna en produkt, expandera Avancerade inställningar → Rättigheter & Krediter och välj de rättigheter som ska levereras när produkten köps. En enda produkt kan leverera flera rättigheter samtidigt. Till exempel kan ett Pro-plan innehålla en licensnyckel, GitHub-åtkomst och en Discord-roll.
Produkturvalsutvidgningspanel som visar kryssrutor för varje tillgänglig rättighet

Kundupplevelse

E-post och kundportal

Kunder får ett leveransepostmeddelande efter köpet som innehåller licensnyckeln, nedladdningslänkar, OAuth-inbjudningslänkar eller plattformsinbjudan, vad som än gäller för produkternas rättigheter. Samma detaljer förblir tillgängliga på obestämd tid från Kundportalen under deras orderhistorik.

OAuth-baserad leverans

Discord, GitHub och Notion prenumerantåtkomst kräver att kunden auktoriserar Dodo Payments att ge dem åtkomst. Dessa rättigheter förblir i pending-status tills kunden slutför OAuth-flödet med länken från deras e-postmeddelande eller kundportal. När de auktoriserar flyttas rättigheten till delivered och plattformsåtkomsten tillhandahålls omedelbart.

Återkallelse

Återkallade rättigheter tas bort på plattformsnivå: Discord-rollen tas bort, GitHub-samarbetaren tas bort, licensnyckeln inaktiveras. Kunder ser ändringen återspeglas i kundportalen.
För Digitala Filer, återkallelse tar bort åtkomsten till de försignerade URL:erna framåt men ogiltigförklarar inte kopior en kund redan har laddat ner. Planera innehållsportering därefter.

Hantera rättigheter

Öppna vilken rättighet som helst från instrumentpanelen för att se dess rättigheter. Rättighetspanelen visar totala rättigheter, statusfilter, kundinformation, leveransdatum och en återkallningsåtgärd. Du kan också hantera rättigheter programmatisk:
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'],
});

// List grants for an entitlement
const grants = await client.entitlements.grants.list('ent_abc123', {
  status: 'Delivered',
});

// Revoke a single grant
await client.entitlements.grants.revoke('grant_xyz789', {
  id: 'ent_abc123',
});
client.entitlements.grants.list(
    "ent_abc123",
    status="Delivered",
)

client.entitlements.grants.revoke(
    "grant_xyz789",
    id="ent_abc123",
)
grants, _ := client.Entitlements.Grants.List(
  ctx, "ent_abc123",
  dodopayments.EntitlementGrantListParams{Status: dodopayments.F("delivered")},
)

_, _ = client.Entitlements.Grants.Revoke(ctx, "grant_xyz789", "ent_abc123")

API-hantering

Create Entitlement

Skapa en ny rättighet av vilken integrationstyp som helst.

List Entitlements

Lista rättigheter med filtrering efter integrationstyp.

Get Entitlement

Hämta en rättighet och dess lösta konfiguration.

Update Entitlement

Uppdatera namn, beskrivning eller integrationskonfiguration.

Delete Entitlement

Soft-radera en rättighet; befintliga rättigheter påverkas inte.

Upload File

Ladda upp en fil till en digital filrättighet (upp till 500 MiB).

List Grants

Lista alla rättigheter för en rättighet med status och kundfilter.

Revoke Grant

Återkalla en enskild rättighet manuellt.

Webhooks

Dodo Payments skickar fyra webhook-händelser för rättighetslivscykeln. Prenumerera på dessa händelser för att hålla din applikation i synk med vad varje kund kan få åtkomst till.
HändelseUtlöses när
entitlement_grant.createdEn ny rättighet skapas. Licensnyckelrättigheter anländer delivered; varje annan integration anländer pending och övergår till delivered när plattformsanropet lyckas (eller för OAuth-baserade integrationer, när kunden har godkänt).
entitlement_grant.deliveredRättigheten övergår till levererat. Kunden har nu åtkomst.
entitlement_grant.failedRättigheten kunde inte levereras. Inspektera error_code och error_message.
entitlement_grant.revokedÅtkomst har tagits bort. Inspektera revocation_reason.

Entitlement Grant Webhook Payloads

Se hela payload-schemat, exempelhändelser och revocation_reason referens.

Bästa praxis

  • Använd en rättighet per leveranskanal. Dela inte en enda Discord-rättighet över produkter med olika rollavsikter; skapa en per roll för ren återkallelse.
  • Testa i testläge först. Skapa rättigheten, bifoga den till en testprodukt, genomför ett köp och se rättigheten övergå genom pending → delivered. Bekräfta att avbokning av testprenumerationen återkallar rättigheten.
  • Lyssna på entitlement_grant.delivered, inte payment.succeeded. En betalning kan lyckas innan fullföljandet slutförs (särskilt för OAuth-flöden). Vänta på leveranshändelsen innan du låser upp beroende funktioner i dina egna system.
  • Behandla entitlement_grant.failed som åtgärdbar. En misslyckad rättighet betyder att en kund betalade men inte fick åtkomst. Visa dessa för ditt supportteam eller utlöse en ny beviljning.
  • Map revocation_reason till dina retentionflöden. En subscription_on_hold återkallelse är återvinningsbar (kunden kan uppdatera sitt kort). En manual återkallelse är avsiktlig. Behandla dem olika i kundkommunikation.
Senast ändrad 9 juli 2026