Hoppa till huvudinnehåll

Documentation Index

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

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

Licensnycklar är av entitetstypen Licensnyckel. Skapa en licensnyckel-entitet en gång med den aktiveringsgräns, utgångsdatum och instruktioner du önskar, koppla den till vilken produkt som helst, och Dodo Payments genererar och levererar en nyckel per köp eller prenumerationsplats, automatiskt.

Vad är Licensnycklar?

Licensnycklar är unika token som auktoriserar åtkomst till din produkt. De är idealiska för:
  • Programvarulicensering: Skrivbordsappar, plugins och CLIs
  • Per-användarkontroller: Begränsa aktiveringar per användare eller enhet
  • Digitala varor: Stänga av nedladdningar, uppdateringar eller premiumfunktioner
I Dodo Payments hanteras licensnycklar genom systemet Entitlements, vilket innebär att livscykeln för varje nyckel (skapande, utgång, återkallande, återgivning) drivs av samma betalnings- och prenumerationshändelser som dina andra leveranser.

Skapa en Licensnyckel Entitlement

1

Open Entitlements

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

Choose License Key

Välj License Key som integration. Konfigurera hur varje utfärdad nyckel beter sig:
  • Aktiveringsbegränsningar: Maximalt antal samtidiga aktiveringar per nyckel (t.ex., 1 för enanvändarlicens, 5 för teamlicenser, lämna tom för obegränsat).
  • Varaktighet: Hur lång tid nyckeln förblir giltig efter utfärdande (t.ex., 30 dagar, 1 år). För prenumerationsutgivna nycklar, lämna tom; nycklar förblir giltiga så länge prenumerationen är aktiv.
  • Aktiveringsinstruktioner: Kundanvisningar som skickas med nyckeln till e-post. Exempel: Paste the key in Settings → License eller Run: mycli activate <key>.
License Key entitlement form with activation limit, duration, and instructions
3

Save the entitlement

Spara. Entitlement är nu tillgänglig att koppla till vilken produkt som helst.

Koppla till Produkter

Öppna en produkt, expandera Avancerade inställningar → Entitlements & Credits, och välj din Licensnyckel-entitlement. En enskild produkt kan leverera en licensnyckel tillsammans med andra entitlements (Discord-åtkomst, filnedladdningar, GitHub-repoåtkomst, etc.) vid samma köp.
Product entitlements panel with License Key selected

Hur nycklar utfärdas

Nyckelutfärdande följer standarden grant lifecycle:
EventBeteende
payment.succeeded (one-time)Generera en nyckel per quantity köpt. Nyckelns utgång respekterar entitetsperioden.
subscription.activeGenerera en nyckel per prenumeration quantity (seat). Nyckeln har ingen utgång; giltigheten är kopplad till prenumerationsstatus.
subscription.renewedNo-op. Befintliga nycklar förblir.
subscription.on_holdInaktivera nycklarna. De återaktiveras när prenumerationen inte längre är pausad.
subscription.cancelled / expiredInaktivera nycklarna permanent.
subscription.plan_changedInaktivera de gamla nycklarna; utfärda nya för den nya planen.
refund.succeeded (one-time)Inaktivera nycklarna.
Manuell återkallelse via API/instrumentpanelenInaktivera nycklarna med revocation_reason: manual. Dessa återges inte automatiskt vid prenumerationsförnyelse.
Licensnyckel inaktiverad direktÅterkalla beviljandet med revocation_reason: license_key_disabled. Återaktivering av nyckeln återaktiverar beviljandet automatiskt.

Kvantitetsbeteende

  • Prenumerationsprodukter utfärdar en nyckel per plats (subscriptions.quantity).
  • Engångsprodukter utfärdar en nyckel per kassaartikel (product_cart.quantity).
  • Manuella API-beviljanden utfärdar exakt en nyckel.

Aktivering, Validering, Inaktivering

API-slutpunkterna för aktivering/validering/inaktivering är offentliga och kräver ingen API-nyckel. Använd dem direkt från skrivbordsprogramvara, CLI:er eller webbläsarbaserade klienter för att verifiera nycklar vid körning.
Offentliga Slutpunkter: Aktivera, inaktivera och validera licensslutpunkterna är offentliga och kräver ingen API-nyckel. Anropa dem direkt från dina klientapplikationer utan att exponera dina API-uppgifter.

Aktivera en licens

import DodoPayments from 'dodopayments';

// No API key needed for public license endpoints
const client = new DodoPayments();

const response = await client.licenses.activate({
  license_key: 'PRO-AAAA-BBBB-CCCC-DDDD',
  name: 'Device Name',
});

console.log(response.id);

Validera en licens

const response = await client.licenses.validate({
  license_key: 'PRO-AAAA-BBBB-CCCC-DDDD',
});

console.log(response.valid);

Inaktivera en aktiveringsinstans

await client.licenses.deactivate({
  license_key: 'PRO-AAAA-BBBB-CCCC-DDDD',
  license_key_instance_id: 'instance_abc123',
});

Hantera Nycklar

Öppna Licensnyckel-entiteten från din instrumentpanel för att se varje beviljande (en rad per kundnyckel) med leveransdatum, aktiveringsantal och en återkallande åtgärd. Varje givande detalj visar den underliggande licensnyckeln, utgång, använda aktiveringar och aktiveringsgräns. Du kan också lista beviljanden programmatiskt:
const grants = await client.entitlements.grants.list('ent_license_key_id', {
  status: 'delivered',
});

for (const grant of grants.items) {
  console.log(grant.license_key.key, grant.license_key.activations_used);
}

Importera Befintliga Licensnycklar via API

