Skip to main content
Licensnycklar är entitlement-typen License Key. Skapa ett License Key-entitlement en gång med den aktiveringsgräns, giltighetstid och det aktiveringsmeddelande du vill ha och koppla det sedan till valfri produkt. Som standard genererar och skickar Dodo Payments en nyckel via e-post för varje köpt enhet eller varje prenumerationsplats.

Vad är licensnycklar?

En licensnyckel är en unik token som ger åtkomst till din produkt. Använd licensnycklar för:
  • Programvarulicenser: skrivbordsappar, plugins och CLI:er.
  • Platsbaserade kontroller: begränsa aktiveringar per användare eller enhet.
  • Digitala varor: begränsa åtkomst till hämtningar, uppdateringar eller premiumfunktioner.
Dodo Payments hanterar licensnycklar genom Entitlements. Samma betalnings- och prenumerationshändelser som styr dina andra entitlements styr varje nyckels livscykel: skapande, utgång, återkallning och tilldelning på nytt.

Create a License Key Entitlement

1

Open Entitlements

Gå till Entitlements i dashboarden och klicka på + för att skapa ett entitlement.
2

Choose License Key

Välj License Keys, ange ett Name och konfigurera hur varje utfärdad nyckel ska fungera:
  • Fulfillment Mode: Automatic (standard) genererar och skickar varje nyckel via e-post. Manual låter dig ange varje nyckel själv. Se Manual Fulfillment.
  • Activations Limit: det maximala antalet aktiva aktiveringar per nyckel, till exempel 1 för en enskild användare eller 5 för en teamlicens. Välj Unlimited om ingen gräns ska gälla.
  • License Length: hur länge en nyckel förblir giltig efter att den utfärdats, till exempel 30 dagar eller 1 år, eller No expiration. För prenumerationsprodukter väljer du No expiration: nycklar som utfärdas för en prenumeration löper inte ut, och deras giltighet följer prenumerationens status.
  • Activation Message: valfria instruktioner riktade till kunden, upp till 2 500 tecken, som inkluderas i e-postmeddelandet där nyckeln levereras. Till exempel: Paste the key in Settings → License eller Run: mycli activate <key>.
New License Key entitlement form with name, fulfillment mode, license length, activations limit, and activation message
3

Save the Entitlement

Klicka på Create Entitlement. Du kan nu koppla entitlementet till valfri produkt.

Attach to Products

Öppna en produkt, gå till avsnittet Entitlements och välj ditt License Key-entitlement. En produkt kan leverera en licensnyckel tillsammans med andra entitlements vid samma köp, till exempel Discord-åtkomst, filhämtningar eller åtkomst till ett GitHub-arkiv.
Product entitlements panel with License Key selected

Selecting the License Key entitlement in the product entitlements panel.


How Keys Are Issued

Utfärdandet av nycklar följer den vanliga grant-livscykeln. Varje händelse påverkar licensnycklar enligt följande:

Beteende för antal

Antalet nycklar beror på var grantet kommer från. Varje nyckel får sitt eget grant.
  • Prenumerationsprodukter utfärdar en nyckel per plats (subscriptions.quantity).
  • Engångsprodukter utfärdar en nyckel per enhet i kundvagnens radartikel (product_cart.quantity).
  • Manuella API-grants utfärdar exakt en nyckel.

Fulfillment Mode

Varje License Key-entitlement har en fulfillment_mode som styr vem som tillhandahåller nyckeln:
  • auto (standard, Automatic i dashboarden): Dodo Payments genererar och skickar nyckeln via e-post vid betalning eller prenumeration. Detta är beteendet i tabellen ovan och gäller när fulfillment_mode utelämnas.
  • manual (Manual i dashboarden): varje köpt enhet skapar ett Pending-grant utan nyckel, och du anger varje nyckelvärde. Se Manual Fulfillment.

Manual Fulfillment

Med manuell fulfillment anger du varje licensnyckel i stället för att Dodo Payments genererar den. Köpet skapar ett Pending-grant utan nyckel, meddelar dig via en webhook och väntar på att du ska skicka in nyckelvärdet. Använd detta när nycklar kommer från ditt eget system, en tredjepartsleverantör eller en begränsad pool av förtryckta koder.
Se Manual License Key Fulfillment Integration Guide för en steg-för-steg-guide från produktskapande till nyckelleverans.

När ska det användas?

Automatisk fulfillment passar de flesta programvarulicenser. Välj manuell fulfillment när Dodo Payments inte kan generera nyckeln själv:
  • Använd dina egna nycklar: din applikation, en skrivbordsprodukt eller din egen licensserver genererar nyckeln.
  • Tredjepartsleverantörer: du säljer vidare nycklar som utfärdas av en överordnad leverantör, till exempel en spelnyckel, en API-uppgift eller en partnerplattformens licens.
  • Begränsat lager: du delar ut koder från en förallokerad pool och tilldelar dem en i taget.
  • Manuell granskning: du vill kontrollera ett köp innan du ger åtkomst.

