Hoppa till huvudinnehåll

Documentation Index

Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt

Use this file to discover all available pages before exploring further.

Behörighet förvandlar en lyckad betalning eller aktiv prenumeration till verklig åtkomst: en licensnyckel i din kunds inkorg, en Discord-roll, ett GitHub-repository, en Notion-mall, en Framer remix-länk, en Telegram-chattinbjudan eller ett nedladdningsbart filpaket. Dodo Payments hanterar och återkallar den åtkomsten automatiskt när betalningscykeln 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.

Discord

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

GitHub

Lägg till kunder som medarbetare till ett privat repository på den behörighetsnivå du väljer.

Telegram

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

Framer

Lås upp en Framer-mall remix-länk för betalande kunder.

Notion

Duplicera en Notion-mall in i kundens arbetsyta vid köp.

Hur Grants Fungerar

Grants drivs av samma betalnings- och prenumerationshändelser som du redan får som webhooks. Du behöver inte anropa grant-API:et själv för köp. Dodo Payments skapar och återkallar grants automatiskt baserat på den underliggande betalningscykeln.

Grant Lifecycle

1

Created

Ett grant skapas när en betalning slutförs eller en prenumeration blir aktiv. Licensnycklar 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) sitter endast kortvarigt i pending medan leverans tillhandahålls, och övergår sedan till delivered.
2

Delivered

När leveransen slutförs (licensnyckel genererad, roll tilldelad, repository-åtkomst beviljad, fillänkar lösta, OAuth slutförd), flyttas granten till delivered och delivered_at sätts.
3

Failed

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

Revoked

När åtkomsten återkallas (prenumeration annullerad, återbetalning utfärdad, eller återkallning som initierats av handlare) flyttas granten till revoked. Fältet revocation_reason registrerar utlösaren.

Grant-beteende per Händelse

HändelseBeteende
payment.succeeded (engångsbetalning)Utfärda en grant per tillagd entitlement.
payment.succeeded (prenumerationslänkad betalning)No-op. Grants drivs av prenumerationshändelsen nedan.
subscription.activeUtfärda grants för eventuella tillagda entitlements som inte redan har en. Tilldela om alla grants som tidigare återkallats för samma prenumeration.
subscription.renewedNo-op. Befintliga grants kvarstår vid förnyelser.
subscription.on_holdÅterkalla alla levererade och väntande grants. 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 grants och utfärda sedan grants för den nya planens entitlements. revocation_reason: plan_changed.
refund.succeeded (engångsbetalning)Återkalla grants för den betalningen. revocation_reason: refund.
Manuell API-återkallelseÅterkalla med revocation_reason: manual. Manuella återkallelser återställdes inte automatiskt vid prenumerationsförnyelse.
Licensnyckel inaktiveradFör licensnyckel-grants, inaktivering av den underliggande nyckeln återkallar granten med revocation_reason: license_key_disabled. Granten återaktiveras automatiskt om nyckeln återaktiveras.
Plattform-drift upptäcktOm plattformssidan av en integration drar ut ur synkorn (en Discord-roll borttagen manuellt, GitHub-appen förlorar repository-åtkomst, eller en avstämningspass upptäcker ett saknat mål), återkallas granten med revocation_reason: platform_external. Återställdes inte automatiskt vid prenumerationsförnyelse tills det underliggande plattformsproblemet löses.
Prenumerationsdrivna grants är idempotenta per (entitlement, customer, subscription); förnyelser och återaktiveringar skapar inte dubblett grants. Engångsgrants är idempotenta per (entitlement, customer, payment).

Skapa din första Entitlement

1

Open Entitlements

Gå till Entitlements i din Dodo Payments-instrumentpanel och klicka på + för att skapa en ny entitlement.
2

Pick an integration

Välj integrationstyp: Licensnyckel, Digitala filer, 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 de integrationsspecifika fälten. Till exempel, GitHub ber om ett repository och en behörighetsnivå; Discord ber om en server och en eventuell roll; Licensnyckel ber om aktiveringsgränser och utgångsdatum.
Ny Entitlement-formulär med integrationsväljare och konfigurationsfält
4

Save

Spara entitlementen. Du kan nu fästa den till valfri produkt.

Fäst Entitlements till Produkter