Har du redan licensnycklar i ett annat system? Använd Create License Key API för att importera dem till Dodo Payments. Detta låter dig migrera befintliga nycklar utan att störa dina kunder – de fortsätter att aktivera, validera och inaktivera mot samma nyckelsträngar utan återskapande.
Licensnycklar skapade eller uppdaterade via API utlöser inga e-postmeddelanden till kunder. Om du behöver meddela kunder om en importerad nyckel, hantera det separat i din applikation.
const licenseKey = await client.licenseKeys.create({
  customer_id: 'cus_abc123',
  product_id: 'prod_456',
  key: 'YOUR-EXISTING-LICENSE-KEY',
  activations_limit: 5,
  expires_at: '2026-12-31T23:59:59Z',
});

Skillnaden mellan importerade och automatgenererade nycklar

FältAutomatgenererad nyckelImporterad nyckel
source"auto""import"
payment_idStäll in på ursprunglig betalningnull (ingen Dodo Payments transaktion)
subscription_idStäll in om nyckeln utfärdades via en prenumerationnull om inte explicit länkat
Kundens e-postaviseringSänds vid utfärdandeSkickas inte — hantera separat
Använd source-fältet på GET /license_keys-svar för att särskilja migrerat lager från organiskt utfärdade nycklar vid avstämning eller revision.
Migrerar du från Polar.sh eller Lemon Squeezy? dodo-migrate CLI automatiserar massimporter av produkter, kunder, rabatter och licensnycklar i ett enda kommando och mappar externa ID:n till Dodo ID:n automatiskt.

Licensnycklar i Return URL

När en kund slutför ett köp för en produkt med en Licensnyckel-entitlement, läggs den genererade nyckeln automatiskt till din return_url som en frågeparameter. Detta låter dig visa nyckeln omedelbart på din nätsida utan att göra en extra API-anrop.
https://yoursite.com/return?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com
Om köpet genererar flera nycklar (kvantitet > 1), kommer de att separeras med kommatecken:
https://yoursite.com/return?payment_id=pay_xxx&status=succeeded&license_key=LK-001,LK-002&email=customer%40example.com
För prenumerationer används subscription_id istället för payment_id:
https://yoursite.com/return?subscription_id=sub_xxx&status=active&license_key=LK-001&email=customer%40example.com
Analysera license_key-parametern på din återvändningssida för att visa nyckeln omedelbart, vilket förbättrar köpupplevelsen.

API-hantering

Aktivering, inaktivering, och validering är offentliga; ingen API-nyckel krävs.

Activate License

Skapa eller registrera en aktiveringsinstans för en licensnyckel.

Deactivate License

Återkalla en tidigare aktivering för att frigöra kapacitet.

Validate License

Kontrollera äkthet, status och begränsningar innan du beviljar åtkomst.
Skapa, lista, hämta och uppdatera individuella licensnyckelregister. Använd dessa för att importera befintliga nycklar eller hämta användningsdetaljer.

Create License Key

Skapa en ny licensnyckel eller importera en befintlig.

List License Keys

Bläddra bland alla nycklar med status och användningsdetaljer.

Get License Key

Hämta en specifik nyckel och dess metadata.

Update License Key

Ändra utgång, aktiveringsgränser, eller aktivera/inaktivera en nyckel.
Hantera själva Licensnyckel-entitlement: dess aktiveringsgräns, varaktighet och instruktioner.

Create Entitlement

Skapa en Licensnyckel-entitlement.

Update Entitlement

Uppdatera entitlement-konfigurationen.

List Grants

Lista nycklarna som utfärdats för en entitlement.

Revoke Grant

Återkalla manuellt en kunds nyckel.

Webhooks

Leverans och återkallande av licensnycklar utlöser de fyra entitlement_grant.* webhook-händelserna. Grant-payloaden inkluderar ett fyllt license_key-objekt med nyckeln, utgång, använda aktiveringar och gräns. De äldre license_key.*-händelserna (license_key.created) fortsätter att avfyras för den underliggande licensnyckelns registerlivscykel; se sidan License Key webhook payload.
För nya integrationer, lyssna på entitlement_grant.delivered istället för license_key.created. Entitlement-händelsen berättar att leveransen är komplett över alla integrationer på produkten, inte bara licensnyckeln.

Äldre Licensnycklar

Produkter skapade med den äldre license_key_enabled-flaggan har blivit automatiskt migrerade till en Licensnyckel-entitlement. Migrationen är transparent: befintliga kunders nycklar fortsätter att fungera oförändrade, den offentliga /licenses/activate, /licenses/validate, /licenses/deactivate-slutpunkterna fortsätter att fungera, och /license_keys/* API-slutpunkterna fortsätter att läsa och skriva till samma nyckellager.Den fristående License Keys instrumentpanelssektionen förblir tillgänglig som en platt lista över varje utfärdad nyckel, användbar för revision och sökning. Nya konfigurationer (ändring av aktiveringsgränser, varaktigheter eller instruktioner) bör göras genom att redigera den migrerade Licensnyckel-entitlement under Entitlements.

Bästa Praxisen

  • Håll aktiveringsgränserna klara: Välj rimliga standardvärden (1 för enanvändarappar, 3–5 för teamlicenser) och dokumentera dem.
  • Ge precisa aktiveringsinstruktioner: Kunder klistrar in dessa från sina mejl, så exakta vägar och kommandon sparar supportärenden.
  • Validera nycklar server-side: För nätverksanslutna produkter, validera via /licenses/validate istället för att cachea aktivering lokalt.
  • Använd webhooks för återkallelse: Lyssna på entitlement_grant.revoked för att omedelbart inaktivera in-app funktioner när en kund avbokar eller får återbetalning.
  • Testa med prenumerationer och engångstillfällen: Licensnyckelbeteende skiljer sig subtilt mellan de två, så testa båda innan du startar.
Last modified on May 14, 2026