Aktivera manuell fulfillment

Om du vill aktivera manuell fulfillment via API:t anger du fulfillment_mode: "manual" i License Key-entitlementets integration_config. I dashboarden ställer du in Fulfillment Mode på Manual.
fulfillment_mode är bakåtkompatibelt. Entitlements som skapades innan denna inställning fanns har inget fulfillment_mode och fungerar som auto. En ändring till manual påverkar endast grants som skapats efter ändringen. Redan levererade nycklar ändras inte.

Hitta grants som väntar på fulfillment

När en kund köper en produkt med ett entitlement i manuellt läge skapar Dodo Payments grantet med status Pending utan nyckel och skickar en entitlement_grant.created-webhook med integration_type: "license_key" och status: "Pending". Reagera på den webhooken eller använd polling mot endpointen List Customer Grants med filtren integration_type och status:

Leverera nyckeln

Om du vill leverera en nyckel skickar du den till endpointen Fulfill License Key Grant. Grantet övergår till Delivered och Dodo Payments skickar nyckeln via e-post till kunden. Det är samma e-postmeddelande som kunden får vid automatisk fulfillment.
cURL
activations_limit och expires_at är valfria. När du utelämnar dem använder Dodo Payments entitlementets konfiguration. Varje grant kan uppfyllas en gång: om du försöker igen med ett redan uppfyllt grant returneras 409 i stället för att en andra nyckel utfärdas.
Du behöver inte skicka nyckeln via e-post själv. Dodo Payments levererar den när grantet uppfylls. Importing keys med POST /license_keys fungerar annorlunda: kunden meddelas inte.

Aktivering, validering och inaktivering

Din programvara hanterar en nyckel under körning genom tre endpoints. Aktivering registrerar en enhet eller installation mot nyckeln, validering kontrollerar att nyckeln kan användas och inaktivering frigör en aktivering.
Publika endpoints: Endpoints för att aktivera, inaktivera och validera licenser är publika och kräver ingen API-nyckel. Anropa dem direkt från skrivbordsprogram, CLI:er eller webbläsarbaserade klienter utan att exponera dina API-uppgifter. SDK-konstruktorerna kräver fortfarande ett bearer-tokenvärde, så SDK-exemplen skickar en platshållare.

Aktivera en licens

Aktivering skapar en aktiveringsinstans för nyckeln och returnerar den med ett lki_-ID. Spara detta ID eftersom du behöver det för att inaktivera instansen. Begäran returnerar 403 om nyckeln inte är aktiv, 404 om nyckeln inte finns och 422 om nyckeln har nått sin aktiveringsgräns.

Validera en licens

Validering returnerar valid: true när nyckelns status är active och nyckeln inte har löpt ut. Om du även vill kontrollera att en specifik aktiveringsinstans fortfarande finns skickar du dess license_key_instance_id.

Inaktivera en aktiveringsinstans

Inaktivering tar bort en aktiveringsinstans och frigör en aktivering på nyckeln. Skicka nyckeln och det instans-ID som aktiveringen returnerade. Begäran returnerar 403 om instansen inte tillhör nyckeln och 404 om nyckeln inte finns.

Hantera nycklar

Om du vill se utfärdade nycklar öppnar du License Key-entitlementet under Entitlements. Grantlistan visar en rad per kundnyckel med kunden, datumet då den användes, statusen och åtgärden Revoke. Om du vill se en nyckels giltighetstid, aktiveringsantal och aktiveringsgräns öppnar du den under Sales → License Keys. Om du vill lista grants programmatiskt anropar du List Grants. På varje licensnyckel-grant innehåller objektet license_key nyckeln, statusen, giltighetstiden, använda aktiveringar och aktiveringsgränsen. Objektet är null för ett grant i manuellt läge som fortfarande har status Pending.

Importera befintliga licensnycklar via API

Om du vill migrera licensnycklar från ett annat system importerar du dem med API:t Create License Key. Dina kunder fortsätter att aktivera, validera och inaktivera samma nyckelsträngar, så du behöver inte utfärda nycklar på nytt.
Licensnycklar som skapas eller uppdateras via API:t utlöser inga e-postaviseringar till kunder. Om du vill informera kunder om en importerad nyckel meddelar du dem från din egen applikation.
Begäran kräver key, customer_id och product_id. Utelämna activations_limit för obegränsade aktiveringar och utelämna expires_at för en nyckel som aldrig löper ut. Om du importerar en nyckelsträng som redan finns returneras 409.

Hur nycklar skiljer sig beroende på källa