Öppna en produkt, expandera Avancerade Inställningar → Entitlements & Krediter, och välj de entitlements som ska levereras när produkten köps. En enda produkt kan leverera flera entitlements på en gång. Till exempel, en Pro-plan kan inkludera en licensnyckel, GitHub-åtkomst och en Discord-roll.
Produktentitlement urvalspanel som visar kryssrutor för varje tillgänglig entitlement

Kundupplevelse

E-post och kundportal

Kunderna får ett leveransbrev efter köp som innehåller licensnyckeln, nedladdningslänkar, OAuth-inbjudningslänkar eller plattforminbjudan, beroende på vad som gäller för entitlements på produkten. Samma detaljer är tillgängliga på obestämd tid från Kundportalen under deras orderhistorik.

OAuth-baserad leverans

Discord, GitHub och Notion abonnentåtkomst kräver att kunden godkänner Dodo Payments att ge dem tillgång. Dessa grants stannar i pending status tills kunden slutför OAuth-flödet med länken från deras e-post eller kundportal. När de godkänner, flyttas granten till delivered och plattformstillgången tillhandahålls omedelbart.

Återkallelse

Återkallade grants tas bort på plattformnivå: Discord-rollen tas bort, GitHub-kollaboratören tas bort, licensnyckeln inaktiveras. Kunderna ser ändringen återspeglas i kundportalen.
För Digitala Filer, återkallelse tar bort tillgången till de undertecknade URL:erna framöver men ogiltigförklarar inte kopior som en kund redan har laddat ner. Planera innehållsgränserna därefter.

Hantera Grants

Öppna vilken entitlement som helst från instrumentpanelen för att se dess grants. Grant-detaljpanelen visar totala grants, statusfilter, kundinformation, leveransdatum och en återkallelseåtgärd. Du kan också hantera grants programmatiskt:
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', {
  path_id: 'ent_abc123',
});

API-hantering

Create Entitlement

Skapa en ny entitlement av valfri integrationstyp.

List Entitlements

Lista entitlements med filtrering efter integrationstyp.

Get Entitlement

Hämta en entitlement och dess lösta konfiguration.

Update Entitlement

Uppdatera namn, beskrivning eller integrationskonfiguration.

Delete Entitlement

Mjuk-radera en entitlement; befintliga grants påverkas inte.

Upload File

Ladda upp en fil till en Digitala Filer-entitlement (upp till 100 MB).

List Grants

Lista alla grants för en entitlement med status och kundfilter.

Revoke Grant

Återkalla en enskild grant manuellt.

Webhooks

Dodo Payments skickar fyra webhook-händelser för grant-livscykeln. Prenumerera på dessa händelser för att hålla din applikation synkroniserad med vad varje kund kan komma åt.
HändelseSkickas när
entitlement_grant.createdEtt nytt grant skapas. Licensnyckel-grants 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 auktoriserar).
entitlement_grant.deliveredGranten övergår till levererad. Kunden har nu åtkomst.
entitlement_grant.failedGranten kunde inte levereras. Inspektera error_code och error_message.
entitlement_grant.revokedÅtkomst har återkallats. Inspektera revocation_reason.

Entitlement Grant Webhook Payloads

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

Bästa praxis

  • Använd en entitlement per leveranskanal. Dela inte en enda Discord-entitlement över produkter med olika rollintentioner; skapa en per roll för ren återkallelse.
  • Testa i testläge först. Skapa entitlemen, fäst den till en testprodukt, kör en kassa och se granten övergå genom pending → delivered. Bekräfta att annullering av testprenumerationen återkallar granten.
  • Lyssna på entitlement_grant.delivered, inte payment.succeeded. En betalning kan lyckas innan uppfyllelse är klar (speciellt för OAuth-flöden). Vänta på levererad händelse innan du låser upp beroende funktioner i dina egna system.
  • Behandla entitlement_grant.failed som åtgärdsbar. Ett misslyckat grant betyder att en kund har betalat men inte fick tillgång. Flagga dessa till ditt supportteam eller starta en omgrant.
  • Kartlägg revocation_reason till dina kvarhållningsflöden. En subscription_on_hold återkallelse är återställbar (kunden kan uppdatera sitt kort). En manual återkallelse är avsiktlig. Behandla dem olika i kundkommunikation.
Last modified on May 14, 2026