Leverera licensnycklar, nedladdningsbara filer, feature flags och åtkomst till Discord, GitHub, Telegram, Framer och Notion automatiskt när kunder betalar.
Entitlements omvandlar en genomförd betalning eller en aktiv prenumeration till åtkomst: en licensnyckel i kundens inkorg, en feature flag som din app kontrollerar, en Discord-roll, ett GitHub-repository, en Notion-mall, en Framer-remixlänk, en Telegram-chattinbjudan eller ett nedladdningsbart filpaket. Dodo Payments utfärdar, spårar och återkallar åtkomsten automatiskt när betalningens livscykel förändras.
The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.
En entitlement är en återanvändbar definition av något du levererar till en kund, till exempel en Pro-licensnyckel, en Discord-roll kallad “Patrons”, åtkomst till ditt privata GitHub-repository eller ett nedladdningsbart e-bokspaket. Du kopplar entitlements till produkter, och Dodo Payments levererar dem när en kund betalar.När en kund köper produkten skapar Dodo Payments ett grant: en enskild kunds utfärdande av denna entitlement. Ett grant har en av fyra statusar: Pending medan leveransen pågår, Delivered när kunden har åtkomst, Failed om leveransen inte kunde slutföras och Revoked när åtkomsten dras tillbaka.
Entitlements styr fulfillment (har kunden åtkomst?). Credits styr förbrukning (hur mycket kan kunden använda?). Du kan koppla båda till samma produkt. Se Credit-Based Billing för credits.
Grants följer samma betalnings- och prenumerationshändelser som du tar emot som webhooks. Dodo Payments skapar och återkallar automatiskt grants för köp baserat på betalningens livscykel, så du behöver inte anropa grant-API:t själv.
Dodo Payments skapar ett grant när en betalning slutförs eller en prenumeration blir aktiv. Grants för feature flags börjar som Delivered. Grants för licensnycklar börjar också som Delivered när entiteln använder fulfillment_mode: auto (standardvärdet). Med fulfillment_mode: manual börjar grantet som Pending utan nyckel tills du tillhandahåller en med Fulfill License Key Grant. Alla andra integrationer börjar som Pending.OAuth-baserade integrationer (Discord, GitHub, Notion) exponerar en oauth_url som kunden besöker för att ge sitt samtycke. Dodo Payments försöker generera denna URL när grantet skapas. Om det misslyckas förblir fältet null tills kunden startar accept-flödet från sitt leveransmejl eller Customer Portal. Plattformdirekta integrationer (Telegram, Framer, Digital Files) förblir Pending endast medan leveransen provisioneras och övergår sedan till Delivered.
2
Delivered
När leveransen är slutförd övergår grantet till Delivered och delivered_at anges. Leveransen är slutförd när licensnyckeln har genererats, rollen har tilldelats, åtkomsten till repositoryt har beviljats, fillänkarna har lösts eller OAuth-flödet har slutförts.
3
Failed
Om integrationsanropet returnerar ett fel som inte kan försökas igen, till exempel en återkallad OAuth-token, nekad behörighet eller en fil som inte längre finns, övergår grantet till Failed. Fälten error_code och error_message registrerar orsaken.
4
Revoked
När åtkomsten dras tillbaka, till exempel för att en prenumeration avslutas, en återbetalning utfärdas eller du återkallar grantet, övergår grantet till Revoked. Fältet revocation_reason registrerar utlösaren.
Ingen ändring. Prenumerationshändelserna nedan styr dessa grants.
subscription.active
Utfärdar grants för alla kopplade entitlements som ännu inte har något grant och utfärdar på nytt grants som tidigare återkallats för samma prenumeration. Grants som återkallats med manual, refund eller platform_external utfärdas inte på nytt.
subscription.renewed
Ingen ändring. Befintliga grants kvarstår vid förnyelser.
subscription.past_due
Ingen ändring. Grants förblir levererade under hela grace period.
subscription.on_hold
Återkallar alla levererade och väntande grants med revocation_reason: subscription_on_hold.
subscription.paused
Återkallar alla levererade och väntande grants med revocation_reason: SubscriptionPaused. Till skillnad från de andra prenumerationsorsakerna använder detta värde PascalCase, så matcha det exakt.
subscription.unpaused
Utfärdar på nytt grants som tidigare återkallats för samma prenumeration, på samma sätt som subscription.active.
subscription.cancelled
Återkallar alla grants med revocation_reason: subscription_cancelled.
subscription.expired
Återkallar alla grants med revocation_reason: subscription_expired.
subscription.plan_changed
Återkallar alla aktuella grants med revocation_reason: plan_changed och utfärdar sedan grants för den nya planens entitlements.
refund.succeeded (engångsbetalning)
Återkallar grants för betalningen med revocation_reason: refund.
Manuell API-återkallelse
Återkallar grantet med revocation_reason: manual. Manuella återkallelser utfärdas inte automatiskt på nytt vid förnyelse av prenumerationen.
Licensnyckel inaktiverad
För grants för licensnycklar återkallar inaktivering av den underliggande nyckeln grantet med revocation_reason: license_key_disabled. Om nyckeln aktiveras igen återställs grantet automatiskt.
Plattformavvikelse upptäckt
Om integrationsplattformens sida hamnar ur synk, till exempel om en Discord-roll tas bort manuellt, GitHub App förlorar åtkomst till repositoryt eller en avstämning hittar ett saknat mål, återkallar Dodo Payments grantet med revocation_reason: platform_external. Det utfärdas inte automatiskt på nytt vid prenumerationsförnyelse förrän plattformsproblemet har lösts.
Prenumerationsstyrda grants är idempotenta per (entitlement, customer, subscription), så förnyelser och återaktiveringar skapar inte dubbletter av grants. Engångsgrants är idempotenta per (entitlement, customer, payment).
Gå till Entitlements i dashboarden och klicka på + för att skapa en entitlement.
2
Pick an Integration
Välj integrationstyp: License Key, Digital Files, Feature Flag, Discord, GitHub, Telegram, Figma, Framer eller Notion. För en plattformsintegration ansluter du ditt konto först om du inte redan har gjort det.
3
Configure Delivery
Fyll i fälten för integrationen. GitHub frågar till exempel efter ett repository och en behörighetsnivå, Discord efter en server och en valfri roll, och License Key efter en aktiveringsgräns och en licenslängd.
Creating a GitHub entitlement. Each integration shows the fields it needs.
4
Save
Klicka på Create Entitlement. Du kan nu koppla entiteln till valfri produkt.
Öppna en produkt, gå till avsnittet Entitlements och välj de entitlements som ska levereras när produkten köps. En produkt kan leverera flera entitlements samtidigt. En Pro-plan kan till exempel innehålla en licensnyckel, GitHub-åtkomst och en Discord-roll.
Attaching entitlements to a product. Selected entitlements are delivered on every successful purchase or active subscription.
Efter ett köp får kunden ett leveransmejl med licensnyckeln, nedladdningslänkar, OAuth-inbjudningslänkar eller den plattformsinbjudan som gäller för produktens entitlements. Samma uppgifter finns kvar i Customer Portal, under orderhistoriken, så länge grantet är aktivt.
Åtkomst för prenumeranter via Discord, GitHub och Notion kräver att kunden auktoriserar Dodo Payments att bevilja åtkomsten. Dessa grants förblir Pending tills kunden slutför OAuth-flödet via länken i sitt mejl eller Customer Portal. När kunden har auktoriserat övergår grantet till Delivered och Dodo Payments provisionerar plattformsåtkomsten.
När ett grant återkallas tar Dodo Payments bort åtkomsten på plattformen: Discord-rollen tas bort, GitHub-samarbetspartnern tas bort eller licensnyckeln inaktiveras. Kunden ser ändringen i Customer Portal.
För Digital Files stoppar en återkallelse nya försignerade nedladdnings-URL:er, men ogiltigförklarar inte kopior som kunden redan har laddat ner. Planera din innehållsstyrning med detta i åtanke.
Öppna valfri entitlement från dashboarden för att se dess grants. Detaljpanelen visar totalt antal utfärdade grants, ett statusfilter och en rad per grant med kunden, datumet då åtkomsten användes, statusen och åtgärden Revoke.Om du vill hantera grants programmatiskt listar du dem med filtret status och återkallar ett enskilt grant med dess ID:
import DodoPayments from 'dodopayments';const client = new DodoPayments({ bearerToken: process.env['DODO_PAYMENTS_API_KEY'],});// List grants for an entitlementconst grants = await client.entitlements.grants.list('ent_abc123', { status: 'Delivered',});// Revoke a single grantawait client.entitlements.grants.revoke('entg_xyz789', { id: 'ent_abc123',});
Dodo Payments skickar fyra webhook-händelser för grant-livscykeln. Prenumerera på dem för att hålla din applikation synkroniserad med vad varje kund har åtkomst till.
Händelse
Utlöses när
entitlement_grant.created
Ett grant skapas. Automatiskt uppfyllda grants för licensnycklar och grants för feature flags anländer som Delivered. Manuellt uppfyllda grants för licensnycklar och alla andra integrationer anländer som Pending och övergår sedan till Delivered när plattformsanropet lyckas eller, för OAuth-baserade integrationer, när kunden auktoriserar.
entitlement_grant.delivered
Ett befintligt grant övergår till Delivered, så kunden får nu åtkomst. Ett grant som är Delivered när det skapas utlöser endast created.
entitlement_grant.failed
Grantet kunde inte levereras. Kontrollera error_code och error_message.
entitlement_grant.revoked
Åtkomsten har dragits tillbaka. Kontrollera revocation_reason.
Entitlement Grant Webhook Payloads
Visa hela payload-schemat, exempel på händelser och referensen revocation_reason.
Använd en entitlement per leveranskanal. Dela inte en Discord-entitlement mellan produkter med olika rollsyften. Skapa en entitlement per roll så att återkallelse förblir tydlig.
Testa i testläge först. Skapa entiteln, koppla den till en testprodukt, genomför en checkout och följ grantet från Pending till Delivered. Avsluta sedan testprenumerationen och bekräfta att grantet har återkallats.
Lyssna på entitlement_grant.delivered, inte payment.succeeded. En betalning kan lyckas innan fulfillment är slutförd, särskilt för OAuth-flöden. Vänta tills grantet når Delivered innan du låser upp beroende funktioner i dina egna system. Ett grant som levereras vid skapandet, till exempel en automatiskt uppfylld licensnyckel eller en feature flag, anländer i stället som entitlement_grant.created med status: "Delivered".
Behandla entitlement_grant.failed som åtgärdskrävande. Ett misslyckat grant innebär att en kund har betalat men inte fått åtkomst. Visa dessa grants för ditt supportteam eller utlös en ny grant.
Koppla revocation_reason till dina retention-flöden. En subscription_on_hold-återkallelse kan återställas eftersom kunden kanske uppdaterar sitt kort. En manual-återkallelse är avsiktlig. Behandla dem olika i kundmeddelanden.
Återkalla inte åtkomst vid subscription.past_due. Den händelsen öppnar en grace period, och kunden behåller åtkomsten tills perioden löper ut. Vänta på subscription.on_hold eller subscription.cancelled.
Senast ändrad 26 september 2026
Var denna sida till hjälp?
⌘I
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Dodo Payments Documentation","description":"Documentation for Dodo Payments — the all-in-one payments, billing, and merchant of record platform for SaaS, AI, and digital products.","colors":{"primary":"#779812","light":"#C6FE1E","dark":"#166534"},"logo":{"light":"https://mintcdn.com/dodopayments/nM_mJfYkri-OpC5M/logo/light.svg?fit=max\u0026auto=format\u0026n=nM_mJfYkri-OpC5M\u0026q=85\u0026s=23f7a052f7ecb9d6570b7c95ee359a97","dark":"https://mintcdn.com/dodopayments/nM_mJfYkri-OpC5M/logo/dark.svg?fit=max\u0026auto=format\u0026n=nM_mJfYkri-OpC5M\u0026q=85\u0026s=cd6c20238a54526436f21c43fee51b26"},"favicon":"https://mintcdn.com/dodopayments/doYQc9oUE-WNz0cs/favicon.svg?fit=max\u0026auto=format\u0026n=doYQc9oUE-WNz0cs\u0026q=85\u0026s=271c6cc8ce7d6bf4d7f2b9cca029e004","background":{"color":{"light":"#FFFFFF","dark":"#0D0D0D"}},"navbar":{"links":[{"icon":"link","href":"https://docs.dodopayments.com/llms-full.txt","label":"llms-full.txt"},{"icon":"discord","href":"https://discord.gg/bYqAp4ayYh","label":"Community"},{"icon":"house","href":"https://app.dodopayments.com/","label":"Dashboard"}]},"footer":{"socials":{"x":"https://x.com/dodopayments","linkedin":"https://linkedin.com/company/dodopayments","website":"https://dodopayments.com","discord":"https://discord.gg/bYqAp4ayYh","github":"https://github.com/dodopayments","instagram":"https://www.instagram.com/dodo.payments","facebook":"https://www.facebook.com/profile.php?id=61565515607280"}},"seo":{"metatags":{"og:site_name":"Dodo Payments Documentation","twitter:card":"summary_large_image"},"indexing":"navigable"},"fonts":{"heading":{"family":"ApfelGrotezk","weight":400,"source":"fonts/ApfelGrotezk-Regular.woff2","format":"woff2"},"body":{"family":"Inter","weight":400,"source":"fonts/Inter-Variable.woff2","format":"woff2"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","cursor"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":"introduction"},{"language":"es","href":"es/introduction"},{"language":"ar","href":"ar/introduction"},{"language":"fr","href":"fr/introduction"},{"language":"de","href":"de/introduction"},{"language":"id","href":"id/introduction"},{"language":"ja","href":"ja/introduction"},{"language":"ko","href":"ko/introduction"},{"language":"pt-BR","href":"pt-BR/introduction"},{"language":"vi","href":"vi/introduction"},{"language":"cn","href":"cn/introduction"},{"language":"hi","href":"hi/introduction"},{"language":"it","href":"it/introduction"},{"language":"sv","href":"sv/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"dodopayments","hasAudioNarration":false,"actualSubdomain":"dodopayments","customDomains":["docs.dodopayments.com"],"gitSource":{"type":"github","owner":"dodopayments","repo":"dodo-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af4027c778b6a49d3c24d62","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"en","tag":"API Reference","count":181},{"language":"en","tag":"Docs","count":176},{"language":"ar","tag":"Docs","count":153},{"language":"cn","tag":"Docs","count":153},{"language":"de","tag":"Docs","count":153},{"language":"es","tag":"Docs","count":153},{"language":"fr","tag":"Docs","count":153},{"language":"hi","tag":"Docs","count":153},{"language":"id","tag":"Docs","count":153},{"language":"it","tag":"Docs","count":153},{"language":"ja","tag":"Docs","count":153},{"language":"ko","tag":"Docs","count":153},{"language":"pt-BR","tag":"Docs","count":153},{"language":"sv","tag":"Docs","count":153},{"language":"vi","tag":"Docs","count":153},{"language":"ar","tag":"API Reference","count":151},{"language":"cn","tag":"API Reference","count":151},{"language":"de","tag":"API Reference","count":151},{"language":"es","tag":"API Reference","count":151},{"language":"fr","tag":"API Reference","count":151},{"language":"hi","tag":"API Reference","count":151},{"language":"id","tag":"API Reference","count":151},{"language":"it","tag":"API Reference","count":151},{"language":"ja","tag":"API Reference","count":151},{"language":"ko","tag":"API Reference","count":151},{"language":"pt-BR","tag":"API Reference","count":151},{"language":"sv","tag":"API Reference","count":151},{"language":"vi","tag":"API Reference","count":151},{"language":"en","tag":"Features","count":86},{"language":"ar","tag":"Features","count":81},{"language":"cn","tag":"Features","count":81},{"language":"de","tag":"Features","count":81},{"language":"es","tag":"Features","count":81},{"language":"fr","tag":"Features","count":81},{"language":"hi","tag":"Features","count":81},{"language":"id","tag":"Features","count":81},{"language":"it","tag":"Features","count":81},{"language":"ja","tag":"Features","count":81},{"language":"ko","tag":"Features","count":81},{"language":"pt-BR","tag":"Features","count":81},{"language":"sv","tag":"Features","count":81},{"language":"vi","tag":"Features","count":81},{"language":"en","tag":"Integrate","count":74},{"language":"en","tag":"Changelog","count":66},{"language":"ar","tag":"Changelog","count":65},{"language":"cn","tag":"Changelog","count":65},{"language":"de","tag":"Changelog","count":65},{"language":"es","tag":"Changelog","count":65},{"language":"fr","tag":"Changelog","count":65},{"language":"hi","tag":"Changelog","count":65},{"language":"id","tag":"Changelog","count":65},{"language":"it","tag":"Changelog","count":65},{"language":"ja","tag":"Changelog","count":65},{"language":"ko","tag":"Changelog","count":65},{"language":"pt-BR","tag":"Changelog","count":65},{"language":"sv","tag":"Changelog","count":65},{"language":"vi","tag":"Changelog","count":65},{"language":"ar","tag":"Integrate","count":59},{"language":"cn","tag":"Integrate","count":59},{"language":"de","tag":"Integrate","count":59},{"language":"es","tag":"Integrate","count":59},{"language":"fr","tag":"Integrate","count":59},{"language":"hi","tag":"Integrate","count":59},{"language":"id","tag":"Integrate","count":59},{"language":"it","tag":"Integrate","count":59},{"language":"ja","tag":"Integrate","count":59},{"language":"ko","tag":"Integrate","count":59},{"language":"pt-BR","tag":"Integrate","count":59},{"language":"sv","tag":"Integrate","count":59},{"language":"vi","tag":"Integrate","count":59},{"language":"en","tag":"External Integrations","count":33},{"language":"ar","tag":"External Integrations","count":30},{"language":"cn","tag":"External Integrations","count":30},{"language":"de","tag":"External Integrations","count":30},{"language":"es","tag":"External Integrations","count":30},{"language":"fr","tag":"External Integrations","count":30},{"language":"hi","tag":"External Integrations","count":30},{"language":"id","tag":"External Integrations","count":30},{"language":"it","tag":"External Integrations","count":30},{"language":"ja","tag":"External Integrations","count":30},{"language":"ko","tag":"External Integrations","count":30},{"language":"pt-BR","tag":"External Integrations","count":30},{"language":"sv","tag":"External Integrations","count":30},{"language":"vi","tag":"External Integrations","count":30},{"language":"en","tag":"Webhooks","count":23},{"language":"ar","tag":"Webhooks","count":23},{"language":"cn","tag":"Webhooks","count":23},{"language":"de","tag":"Webhooks","count":23},{"language":"es","tag":"Webhooks","count":23},{"language":"fr","tag":"Webhooks","count":23},{"language":"hi","tag":"Webhooks","count":23},{"language":"id","tag":"Webhooks","count":23},{"language":"it","tag":"Webhooks","count":23},{"language":"ja","tag":"Webhooks","count":23},{"language":"ko","tag":"Webhooks","count":23},{"language":"pt-BR","tag":"Webhooks","count":23},{"language":"sv","tag":"Webhooks","count":23},{"language":"vi","tag":"Webhooks","count":23},{"language":"en","tag":"Guides","count":22},{"language":"ar","tag":"Guides","count":22},{"language":"cn","tag":"Guides","count":22},{"language":"de","tag":"Guides","count":22},{"language":"es","tag":"Guides","count":22},{"language":"fr","tag":"Guides","count":22},{"language":"hi","tag":"Guides","count":22},{"language":"id","tag":"Guides","count":22},{"language":"it","tag":"Guides","count":22},{"language":"ja","tag":"Guides","count":22},{"language":"ko","tag":"Guides","count":22},{"language":"pt-BR","tag":"Guides","count":22},{"language":"sv","tag":"Guides","count":22},{"language":"vi","tag":"Guides","count":22},{"language":"en","tag":"Entitlements","count":20},{"language":"ar","tag":"Entitlements","count":20},{"language":"cn","tag":"Entitlements","count":20},{"language":"de","tag":"Entitlements","count":20},{"language":"es","tag":"Entitlements","count":20},{"language":"fr","tag":"Entitlements","count":20},{"language":"hi","tag":"Entitlements","count":20},{"language":"id","tag":"Entitlements","count":20},{"language":"it","tag":"Entitlements","count":20},{"language":"ja","tag":"Entitlements","count":20},{"language":"ko","tag":"Entitlements","count":20},{"language":"pt-BR","tag":"Entitlements","count":20},{"language":"sv","tag":"Entitlements","count":20},{"language":"vi","tag":"Entitlements","count":20},{"language":"en","tag":"Invoices","count":17},{"language":"ar","tag":"Customers","count":16},{"language":"cn","tag":"Customers","count":16},{"language":"de","tag":"Customers","count":16},{"language":"es","tag":"Customers","count":16},{"language":"fr","tag":"Customers","count":16},{"language":"hi","tag":"Customers","count":16},{"language":"id","tag":"Customers","count":16},{"language":"it","tag":"Customers","count":16},{"language":"ja","tag":"Customers","count":16},{"language":"ko","tag":"Customers","count":16},{"language":"pt-BR","tag":"Customers","count":16},{"language":"sv","tag":"Customers","count":16},{"language":"vi","tag":"Customers","count":16}]},"assistantConfig":{"deflection":{"enabled":false,"email":"support@dodopayments.com","showHelpButton":true}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"#content-area{max-width:60rem}h1,h2,h3,h4,h5,h6{letter-spacing:0.05em!important}.welcome-page .card-group{margin:3rem auto 8rem;max-width:70rem;padding-left:1.25rem;padding-right:1.25rem}.welcome-page .card-group .card{padding:1rem}.welcome-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:20vh;text-align:center;margin-top:3rem;margin-bottom:2.5rem}.welcome-hero h1{font-size:2.5rem;font-weight:700;margin-bottom:1rem;line-height:1.2;color:#fff}.welcome-hero p{font-size:1.25rem;max-width:600px;margin:0 auto}.welcome-hero h1{color:rgb(41 42 37 / 1)}.dark .welcome-hero h1{color:rgb(255 255 255 / 1)}.welcome-hero p{color:rgb(83 85 79 / 1)}.dark .welcome-hero p{color:rgb(162 164 158 / 1)}"}],"page":{"pagePath":"sv/features/entitlements/introduction","slug":"/sv/features/entitlements/introduction","pageMetadata":{"title":"Introduktion","sidebarTitle":"Introduktion","description":"Leverera licensnycklar, nedladdningsbara filer, feature flags och åtkomst till Discord, GitHub, Telegram, Framer och Notion automatiskt när kunder betalar.","icon":"box-archive","keywords":["Dodo Payments","entitlements","uppfyllelse","licensnycklar","digital leverans","plattformåtkomst"],"href":"/sv/features/entitlements/introduction"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Leverera licensnycklar, nedladdningsbara filer, feature flags och åtkomst till Discord, GitHub, Telegram, Framer och Notion automatiskt när kunder betalar.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,CodeGroup,Frame,Heading,Info,Note,OptimizedImage,Step,Steps,Table,Tip,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Info,{children:_jsx(_components.p,{children:`Entitlements omvandlar en genomförd betalning eller en aktiv prenumeration till åtkomst: en licensnyckel i kundens inkorg, en feature flag som din app kontrollerar, en Discord-roll, ett GitHub-repository, en Notion-mall, en Framer-remixlänk, en Telegram-chattinbjudan eller ett nedladdningsbart filpaket. Dodo Payments utfärdar, spårar och återkallar åtkomsten automatiskt när betalningens livscykel förändras.`})}),`\n`,_jsx(Frame,{caption:`The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=12a326205f64d1e71485bce46114d296`,alt:`Entitlements dashboard med en lista över entitlements till vänster och grant-aktiviteter till höger`,style:{maxHeight:`500px`,width:`auto`},\"data-og-width\":`2000`,width:`2000`,\"data-og-height\":`1195`,height:`1195`,\"data-path\":`images/entitlements/list.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=d12b37e6f3daedbb84e544d08513207e 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=70afcf57fcdd38039179d3054a5eb73f 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=b1cb6ba70f564db87c9bd19f50b21f44 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=463a9ba560357d16a43e39c23ea5a042 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=8b695099d64c9bc75bef9fa1bef28541 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=9e86c8dff013279ce9c94de2b5d48338 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`vad-är-entitlements`,children:`Vad är Entitlements?`}),`\n`,_jsxs(_components.p,{children:[`En `,_jsx(_components.strong,{children:`entitlement`}),` är en återanvändbar definition av något du levererar till en kund, till exempel en Pro-licensnyckel, en Discord-roll kallad “Patrons”, åtkomst till ditt privata GitHub-repository eller ett nedladdningsbart e-bokspaket. Du kopplar entitlements till produkter, och Dodo Payments levererar dem när en kund betalar.`]}),`\n`,_jsxs(_components.p,{children:[`När en kund köper produkten skapar Dodo Payments ett `,_jsx(_components.strong,{children:`grant`}),`: en enskild kunds utfärdande av denna entitlement. Ett grant har en av fyra statusar: `,_jsx(_components.code,{children:`Pending`}),` medan leveransen pågår, `,_jsx(_components.code,{children:`Delivered`}),` när kunden har åtkomst, `,_jsx(_components.code,{children:`Failed`}),` om leveransen inte kunde slutföras och `,_jsx(_components.code,{children:`Revoked`}),` när åtkomsten dras tillbaka.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Entitlements styr `,_jsx(_components.strong,{children:`fulfillment`}),` (har kunden åtkomst?). Credits styr `,_jsx(_components.strong,{children:`förbrukning`}),` (hur mycket kan kunden använda?). Du kan koppla båda till samma produkt. Se `,_jsx(_components.a,{href:`/features/credit-based-billing`,children:`Credit-Based Billing`}),` för credits.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`tillgängliga-integrationer`,children:`Tillgängliga Integrationer`}),`\n`,_jsx(_components.p,{children:`Varje entitlement levereras genom en integration. Välj den integration som motsvarar det du säljer.`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`License Keys`,icon:`key`,href:`/features/license-keys`,children:_jsx(_components.p,{children:`Generera unika licensnycklar med aktiveringsgränser och utgångsdatum. Bäst för mjukvara, plugins och CLI:er.`})}),_jsx(Card,{title:`Digital Files`,icon:`download`,href:`/features/digital-product-delivery`,children:_jsx(_components.p,{children:`Leverera nedladdningsbara filer, till exempel e-böcker, mallar och medier, med försignerade nedladdnings-URL:er och valfria instruktioner.`})}),_jsx(Card,{title:`Feature Flags`,icon:`flag`,href:`/features/entitlements/feature-flags`,children:_jsx(_components.p,{children:`Styr funktioner i din egen app baserat på ett köp. Levereras vid skapandet, kontrolleras via API:t och återkallas vid uppsägning.`})}),_jsx(Card,{title:`Discord`,icon:`discord`,href:`/features/entitlements/discord`,children:_jsx(_components.p,{children:`Ge en kund en roll på din Discord-server när kunden köper. Rollen tas automatiskt bort vid uppsägning.`})}),_jsx(Card,{title:`GitHub`,icon:`github`,href:`/features/entitlements/github`,children:_jsx(_components.p,{children:`Lägg till kunder som samarbetspartners i ett privat förråd på den tillståndsnivå du väljer.`})}),_jsx(Card,{title:`Telegram`,icon:`telegram`,href:`/features/entitlements/telegram`,children:_jsx(_components.p,{children:`Lägg till kunder i en privat Telegram-chatt eller kanal efter köp.`})}),_jsx(Card,{title:`Framer`,icon:`puzzle-piece`,href:`/features/entitlements/framer`,children:_jsx(_components.p,{children:`Lås upp en Framer-mallremixlänk för betalande kunder.`})}),_jsx(Card,{title:`Notion`,icon:`book`,href:`/features/entitlements/notion`,children:_jsx(_components.p,{children:`Dubbletter en Notion-mall till kundens arbetsyta vid köp.`})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`hur-rättigheterna-fungerar`,children:`Hur rättigheterna fungerar`}),`\n`,_jsx(_components.p,{children:`Grants följer samma betalnings- och prenumerationshändelser som du tar emot som webhooks. Dodo Payments skapar och återkallar automatiskt grants för köp baserat på betalningens livscykel, så du behöver inte anropa grant-API:t själv.`}),`\n`,_jsx(Heading,{level:`3`,id:`rättigheternas-livscykel`,children:`Rättigheternas livscykel`}),`\n`,_jsx(_components.p,{children:`Ett grant går igenom följande statusar:`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Created`,children:[_jsxs(_components.p,{children:[`Dodo Payments skapar ett grant när en betalning slutförs eller en prenumeration blir aktiv. Grants för feature flags börjar som `,_jsx(_components.code,{children:`Delivered`}),`. Grants för licensnycklar börjar också som `,_jsx(_components.code,{children:`Delivered`}),` när entiteln använder `,_jsx(_components.code,{children:`fulfillment_mode: auto`}),` (standardvärdet). Med `,_jsx(_components.code,{children:`fulfillment_mode: manual`}),` börjar grantet som `,_jsx(_components.code,{children:`Pending`}),` utan nyckel tills du tillhandahåller en med `,_jsx(_components.a,{href:`/api-reference/entitlements/fulfill-license-key`,children:`Fulfill License Key Grant`}),`. Alla andra integrationer börjar som `,_jsx(_components.code,{children:`Pending`}),`.`]}),_jsxs(_components.p,{children:[`OAuth-baserade integrationer (Discord, GitHub, Notion) exponerar en `,_jsx(_components.code,{children:`oauth_url`}),` som kunden besöker för att ge sitt samtycke. Dodo Payments försöker generera denna URL när grantet skapas. Om det misslyckas förblir fältet `,_jsx(_components.code,{children:`null`}),` tills kunden startar accept-flödet från sitt leveransmejl eller Customer Portal. Plattformdirekta integrationer (Telegram, Framer, Digital Files) förblir `,_jsx(_components.code,{children:`Pending`}),` endast medan leveransen provisioneras och övergår sedan till `,_jsx(_components.code,{children:`Delivered`}),`.`]})]}),_jsx(Step,{title:`Delivered`,children:_jsxs(_components.p,{children:[`När leveransen är slutförd övergår grantet till `,_jsx(_components.code,{children:`Delivered`}),` och `,_jsx(_components.code,{children:`delivered_at`}),` anges. Leveransen är slutförd när licensnyckeln har genererats, rollen har tilldelats, åtkomsten till repositoryt har beviljats, fillänkarna har lösts eller OAuth-flödet har slutförts.`]})}),_jsx(Step,{title:`Failed`,children:_jsxs(_components.p,{children:[`Om integrationsanropet returnerar ett fel som inte kan försökas igen, till exempel en återkallad OAuth-token, nekad behörighet eller en fil som inte längre finns, övergår grantet till `,_jsx(_components.code,{children:`Failed`}),`. Fälten `,_jsx(_components.code,{children:`error_code`}),` och `,_jsx(_components.code,{children:`error_message`}),` registrerar orsaken.`]})}),_jsx(Step,{title:`Revoked`,children:_jsxs(_components.p,{children:[`När åtkomsten dras tillbaka, till exempel för att en prenumeration avslutas, en återbetalning utfärdas eller du återkallar grantet, övergår grantet till `,_jsx(_components.code,{children:`Revoked`}),`. Fältet `,_jsx(_components.code,{children:`revocation_reason`}),` registrerar utlösaren.`]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`grant-beteende-per-händelse`,children:`Grant-beteende per händelse`}),`\n`,_jsx(_components.p,{children:`Varje betalnings- och prenumerationshändelse ändrar grants enligt följande:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Händelse`}),_jsx(_components.th,{children:`Beteende`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`payment.succeeded`}),` (engångsbetalning)`]}),_jsx(_components.td,{children:`Utfärdar ett grant per kopplad entitlement. En License Key-entitlement utfärdar ett grant per nyckel.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`payment.succeeded`}),` (prenumerationskopplad betalning)`]}),_jsx(_components.td,{children:`Ingen ändring. Prenumerationshändelserna nedan styr dessa grants.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.active`})}),_jsxs(_components.td,{children:[`Utfärdar grants för alla kopplade entitlements som ännu inte har något grant och utfärdar på nytt grants som tidigare återkallats för samma prenumeration. Grants som återkallats med `,_jsx(_components.code,{children:`manual`}),`, `,_jsx(_components.code,{children:`refund`}),` eller `,_jsx(_components.code,{children:`platform_external`}),` utfärdas inte på nytt.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.renewed`})}),_jsx(_components.td,{children:`Ingen ändring. Befintliga grants kvarstår vid förnyelser.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.past_due`})}),_jsxs(_components.td,{children:[`Ingen ändring. Grants förblir levererade under hela `,_jsx(_components.a,{href:`/features/subscription#grace-period`,children:`grace period`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.on_hold`})}),_jsxs(_components.td,{children:[`Återkallar alla levererade och väntande grants med `,_jsx(_components.code,{children:`revocation_reason: subscription_on_hold`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.paused`})}),_jsxs(_components.td,{children:[`Återkallar alla levererade och väntande grants med `,_jsx(_components.code,{children:`revocation_reason: SubscriptionPaused`}),`. Till skillnad från de andra prenumerationsorsakerna använder detta värde PascalCase, så matcha det exakt.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.unpaused`})}),_jsxs(_components.td,{children:[`Utfärdar på nytt grants som tidigare återkallats för samma prenumeration, på samma sätt som `,_jsx(_components.code,{children:`subscription.active`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.cancelled`})}),_jsxs(_components.td,{children:[`Återkallar alla grants med `,_jsx(_components.code,{children:`revocation_reason: subscription_cancelled`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.expired`})}),_jsxs(_components.td,{children:[`Återkallar alla grants med `,_jsx(_components.code,{children:`revocation_reason: subscription_expired`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription.plan_changed`})}),_jsxs(_components.td,{children:[`Återkallar alla aktuella grants med `,_jsx(_components.code,{children:`revocation_reason: plan_changed`}),` och utfärdar sedan grants för den nya planens entitlements.`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`refund.succeeded`}),` (engångsbetalning)`]}),_jsxs(_components.td,{children:[`Återkallar grants för betalningen med `,_jsx(_components.code,{children:`revocation_reason: refund`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Manuell API-återkallelse`}),_jsxs(_components.td,{children:[`Återkallar grantet med `,_jsx(_components.code,{children:`revocation_reason: manual`}),`. Manuella återkallelser utfärdas inte automatiskt på nytt vid förnyelse av prenumerationen.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Licensnyckel inaktiverad`}),_jsxs(_components.td,{children:[`För grants för licensnycklar återkallar inaktivering av den underliggande nyckeln grantet med `,_jsx(_components.code,{children:`revocation_reason: license_key_disabled`}),`. Om nyckeln aktiveras igen återställs grantet automatiskt.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Plattformavvikelse upptäckt`}),_jsxs(_components.td,{children:[`Om integrationsplattformens sida hamnar ur synk, till exempel om en Discord-roll tas bort manuellt, GitHub App förlorar åtkomst till repositoryt eller en avstämning hittar ett saknat mål, återkallar Dodo Payments grantet med `,_jsx(_components.code,{children:`revocation_reason: platform_external`}),`. Det utfärdas inte automatiskt på nytt vid prenumerationsförnyelse förrän plattformsproblemet har lösts.`]})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Prenumerationsstyrda grants är idempotenta per `,_jsx(_components.code,{children:`(entitlement, customer, subscription)`}),`, så förnyelser och återaktiveringar skapar inte dubbletter av grants. Engångsgrants är idempotenta per `,_jsx(_components.code,{children:`(entitlement, customer, payment)`}),`.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`skapa-din-första-entitlement`,children:`Skapa din första entitlement`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Entitlements`,children:_jsxs(_components.p,{children:[`Gå till `,_jsx(_components.strong,{children:`Entitlements`}),` i dashboarden och klicka på `,_jsx(_components.strong,{children:`+`}),` för att skapa en entitlement.`]})}),_jsx(Step,{title:`Pick an Integration`,children:_jsx(_components.p,{children:`Välj integrationstyp: License Key, Digital Files, Feature Flag, Discord, GitHub, Telegram, Figma, Framer eller Notion. För en plattformsintegration ansluter du ditt konto först om du inte redan har gjort det.`})}),_jsxs(Step,{title:`Configure Delivery`,children:[_jsx(_components.p,{children:`Fyll i fälten för integrationen. GitHub frågar till exempel efter ett repository och en behörighetsnivå, Discord efter en server och en valfri roll, och License Key efter en aktiveringsgräns och en licenslängd.`}),_jsx(Frame,{caption:`Creating a GitHub entitlement. Each integration shows the fields it needs.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=722e925ec5158a5d16c58213132ccb9d`,alt:`Formuläret New Entitlement med integrationsväljare och konfigurationsfält`,style:{maxHeight:`500px`,width:`auto`},\"data-og-width\":`2000`,width:`2000`,\"data-og-height\":`1130`,height:`1130`,\"data-path\":`images/entitlements/github/create.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=27f80ec98d393359ca3136524a0ad9d8 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=6cf0a907fa86298b9ad896b1a604fa0b 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=a34a563dad17160d3c13067e3a349f3c 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=fc893072e5f07d021b962b0bdd87933c 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=222cfaf3c0ac63f69d8494d7387d3e22 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=f6b547a74f61c76b6735d3e92c4960d8 2500w`})})]}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Klicka på `,_jsx(_components.strong,{children:`Create Entitlement`}),`. Du kan nu koppla entiteln till valfri produkt.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`koppla-entitlements-till-produkter`,children:`Koppla entitlements till produkter`}),`\n`,_jsxs(_components.p,{children:[`Öppna en produkt, gå till avsnittet `,_jsx(_components.strong,{children:`Entitlements`}),` och välj de entitlements som ska levereras när produkten köps. En produkt kan leverera flera entitlements samtidigt. En Pro-plan kan till exempel innehålla en licensnyckel, GitHub-åtkomst och en Discord-roll.`]}),`\n`,_jsx(Frame,{caption:`Attaching entitlements to a product. Selected entitlements are delivered on every successful purchase or active subscription.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=965ad78262791fa8dbb712b4fdf89538`,alt:`Panel för val av produktentitlement som visar kryssrutor för varje tillgänglig entitlement`,style:{maxHeight:`500px`,width:`auto`},\"data-og-width\":`2000`,width:`2000`,\"data-og-height\":`1197`,height:`1197`,\"data-path\":`images/entitlements/attach-to-product.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=280\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=4b98785a408414890f3247f318c96740 280w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=560\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=64f89fb68e337ec53ff48c75f0c4dc4e 560w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=840\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=2c289e402cf161b27d7c0f90b81ccd6f 840w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=1100\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=0632a046cb6d1c5e6529f3d63911f5d8 1100w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=1650\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=7e9d6f96690fcd3e53eebef77df2d279 1650w, https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?w=2500\u0026fit=max\u0026auto=format\u0026n=do-W-dMDGVB_xzr_\u0026q=85\u0026s=adbc6c5a189350107f9faf43b2a47224 2500w`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`kundupplevelse`,children:`Kundupplevelse`}),`\n`,_jsx(Heading,{level:`3`,id:`e-post-och-customer-portal`,children:`E-post och Customer Portal`}),`\n`,_jsxs(_components.p,{children:[`Efter ett köp får kunden ett leveransmejl med licensnyckeln, nedladdningslänkar, OAuth-inbjudningslänkar eller den plattformsinbjudan som gäller för produktens entitlements. Samma uppgifter finns kvar i `,_jsx(_components.a,{href:`/features/customer-portal`,children:`Customer Portal`}),`, under orderhistoriken, så länge grantet är aktivt.`]}),`\n`,_jsx(Heading,{level:`3`,id:`oauth-baserad-leverans`,children:`OAuth-baserad leverans`}),`\n`,_jsxs(_components.p,{children:[`Åtkomst för prenumeranter via Discord, GitHub och Notion kräver att kunden auktoriserar Dodo Payments att bevilja åtkomsten. Dessa grants förblir `,_jsx(_components.code,{children:`Pending`}),` tills kunden slutför OAuth-flödet via länken i sitt mejl eller Customer Portal. När kunden har auktoriserat övergår grantet till `,_jsx(_components.code,{children:`Delivered`}),` och Dodo Payments provisionerar plattformsåtkomsten.`]}),`\n`,_jsx(Heading,{level:`3`,id:`återkallelse`,children:`Återkallelse`}),`\n`,_jsx(_components.p,{children:`När ett grant återkallas tar Dodo Payments bort åtkomsten på plattformen: Discord-rollen tas bort, GitHub-samarbetspartnern tas bort eller licensnyckeln inaktiveras. Kunden ser ändringen i Customer Portal.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`För Digital Files stoppar en återkallelse nya försignerade nedladdnings-URL:er, men ogiltigförklarar inte kopior som kunden redan har laddat ner. Planera din innehållsstyrning med detta i åtanke.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`hantera-grants`,children:`Hantera grants`}),`\n`,_jsxs(_components.p,{children:[`Öppna valfri entitlement från dashboarden för att se dess grants. Detaljpanelen visar totalt antal utfärdade grants, ett statusfilter och en rad per grant med kunden, datumet då åtkomsten användes, statusen och åtgärden `,_jsx(_components.strong,{children:`Revoke`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Om du vill hantera grants programmatiskt listar du dem med filtret `,_jsx(_components.code,{children:`status`}),` och återkallar ett enskilt grant med dess ID:`]}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`TypeScript`,expandable:`true`,numberOfLines:`15`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`15`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` DodoPayments`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'dodopayments'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` DodoPayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` bearerToken:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'DODO_PAYMENTS_API_KEY'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// List grants for an entitlement`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` grants`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`entitlements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`list`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'ent_abc123'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` status:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Delivered'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Revoke a single grant`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`entitlements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`revoke`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'entg_xyz789'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` id:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'ent_abc123'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,expandable:`true`,numberOfLines:`10`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Assumes client = DodoPayments(bearer_token=os.environ[\"DODO_PAYMENTS_API_KEY\"])`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`grants `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` client.entitlements.grants.list(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ent_abc123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` status`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Delivered\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`client.entitlements.grants.revoke(`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"entg_xyz789\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ent_abc123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Go`,expandable:`true`,numberOfLines:`13`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Assumes client := dodopayments.NewClient() and ctx := context.Background().`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Entitlements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`List`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ctx`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ent_abc123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`EntitlementGrantListParams`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Status`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`F`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dodopayments`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`EntitlementGrantListParamsStatusDelivered`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` nil`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` panic`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`())`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`fmt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Println`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`len`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Items`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`))`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`_`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Entitlements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Grants`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Revoke`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ctx`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ent_abc123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"entg_xyz789\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`api-hantering`,children:`API-hantering`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Create Entitlement`,icon:`plus`,href:`/api-reference/entitlements/create-entitlement`,children:_jsx(_components.p,{children:`Skapa en entitlement av valfri integrationstyp.`})}),_jsx(Card,{title:`List Entitlements`,icon:`list`,href:`/api-reference/entitlements/list-entitlements`,children:_jsx(_components.p,{children:`Lista entitlements, filtrerade efter integrationstyp.`})}),_jsx(Card,{title:`Get Entitlement`,icon:`magnifying-glass`,href:`/api-reference/entitlements/get-entitlement`,children:_jsx(_components.p,{children:`Hämta en entitlement och dess lösta konfiguration.`})}),_jsx(Card,{title:`Update Entitlement`,icon:`pen`,href:`/api-reference/entitlements/update-entitlement`,children:_jsx(_components.p,{children:`Uppdatera namnet, beskrivningen eller integrationskonfigurationen.`})}),_jsx(Card,{title:`Delete Entitlement`,icon:`trash`,href:`/api-reference/entitlements/delete-entitlement`,children:_jsx(_components.p,{children:`Mjukradera en entitlement. Befintliga grants återkallas inte, men Dodo Payments hanterar dem inte längre.`})}),_jsx(Card,{title:`Upload File`,icon:`upload`,href:`/api-reference/entitlements/upload-file`,children:_jsx(_components.p,{children:`Ladda upp en fil på upp till 500 MiB till en Digital Files-entitlement.`})}),_jsx(Card,{title:`List Grants`,icon:`users`,href:`/api-reference/entitlements/list-grants`,children:_jsx(_components.p,{children:`Lista en entitlements grants, filtrerade efter status och kund.`})}),_jsx(Card,{title:`Revoke Grant`,icon:`ban`,href:`/api-reference/entitlements/revoke-grant`,children:_jsx(_components.p,{children:`Återkalla ett enskilt grant manuellt.`})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`webhooks`,children:`Webhooks`}),`\n`,_jsx(_components.p,{children:`Dodo Payments skickar fyra webhook-händelser för grant-livscykeln. Prenumerera på dem för att hålla din applikation synkroniserad med vad varje kund har åtkomst till.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Händelse`}),_jsx(_components.th,{children:`Utlöses när`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`entitlement_grant.created`})}),_jsxs(_components.td,{children:[`Ett grant skapas. Automatiskt uppfyllda grants för licensnycklar och grants för feature flags anländer som `,_jsx(_components.code,{children:`Delivered`}),`. Manuellt uppfyllda grants för licensnycklar och alla andra integrationer anländer som `,_jsx(_components.code,{children:`Pending`}),` och övergår sedan till `,_jsx(_components.code,{children:`Delivered`}),` när plattformsanropet lyckas eller, för OAuth-baserade integrationer, när kunden auktoriserar.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`entitlement_grant.delivered`})}),_jsxs(_components.td,{children:[`Ett befintligt grant övergår till `,_jsx(_components.code,{children:`Delivered`}),`, så kunden får nu åtkomst. Ett grant som är `,_jsx(_components.code,{children:`Delivered`}),` när det skapas utlöser endast `,_jsx(_components.code,{children:`created`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`entitlement_grant.failed`})}),_jsxs(_components.td,{children:[`Grantet kunde inte levereras. Kontrollera `,_jsx(_components.code,{children:`error_code`}),` och `,_jsx(_components.code,{children:`error_message`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`entitlement_grant.revoked`})}),_jsxs(_components.td,{children:[`Åtkomsten har dragits tillbaka. Kontrollera `,_jsx(_components.code,{children:`revocation_reason`}),`.`]})]})]})]}),`\n`,_jsx(Card,{title:`Entitlement Grant Webhook Payloads`,icon:`bell`,href:`/developer-resources/webhooks/intents/entitlement-grant`,children:_jsxs(_components.p,{children:[`Visa hela payload-schemat, exempel på händelser och referensen `,_jsx(_components.code,{children:`revocation_reason`}),`.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`bästa-praxis`,children:`Bästa praxis`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Använd en entitlement per leveranskanal.`}),` Dela inte en Discord-entitlement mellan produkter med olika rollsyften. Skapa en entitlement per roll så att återkallelse förblir tydlig.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Testa i testläge först.`}),` Skapa entiteln, koppla den till en testprodukt, genomför en checkout och följ grantet från `,_jsx(_components.code,{children:`Pending`}),` till `,_jsx(_components.code,{children:`Delivered`}),`. Avsluta sedan testprenumerationen och bekräfta att grantet har återkallats.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Lyssna på `,_jsx(_components.code,{children:`entitlement_grant.delivered`}),`, inte `,_jsx(_components.code,{children:`payment.succeeded`}),`.`]}),` En betalning kan lyckas innan fulfillment är slutförd, särskilt för OAuth-flöden. Vänta tills grantet når `,_jsx(_components.code,{children:`Delivered`}),` innan du låser upp beroende funktioner i dina egna system. Ett grant som levereras vid skapandet, till exempel en automatiskt uppfylld licensnyckel eller en feature flag, anländer i stället som `,_jsx(_components.code,{children:`entitlement_grant.created`}),` med `,_jsx(_components.code,{children:`status: \"Delivered\"`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Behandla `,_jsx(_components.code,{children:`entitlement_grant.failed`}),` som åtgärdskrävande.`]}),` Ett misslyckat grant innebär att en kund har betalat men inte fått åtkomst. Visa dessa grants för ditt supportteam eller utlös en ny grant.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Koppla `,_jsx(_components.code,{children:`revocation_reason`}),` till dina retention-flöden.`]}),` En `,_jsx(_components.code,{children:`subscription_on_hold`}),`-återkallelse kan återställas eftersom kunden kanske uppdaterar sitt kort. En `,_jsx(_components.code,{children:`manual`}),`-återkallelse är avsiktlig. Behandla dem olika i kundmeddelanden.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Återkalla inte åtkomst vid `,_jsx(_components.code,{children:`subscription.past_due`}),`.`]}),` Den händelsen öppnar en `,_jsx(_components.a,{href:`/features/subscription#grace-period`,children:`grace period`}),`, och kunden behåller åtkomsten tills perioden löper ut. Vänta på `,_jsx(_components.code,{children:`subscription.on_hold`}),` eller `,_jsx(_components.code,{children:`subscription.cancelled`}),`.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Introduktion","sidebarTitle":"Introduktion","description":"Leverera licensnycklar, nedladdningsbara filer, feature flags och åtkomst till Discord, GitHub, Telegram, Framer och Notion automatiskt när kunder betalar.","icon":"box-archive","keywords":["Dodo Payments","entitlements","uppfyllelse","licensnycklar","digital leverans","plattformåtkomst"],"href":"/sv/features/entitlements/introduction"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Vad är Entitlements?","slug":"vad-är-entitlements","depth":2,"children":[]},{"title":"Tillgängliga Integrationer","slug":"tillgängliga-integrationer","depth":2,"children":[]},{"title":"Hur rättigheterna fungerar","slug":"hur-rättigheterna-fungerar","depth":2,"children":[{"title":"Rättigheternas livscykel","slug":"rättigheternas-livscykel","depth":3,"children":[]},{"title":"Grant-beteende per händelse","slug":"grant-beteende-per-händelse","depth":3,"children":[]}]},{"title":"Skapa din första entitlement","slug":"skapa-din-första-entitlement","depth":2,"children":[]},{"title":"Koppla entitlements till produkter","slug":"koppla-entitlements-till-produkter","depth":2,"children":[]},{"title":"Kundupplevelse","slug":"kundupplevelse","depth":2,"children":[{"title":"E-post och Customer Portal","slug":"e-post-och-customer-portal","depth":3,"children":[]},{"title":"OAuth-baserad leverans","slug":"oauth-baserad-leverans","depth":3,"children":[]},{"title":"Återkallelse","slug":"återkallelse","depth":3,"children":[]}]},{"title":"Hantera grants","slug":"hantera-grants","depth":2,"children":[]},{"title":"API-hantering","slug":"api-hantering","depth":2,"children":[]},{"title":"Webhooks","slug":"webhooks","depth":2,"children":[]},{"title":"Bästa praxis","slug":"bästa-praxis","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/dodopayments/0ee82a08f7b65bcb/seo.js","/_mintlify/custom/dodopayments/6f88c9bbee313616/assistant-loader.js"],"subdomain":"dodopayments","siteName":"Dodo Payments Documentation","title":"Introduktion - Dodo Payments Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/features/entitlements/introduction","matchLevel":1},"es":{"href":"/es/features/entitlements/introduction","matchLevel":1},"ar":{"href":"/ar/features/entitlements/introduction","matchLevel":1},"fr":{"href":"/fr/features/entitlements/introduction","matchLevel":1},"de":{"href":"/de/features/entitlements/introduction","matchLevel":1},"id":{"href":"/id/features/entitlements/introduction","matchLevel":1},"ja":{"href":"/ja/features/entitlements/introduction","matchLevel":1},"ko":{"href":"/ko/features/entitlements/introduction","matchLevel":1},"pt-BR":{"href":"/pt-BR/features/entitlements/introduction","matchLevel":1},"vi":{"href":"/vi/features/entitlements/introduction","matchLevel":1},"cn":{"href":"/cn/features/entitlements/introduction","matchLevel":1},"hi":{"href":"/hi/features/entitlements/introduction","matchLevel":1},"it":{"href":"/it/features/entitlements/introduction","matchLevel":1},"sv":{"href":"/sv/features/entitlements/introduction","matchLevel":0}}},"lastModified":"2026-09-26T16:06:27.737Z","gitLastModified":"2026-09-26T16:03:47.000Z","originalFileLocation":"sv/features/entitlements/introduction.mdx","locale":"sv"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Leverera licensnycklar, nedladdningsbara filer, feature flags och åtkomst till Discord, GitHub, Telegram, Framer och Notion automatiskt när kunder betalar.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Dodo Payments Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Introduktion - Dodo Payments Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Leverera licensnycklar, nedladdningsbara filer, feature flags och åtkomst till Discord, GitHub, Telegram, Framer och Notion automatiskt när kunder betalar.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Dodo Payments Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.dodopayments.com/sv/features/entitlements/introduction\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://dodopayments.mintlify.site/_mintlify/api/og/v2?division=Entitlements\u0026amp;title=Introduktion\u0026amp;description=Leverera+licensnycklar%2C+nedladdningsbara+filer%2C+feature+flags+och+%C3%A5tkomst+till+Discord%2C+GitHub%2C+Telegram%2C+Framer+och+Notion+automatiskt+n%C3%A4r+kunder+betalar.\u0026amp;theme=fcc3a546490e883f7462a320\u0026amp;signature=b97f1b284d3959f44ec9c7015d13d123b5b59508fa9059fd91dbda8142d7bf76\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Introduktion - Dodo Payments Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Leverera licensnycklar, nedladdningsbara filer, feature flags och åtkomst till Discord, GitHub, Telegram, Framer och Notion automatiskt när kunder betalar.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dodopayments.mintlify.site/_mintlify/api/og/v2?division=Entitlements\u0026amp;title=Introduktion\u0026amp;description=Leverera+licensnycklar%2C+nedladdningsbara+filer%2C+feature+flags+och+%C3%A5tkomst+till+Discord%2C+GitHub%2C+Telegram%2C+Framer+och+Notion+automatiskt+n%C3%A4r+kunder+betalar.\u0026amp;theme=fcc3a546490e883f7462a320\u0026amp;signature=b97f1b284d3959f44ec9c7015d13d123b5b59508fa9059fd91dbda8142d7bf76\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/dodopayments/KuV_TozyHuGHOyyc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Dodo Payments Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#779812\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.dodopayments.com/sv/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sv/features/entitlements/introduction.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"sv\" href=\"https://docs.dodopayments.com/sv/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.dodopayments.com/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.dodopayments.com/es/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.dodopayments.com/ar/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.dodopayments.com/fr/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://docs.dodopayments.com/de/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"id\" href=\"https://docs.dodopayments.com/id/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.dodopayments.com/ja/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.dodopayments.com/ko/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.dodopayments.com/pt-BR/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"vi\" href=\"https://docs.dodopayments.com/vi/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.dodopayments.com/cn/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"hi\" href=\"https://docs.dodopayments.com/hi/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://docs.dodopayments.com/it/features/entitlements/introduction\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.dodopayments.com/features/entitlements/introduction\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.dodopayments.com/#organization\",\"name\":\"Dodo Payments Documentation\",\"url\":\"https://docs.dodopayments.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/dodopayments/nM_mJfYkri-OpC5M/logo/light.svg?fit=max\u0026auto=format\u0026n=nM_mJfYkri-OpC5M\u0026q=85\u0026s=23f7a052f7ecb9d6570b7c95ee359a97\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.dodopayments.com#website\",\"name\":\"Dodo Payments Documentation\",\"url\":\"https://docs.dodopayments.com\",\"publisher\":{\"@id\":\"https://docs.dodopayments.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.dodopayments.com/sv/features/entitlements/introduction#webpage\",\"url\":\"https://docs.dodopayments.com/sv/features/entitlements/introduction\",\"name\":\"Introduktion\",\"description\":\"Leverera licensnycklar, nedladdningsbara filer, feature flags och åtkomst till Discord, GitHub, Telegram, Framer och Notion automatiskt när kunder betalar.\",\"dateModified\":\"2026-09-26T16:03:47.000Z\",\"isPartOf\":{\"@id\":\"https://docs.dodopayments.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.dodopayments.com/sv/features/entitlements/introduction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.dodopayments.com/sv/features/entitlements/introduction#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Features\",\"item\":\"https://docs.dodopayments.com/sv/features/products\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introduktion\",\"item\":\"https://docs.dodopayments.com/sv/features/entitlements/introduction\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.dodopayments.com/sv/features/entitlements/introduction#article\",\"headline\":\"Introduktion\",\"name\":\"Introduktion\",\"description\":\"Leverera licensnycklar, nedladdningsbara filer, feature flags och åtkomst till Discord, GitHub, Telegram, Framer och Notion automatiskt när kunder betalar.\",\"url\":\"https://docs.dodopayments.com/sv/features/entitlements/introduction\",\"mainEntityOfPage\":{\"@id\":\"https://docs.dodopayments.com/sv/features/entitlements/introduction#webpage\"},\"dateModified\":\"2026-09-26T16:03:47.000Z\",\"keywords\":\"Dodo Payments, entitlements, uppfyllelse, licensnycklar, digital leverans, plattformåtkomst\",\"publisher\":{\"@id\":\"https://docs.dodopayments.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.dodopayments.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Dodo Payments Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Dodo Payments Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/sv/features/entitlements/introduction.md","siteName":"Dodo Payments Documentation","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/features/entitlements/introduction"}]},{"language":"es","pages":[{"title":"es","href":"/es/features/entitlements/introduction"}]},{"language":"ar","pages":[{"title":"ar","href":"/ar/features/entitlements/introduction"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/features/entitlements/introduction"}]},{"language":"de","pages":[{"title":"de","href":"/de/features/entitlements/introduction"}]},{"language":"id","pages":[{"title":"id","href":"/id/features/entitlements/introduction"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/features/entitlements/introduction"}]},{"language":"ko","pages":[{"title":"ko","href":"/ko/features/entitlements/introduction"}]},{"language":"pt-BR","pages":[{"title":"pt-BR","href":"/pt-BR/features/entitlements/introduction"}]},{"language":"vi","pages":[{"title":"vi","href":"/vi/features/entitlements/introduction"}]},{"language":"cn","pages":[{"title":"cn","href":"/cn/features/entitlements/introduction"}]},{"language":"hi","pages":[{"title":"hi","href":"/hi/features/entitlements/introduction"}]},{"language":"it","pages":[{"title":"it","href":"/it/features/entitlements/introduction"}]},{"language":"sv","tabs":[{"tab":"Docs","icon":"book","groups":[{"group":"Getting Started","pages":[{"title":"Welcome to Dodo Payments","sidebarTitle":"Introduction","icon":"rocket","href":"/sv/introduction"},{"title":"Build with AI Coding Agents","sidebarTitle":"AI Coding Agents","icon":"robot","href":"/sv/developer-resources/build-with-ai-coding-agents"},{"title":"Migrera till Dodo Payments","icon":"arrow-right-arrow-left","href":"/sv/migrate-to-dodo"},{"title":"Account Verification","icon":"id-card","href":"/sv/miscellaneous/verification-process"}]},{"group":"Features","pages":[{"sidebarTitle":"Products","title":"Products","icon":"box","href":"/sv/features/products"},{"sidebarTitle":"Product Collections","title":"Product Collections","icon":"layer-group","href":"/sv/features/product-collections"},{"sidebarTitle":"Engångsbetalningar","title":"Engångsbetalningar","icon":"credit-card","href":"/sv/features/one-time-payment-products"},{"group":"Subscriptions","icon":"infinity","pages":[{"sidebarTitle":"Subscriptions","title":"Subscriptions","icon":"repeat","href":"/sv/features/subscription"},{"sidebarTitle":"Tillägg","title":"Tillägg för Prenumerationer","icon":"puzzle","href":"/sv/features/addons"},{"title":"On-Demand Subscriptions","icon":"bolt","href":"/sv/developer-resources/ondemand-subscriptions"}]},{"group":"Usage Based Billing","icon":"arrow-trend-up","pages":[{"sidebarTitle":"Introduktion","title":"Användningsbaserad fakturering","icon":"box","href":"/sv/features/usage-based-billing/introduction"},{"sidebarTitle":"Mätare","title":"Mätare","icon":"sliders","href":"/sv/features/usage-based-billing/meters"},{"sidebarTitle":"Event Ingestion","title":"Event Ingestion","icon":"bolt","href":"/sv/features/usage-based-billing/event-ingestion"},{"group":"Ingestion Blueprints","icon":"copy","pages":[{"sidebarTitle":"Introduktion","title":"Ingestionsblåkopior","icon":"box","href":"/sv/features/usage-based-billing/ingestion-blueprints"},{"title":"LLM Blueprint","icon":"brain-circuit","href":"/sv/developer-resources/ingestion-blueprints/llm"},{"title":"API Gateway Blueprint","icon":"cloud","href":"/sv/developer-resources/ingestion-blueprints/api-gateway"},{"title":"Objektlagringsplan","icon":"box-archive","href":"/sv/developer-resources/ingestion-blueprints/object-storage"},{"title":"Stream Blueprint","icon":"tower-broadcast","href":"/sv/developer-resources/ingestion-blueprints/stream"},{"title":"Tidsintervall Blåkopi","icon":"clock","href":"/sv/developer-resources/ingestion-blueprints/time-range"}]}]},{"sidebarTitle":"Credit-Based Billing","title":"Credit-Based Billing","icon":"coins","tag":"NEW","href":"/sv/features/credit-based-billing"},{"sidebarTitle":"Platsbaserad fakturering","title":"Platsbaserad fakturering","icon":"users","href":"/sv/features/seat-based-billing"},{"sidebarTitle":"Hybrid fakturering","title":"Modeller för hybrid fakturering","icon":"layer-group","href":"/sv/features/hybrid-billing"},{"title":"Uppersell \u0026 Neddersell","icon":"arrow-up-right-dots","href":"/sv/features/upsells-and-downsells"},{"group":"Customers","icon":"user-group","pages":[{"title":"Kundhantering","icon":"user-group","href":"/sv/features/customers"},{"sidebarTitle":"Kundportal","title":"Kundportal","icon":"id-card","href":"/sv/features/customer-portal"},{"title":"Kundplånböcker","icon":"wallet","tag":"NEW","href":"/sv/features/customer-wallet"},{"sidebarTitle":"Skickade e-postmeddelanden","title":"Loggar över kunders e-post","icon":"envelope","tag":"NEW","href":"/sv/features/email-logs"},{"sidebarTitle":"Kundblocklista","title":"Kundblocklista","icon":"user-slash","tag":"NEW","href":"/sv/features/customer-blocklist"}]},{"sidebarTitle":"Discounts","title":"Discounts","icon":"percent","href":"/sv/features/discount-codes"},{"group":"Recovery","icon":"rotate","tag":"NEW","pages":[{"sidebarTitle":"Översikt","title":"Intäktsåterhämtning","icon":"rotate","href":"/sv/features/recovery/overview"},{"sidebarTitle":"Återhämtning av övergiven kundvagn","title":"Återhämtning av övergiven kundvagn","icon":"cart-shopping","href":"/sv/features/recovery/abandoned-cart-recovery"},{"sidebarTitle":"Prenumerationshantering","title":"Prenumerationshantering","icon":"repeat","href":"/sv/features/recovery/subscription-dunning"},{"sidebarTitle":"Nya betalningsförsök för prenumerationer","title":"Nya betalningsförsök för prenumerationer","icon":"arrow-rotate-right","href":"/sv/features/recovery/payment-retries"},{"sidebarTitle":"Manuell retry","title":"Manuell retry av betalning","icon":"hand-pointer","tag":"NEW","href":"/sv/features/recovery/manual-retry"}]},{"group":"Transactions","icon":"credit-card","pages":[{"title":"Betalningar","icon":"money-bill-transfer","href":"/sv/features/transactions/payments"},{"title":"Återbetalningar","icon":"rotate-left","href":"/sv/features/transactions/refunds"},{"title":"Disputes","description":"Visa och besvara tvister från sidan Transactions och stoppa chargebacks innan de registreras med Visa RDR, Ethoca alerts och deflections.","icon":"circle-exclamation","href":"/sv/features/transactions/disputes"}]},{"group":"Entitlements","icon":"gift","tag":"NEW","pages":[{"title":"Introduktion","sidebarTitle":"Introduktion","icon":"box-archive","href":"/sv/features/entitlements/introduction"},{"title":"License Keys","description":"Utfärda licensnycklar med aktiveringsgränser och giltighetstid genom License Key-entitlementet och aktivera, validera och inaktivera dem från din programvara.","icon":"key","href":"/sv/features/license-keys"},{"title":"Digital Product Delivery","sidebarTitle":"Digital Products","icon":"download","href":"/sv/features/digital-product-delivery"},{"title":"Funktion Flagga Rättighet","sidebarTitle":"Funktion Flaggar","icon":"flag","tag":"NEW","href":"/sv/features/entitlements/feature-flags"},{"title":"Discord-rättighet","sidebarTitle":"Discord","icon":"discord","href":"/sv/features/entitlements/discord"},{"title":"GitHub-rättighet","sidebarTitle":"GitHub","icon":"github","href":"/sv/features/entitlements/github"},{"title":"Telegramrättighet","sidebarTitle":"Telegram","icon":"telegram","href":"/sv/features/entitlements/telegram"},{"title":"Framer-entitlement","sidebarTitle":"Framer","icon":"puzzle-piece","href":"/sv/features/entitlements/framer"},{"title":"Notion Entitlement","sidebarTitle":"Notion","icon":"book","href":"/sv/features/entitlements/notion"}]},{"group":"Payouts and Balances","icon":"wallet","pages":[{"title":"Utbetalningsprocess","icon":"money-bill","href":"/sv/features/payouts/payout-structure"},{"title":"Salden","icon":"file-invoice-dollar","href":"/sv/features/account-summary-payout-wallet"}]},{"group":"Account Management","icon":"user","pages":[{"sidebarTitle":"Arkivera ett företag","title":"Arkivering av ett företag","icon":"box-archive","tag":"NEW","href":"/sv/features/archive-business"},{"title":"Multi-Brand Setup","icon":"building-columns","href":"/sv/features/multi-brands"},{"title":"Fakturahantering","icon":"file-invoice-dollar","href":"/sv/features/invoice-generation"},{"title":"Teammedlemmar","icon":"user-gear","href":"/sv/features/team"},{"title":"Kommunikationsinställningar","sidebarTitle":"Kommunikationsinställningar","icon":"bell","tag":"NEW","href":"/sv/features/communication-preferences"},{"title":"Mitt konto","icon":"user-gear","href":"/sv/miscellaneous/accounts"}]},{"group":"Pricing","icon":"dollar-sign","pages":[{"sidebarTitle":"Skatteinkluderande Prissättning","title":"Skatteinkluderande Prissättning","icon":"file-invoice","href":"/sv/features/tax-inclusive-pricing"},{"sidebarTitle":"Betala Vad Du Vill","title":"Betala Vad Du Vill Prissättning","icon":"dollar-sign","href":"/sv/features/pay-what-you-want"},{"title":"B2B Betalningar","icon":"money-bills","href":"/sv/features/b2b-payments"},{"title":"Lokala Priser","sidebarTitle":"Lokala Priser","icon":"earth-americas","href":"/sv/features/localized-pricing"},{"sidebarTitle":"Köpkraftsparitet","title":"Köpkraftparitet","tag":"NEW","icon":"money-bill-trend-up","href":"/sv/features/purchasing-power-parity"},{"sidebarTitle":"Charm Pricing","title":"Charm Pricing","tag":"NEW","icon":"tag","href":"/sv/features/charm-pricing"}]},{"sidebarTitle":"Kassa","title":"Kassafunktioner","icon":"cart-shopping","href":"/sv/features/checkout"},{"sidebarTitle":"Design","title":"Design och temaanpassning","icon":"palette","tag":"NEW","href":"/sv/features/design"},{"group":"Payment Methods","icon":"money-bill-wave","pages":[{"title":"Payment Methods","sidebarTitle":"Overview","icon":"layer-group","href":"/sv/features/payment-methods"},{"title":"Kredit- och betalkort","sidebarTitle":"Kort","icon":"credit-card","href":"/sv/features/payment-methods/cards"},{"title":"Digitala plånböcker","sidebarTitle":"Digitala plånböcker","icon":"wallet","href":"/sv/features/payment-methods/digital-wallets"},{"title":"Köp nu betala senare (BNPL)","sidebarTitle":"BNPL","icon":"calendar-days","href":"/sv/features/payment-methods/bnpl"},{"title":"ACH Direct Debit","sidebarTitle":"ACH Direct Debit","icon":"building-columns","href":"/sv/features/payment-methods/ach"},{"title":"Betalningsmetoder i Indien","sidebarTitle":"Indien","icon":"indian-rupee-sign","href":"/sv/features/payment-methods/india"},{"title":"European Payment Methods","sidebarTitle":"Europe","icon":"euro-sign","href":"/sv/features/payment-methods/europe"},{"title":"South Korea Payment Methods","sidebarTitle":"South Korea","icon":"won-sign","href":"/sv/features/payment-methods/south-korea"},{"title":"Betalningsmetoder i Asien och Stillahavsområdet","sidebarTitle":"Asien och Stillahavsområdet","icon":"earth-asia","href":"/sv/features/payment-methods/asia-pacific"},{"title":"Pix","sidebarTitle":"Pix","icon":"brazilian-real-sign","href":"/sv/features/payment-methods/pix"},{"title":"Stablecoins","sidebarTitle":"Stablecoins","icon":"dollar-sign","href":"/sv/features/payment-methods/stablecoins"},{"title":"WeChat Pay","sidebarTitle":"WeChat Pay","icon":"comment-dollar","href":"/sv/features/payment-methods/wechat"}]},{"title":"Tredjepartsanalys","sidebarTitle":"Tredjepartsanalys","icon":"chart-line","tag":"NEW","href":"/sv/features/analytics"},{"sidebarTitle":"Adaptiv Valuta","title":"Adaptiv Valuta","icon":"money-bill-transfer","href":"/sv/features/adaptive-currency"},{"group":"BYOP","icon":"shuffle","tag":"BETA","pages":[{"title":"Bring Your Own Processor (BYOP)","sidebarTitle":"Overview","tag":"BETA","icon":"boxes-stacked","href":"/sv/features/byop"},{"title":"Stripe - Connect \u0026 Raw Card API Access","sidebarTitle":"Stripe","icon":"stripe","href":"/sv/features/byop/stripe"},{"title":"Adyen – anslutning och åtkomst till Raw Card API","sidebarTitle":"Adyen","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/adyen.svg","href":"/sv/features/byop/adyen"}]},{"title":"Butik","icon":"store","href":"/sv/features/storefront"},{"title":"Affiliateprogram","icon":"users-line","href":"/sv/features/affiliates"},{"title":"Moderation API","icon":"shield-check","tag":"NEW","href":"/sv/features/moderation"},{"title":"Försäljning av digitala varor på iOS","icon":"mobile","href":"/sv/features/appstore-digital-goods"},{"title":"Dashboard Analytics","sidebarTitle":"Dashboard Analytics","icon":"chart-line","href":"/sv/features/analytics-and-reporting"},{"title":"Rapporter","sidebarTitle":"Rapporter","icon":"file-invoice","href":"/sv/features/reports"}]},{"group":"Integrate","pages":[{"group":"SDKs","icon":"box-open","pages":[{"sidebarTitle":"Översikt","title":"Officiella SDK:er","icon":"box","href":"/sv/developer-resources/dodo-payments-sdks"},{"title":"TypeScript","icon":"js","href":"/sv/developer-resources/sdks/typescript"},{"title":"Python","icon":"python","href":"/sv/developer-resources/sdks/python"},{"title":"Go","icon":"golang","href":"/sv/developer-resources/sdks/go"},{"title":"Ruby","icon":"gem","href":"/sv/developer-resources/sdks/ruby"},{"title":"Java","icon":"java","href":"/sv/developer-resources/sdks/java"},{"title":"Kotlin","icon":"k","href":"/sv/developer-resources/sdks/kotlin"},{"title":"PHP","icon":"php","href":"/sv/developer-resources/sdks/php"},{"title":"C#","icon":"c","href":"/sv/developer-resources/sdks/csharp"},{"title":"Rust","icon":"rust","href":"/sv/developer-resources/sdks/rust"}]},{"group":"Mobile Checkout SDKs","icon":"mobile","pages":[{"title":"Mobilintegrationsguide","sidebarTitle":"Integrationsguide","icon":"mobile","href":"/sv/developer-resources/mobile-integration"},{"title":"Android","sidebarTitle":"Android","tag":"NEW","icon":"android","href":"/sv/developer-resources/sdks/android"},{"title":"iOS","sidebarTitle":"iOS","tag":"NEW","icon":"apple","href":"/sv/developer-resources/sdks/ios"},{"title":"React Native","sidebarTitle":"React Native","tag":"NEW","icon":"react","href":"/sv/developer-resources/sdks/react-native"},{"title":"Flutter","sidebarTitle":"Flutter","tag":"NEW","icon":"layer-group","href":"/sv/developer-resources/sdks/flutter"}]},{"group":"Framework Adaptors","icon":"frame","pages":[{"sidebarTitle":"Översikt","title":"Översikt över ramverksadaptrar","icon":"box","href":"/sv/developer-resources/framework-adaptors"},{"title":"Next.js-adapter","icon":"code-merge","href":"/sv/developer-resources/nextjs-adaptor"},{"title":"Better Auth-adapter","icon":"code-merge","href":"/sv/developer-resources/better-auth-adaptor"},{"title":"Konvex Komponent","icon":"code-merge","href":"/sv/developer-resources/convex-component"},{"title":"TanStack Adaptor","icon":"code-merge","href":"/sv/developer-resources/tanstack-adaptor"},{"title":"Nuxt Adaptor","icon":"code-merge","href":"/sv/developer-resources/nuxt-adaptor"},{"title":"Express Adaptor","icon":"code-merge","href":"/sv/developer-resources/express-adaptor"},{"title":"Astro Adaptor","icon":"code-merge","href":"/sv/developer-resources/astro-adaptor"},{"title":"SvelteKit Adaptor","icon":"code-merge","href":"/sv/developer-resources/sveltekit-adaptor"},{"title":"Hono Adaptor","icon":"code-merge","href":"/sv/developer-resources/hono-adaptor"},{"title":"Remix Adaptor","icon":"code-merge","href":"/sv/developer-resources/remix-adaptor"},{"title":"Fastify Adaptor","icon":"code-merge","href":"/sv/developer-resources/fastify-adaptor"},{"title":"Bun Adaptor","icon":"code-merge","href":"/sv/developer-resources/bun-adaptor"}]},{"group":"Webhooks","icon":"webhook","pages":[{"sidebarTitle":"Overview","title":"Webhooks","icon":"webhook","href":"/sv/developer-resources/webhooks"},{"title":"Guide till Webhook Events","icon":"bell","href":"/sv/developer-resources/webhooks/intents/webhook-events-guide"},{"group":"Webhook Payloads","icon":"code","pages":[{"title":"Betalning","icon":"credit-card","href":"/sv/developer-resources/webhooks/intents/payment"},{"sidebarTitle":"Prenumeration","title":"Webhooks för prenumerationer","icon":"repeat","href":"/sv/developer-resources/webhooks/intents/subscription"},{"title":"Återbetalning","icon":"rotate-left","href":"/sv/developer-resources/webhooks/intents/refund"},{"sidebarTitle":"Tvist","title":"Webhooks för tvister","icon":"circle-exclamation","href":"/sv/developer-resources/webhooks/intents/dispute"},{"title":"Licensnyckel","icon":"key","href":"/sv/developer-resources/webhooks/intents/license-key"},{"title":"Rättighetsbeviljande","icon":"gift","href":"/sv/developer-resources/webhooks/intents/entitlement-grant"},{"sidebarTitle":"Kreditbaserad fakturering","title":"Webhooks för kreditbaserad fakturering","icon":"coins","href":"/sv/developer-resources/webhooks/intents/credit"},{"title":"Recovery","icon":"rotate","href":"/sv/developer-resources/webhooks/intents/recovery"},{"sidebarTitle":"Utbetalning","title":"Webhooks för utbetalningar","icon":"money-bill-transfer","href":"/sv/developer-resources/webhooks/intents/payout"}]},{"group":"Deploy to Cloud","icon":"rocket","pages":[{"title":"Vercel Functions","icon":"triangle","href":"/sv/developer-resources/webhooks/examples/vercel-example"},{"title":"Cloudflare Workers","icon":"cloud","href":"/sv/developer-resources/webhooks/examples/cloudflare-example"},{"title":"Supabase Edge Functions","icon":"bolt","href":"/sv/developer-resources/webhooks/examples/supabase-example"},{"title":"Netlify Functions","icon":"diamond","href":"/sv/developer-resources/webhooks/examples/netlify-example"}]}]},{"group":"Testing \u0026 Demo Tools","icon":"flask","pages":[{"title":"Testläge vs Live-läge","icon":"toggle-on","href":"/sv/miscellaneous/test-mode-vs-live-mode"},{"title":"Testing Process","icon":"flask","href":"/sv/miscellaneous/testing-process"},{"title":"Atlas Demo Produkt","icon":"palette","href":"/sv/features/atlas-demo-website"}]},{"group":"Boilerplates","icon":"box-open","pages":[{"sidebarTitle":"Expo","title":"Expo Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/expo.svg","tag":"NEW","href":"/sv/developer-resources/expo-boilerplate"},{"sidebarTitle":"Supabase","title":"Supabase Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/supabase.svg","href":"/sv/developer-resources/supabase-boilerplate"},{"sidebarTitle":"Figma-plugin","title":"Figma-plugin","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/figma.svg","href":"/sv/integrations/figma-plugin"},{"sidebarTitle":"Next.js","title":"Next.js Minimal Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/nextjs.svg","href":"/sv/developer-resources/nextjs-boilerplate"},{"sidebarTitle":"Astro","title":"Astro Minimal Boilerplate","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/astro.svg","href":"/sv/developer-resources/astro-boilerplate"},{"sidebarTitle":"FastAPI","title":"FastAPI-startmall","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dodopayments/images/logos/fastapi.svg","tag":"NEW","href":"/sv/developer-resources/fastapi-boilerplate"},{"sidebarTitle":"Go","title":"Go Boilerplate","icon":"golang","tag":"NEW","href":"/sv/developer-resources/go-boilerplate"}]},{"title":"Dodo CLI","icon":"terminal","tag":"NEW","href":"/sv/developer-resources/sdks/cli"},{"title":"Overlay Checkout","icon":"cart-shopping","href":"/sv/developer-resources/overlay-checkout"},{"title":"Inline Checkout","icon":"credit-card","href":"/sv/developer-resources/inline-checkout"},{"title":"Billing SDK","icon":"boxes-stacked","href":"/sv/developer-resources/billingsdk"},{"title":"Dodo Payments MCP Server","icon":"server","href":"/sv/developer-resources/mcp-server"},{"title":"Agent Skills","icon":"wand-magic-sparkles","href":"/sv/developer-resources/agent-skills"},{"sidebarTitle":"Databassynkronisering","title":"Synkronisera med din databas","icon":"database","href":"/sv/developer-resources/dodo-sync"},{"sidebarTitle":"Prenumerationsmigration","title":"Prenumerationsmigration till Dodo Payments","icon":"file-import","href":"/sv/miscellaneous/subscription-migration"}]},{"group":"Merchant of Record","pages":[{"sidebarTitle":"Vad är MoR?","title":"Introduktion","icon":"building-columns","href":"/sv/features/mor-introduction"},{"title":"MoR vs PG","icon":"scale-balanced","href":"/sv/features/mor-vs-pg"},{"title":"Länder som kan godkännas för handlare","icon":"globe","href":"/sv/miscellaneous/accepted-countries-and-territories"},{"title":"Gransknings- och övervakningspolicy","icon":"magnifying-glass","href":"/sv/miscellaneous/review-monitoring-policy"},{"sidebarTitle":"Övervinning av App Store-avgifter","title":"Så kringgår du App Store- och Play Store-avgifter med Dodo Payments","icon":"shield-check","href":"/sv/features/bypassing-app-store-fees"}]},{"group":"Miscellaneous","pages":[{"group":"Support Channels","icon":"headset","pages":[{"title":"Hjälp och Support","icon":"headset","href":"/sv/miscellaneous/help-support"},{"title":"Funktionsförfrågan och Vägkarta","icon":"lightbulb","href":"/sv/features/feature-request"}]},{"title":"Mobil- och skrivbordsappar","icon":"mobile","href":"/sv/features/mobile-app"},{"title":"Säkerhetsrapporteringspolicy","icon":"shield","href":"/sv/miscellaneous/security-policy"}]}]},{"tab":"Guides","icon":"compass","pages":[{"title":"Guides","href":"/sv/developer-resources/integration-guide"}]},{"tab":"API Reference","icon":"rectangle-code","pages":[{"title":"API Reference","href":"/sv/api-reference/introduction"}]},{"tab":"External Integrations","icon":"plug","pages":[{"title":"External Integrations","href":"/sv/integrations/introduction"}]},{"tab":"Changelog","icon":"calendar-days","pages":[{"title":"Changelog","href":"/sv/changelog/introduction"}]},{"tab":"Community Projects","icon":"users","pages":[{"title":"Community Projects","href":"/sv/community/overview"}]}]}]},"basePath":"","title":"Introduktion - Dodo Payments Documentation","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-u3J1-UOn.js","DynamicMarkdown-B-f2cqXQ.js","zoom-image-lightbox-DTFzvaXJ.js","lightbox-handle-r17bVUz3.js"]}