Fältet source registrerar hur varje licensnyckel skapades: Använd source för att skilja migrerade och manuellt uppfyllda nycklar från nycklar som Dodo Payments genererat, till exempel när du stämmer av eller granskar nycklar. Fältet finns i licensnyckelposter, till exempel i svaret från POST /license_keys. Objektet license_key i grants från List Grants innehåller inte fältet. Den äldre endpointen GET /license_keys, som returnerar source och accepterar ett source-filter, är föråldrad.
Migrerar du från Polar.sh eller Lemon Squeezy? dodo-migrate CLI importerar produkter, kunder, rabatter och licensnycklar i bulk med ett enda kommando och mappar externa ID:n till Dodo Payments-ID:n.

Licensnycklar i return-URL:en

När en kund köper en produkt med ett License Key-entitlement lägger Dodo Payments till den genererade nyckeln i din return_url som frågeparametern license_key. Din bekräftelsesida kan visa nyckeln utan ett extra API-anrop:
Om köpet genererar mer än en nyckel (antal över 1) innehåller parametern en kommaseparerad lista. Kommatecknet URL-kodas som %2C, så läs parametern med en URL-parser, som avkodar den, innan du delar upp den:
För prenumerationer innehåller URL:en subscription_id och prenumerationsstatusen i stället för payment_id:
Läs parametern license_key på din return-sida för att visa nyckeln direkt efter köpet.

API-hantering

Aktivering, inaktivering och validering är publika och kräver ingen API-nyckel.

Activate License

Skapa en aktiveringsinstans för en licensnyckel.

Deactivate License

Ta bort en aktiveringsinstans för att frigöra kapacitet.

Validate License

Kontrollera att en nyckel är aktiv och inte har löpt ut innan du beviljar åtkomst.
Skapa, lista, hämta och uppdatera enskilda licensnyckelposter. Använd dessa endpoints för att importera befintliga nycklar eller läsa användningsdetaljer.
GET /license_keys, GET /license_keys/{id} och PATCH /license_keys/{id} är föråldrade. För läsningar använder du entitlement grant-endpoints (List Grants, List Customer Grants). POST /license_keys stöds fortfarande för import av befintliga nycklar.

Create License Key

Skapa en 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 giltighetstiden eller aktiveringsgränsen eller aktivera eller inaktivera en nyckel.
Hantera själva License Key-entitlementet: dess aktiveringsgräns, licenslängd och aktiveringsmeddelande.

Create Entitlement

Skapa ett License Key-entitlement.

Update Entitlement

Uppdatera entitlementets konfiguration.

List Grants

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

Revoke Grant

Återkalla en kunds nyckel manuellt.

Webhooks

Leverans och återkallning av licensnycklar skickar de fyra entitlement_grant.* webhook-händelserna. För licensnyckel-grants innehåller nyttolasten ett license_key-objekt med nyckeln, statusen, giltighetstiden, använda aktiveringar och aktiveringsgränsen. Den äldre händelsen license_key.created utlöses fortfarande när en licensnyckelpost skapas. Se sidan License Key webhook payload.
För nya integrationer hanterar du entitlement grant-händelser i stället för license_key.created. En automatiskt uppfylld nyckel anländer som entitlement_grant.created med status: "Delivered", och ingen separat entitlement_grant.delivered-händelse följer. En manuellt uppfylld nyckel utlöser entitlement_grant.delivered när du tillhandahåller den. Samma händelser omfattar alla entitlements på produkten, inte bara licensnyckeln.

Äldre licensnycklar

Produkter som skapats med den äldre flaggan license_key_enabled har migrerats automatiskt till ett License Key-entitlement. Migreringen är transparent: befintliga kunders nycklar fortsätter att fungera, de publika endpointsen /licenses/activate, /licenses/validate och /licenses/deactivate fortsätter att fungera och API-endpointsen /license_keys/* läser från och skriver till samma nyckellager.Den fristående dashboard-sektionen Sales → License Keys finns fortfarande kvar som en platt lista över alla utfärdade nycklar för granskning och sökning. Om du vill ändra aktiveringsgränser, licenslängd eller aktiveringsmeddelande redigerar du det migrerade License Key-entitlementet under Entitlements.

Bästa praxis

  • Välj tydliga aktiveringsgränser: välj standardvärden som 1 för appar för enskilda användare eller 3–5 för teamlicenser och dokumentera dem för dina kunder.
  • Skriv tydliga aktiveringsmeddelanden: kunder kopierar dem från e-postmeddelandet med licensnyckeln, så exakta sökvägar och kommandon förebygger supportärenden.
  • Validera nycklar mot API:t: för nätverksanslutna produkter anropar du /licenses/validate i stället för att förlita dig på en lokalt cachad aktivering.
  • Använd webhooks för återkallning: hantera entitlement_grant.revoked för att inaktivera funktioner i appen när en kund avslutar eller får en återbetalning.
  • Testa prenumerationer och engångsköp: licensnycklars beteende skiljer sig mellan dessa, till exempel löper prenumerationsnycklar inte ut, så testa båda innan du går live.
Senast ändrad 26 september 2026