Pending grant och väntar på att du ska ange nyckelvärdet från ditt eget system, en tredjepartsleverantör eller en begränsad pool av koder.
När du är klar kommer du att ha:
- En produkt med rättigheter för licensnyckel inställd till
manualleverans. - En webhook-lyssnare som detekterar när en kund väntar på en nyckel.
- Ett leveranssamtal som levererar nyckeln och automatiskt meddelar kunden.
License Keys overview
Den fullständiga livscykeln för licensnyckeln och
fulfillment_mode-inställningen.Fulfill License Key Grant API
API-referens för slutpunkten du anropar för att leverera en nyckel.
Hur det fungerar
Manuell leverans ändrar endast utgivningssteget. Aktivering, validering, avaktivering, utgång och återkallande fungerar precis som en auto-genererad nyckel när den väl är levererad.Förutsättningar
För att följa denna guide behöver du:- Ett Dodo Payments handlarkonto.
- Din API-nyckel (
DODO_PAYMENTS_API_KEY) och hemlig webhook-nyckel från instrumentpanelen. Se Guiden för API-nyckelgenerering. - En backend-slutpunkt som kan ta emot webhooks.
Använd
https://test.dodopayments.com och testläges-uppgifter under byggandet. Byt till https://live.dodopayments.com och live-nycklar när du går till produktion.Steg 1 — Skapa en rättighet för licensnycklar i manuellt läge
En rättighet är en återanvändbar definition av vad du levererar. Skapa en rättighet för licensnyckel och ställ in dessfulfillment_mode till manual.
- Dashboard
- API
1
Open Entitlements
Gå till Rättigheter i din instrumentpanel och klicka på + för att skapa en ny rättighet.
2
Choose License Key
Välj Licensnyckel som integration och ge den ett Namn. Formuläret exponerar dessa fält:
- Leveransläge —
Automaticsom standard. Detta är inställningen som möjliggör manuell leverans; du ändrar det i nästa steg. - Licensens längd — hur länge varje utfärdad nyckel är giltig, eller Ingen utgång.
- Aktiveringsgräns — maximalt antal aktiveringar per nyckel, eller Obegränsat.
- Aktiveringsmeddelande — valfritt kundriktat meddelande som visas när de aktiverar nyckeln.

3
Set Fulfillment Mode to Manual
Öppna rullgardinsmenyn Fulfillment Mode och ändra den från Automatic till Manual. Detta är inställningen som styr hela guiden — utan den genereras och skickas nycklar automatiskt via e-post och inget väntande grant skapas. När Manual är valt skapar varje köp ett
Pending grant som du ska leverera. Klicka på Create Entitlement för att spara.fulfillment_mode standard är auto. Att utelämna det eller lämna en befintlig rättighet oförändrad behåller det automatiska beteendet. Endast rättigheter som explicit är inställda på manual skapar väntande beviljanden.Steg 2 — Fäst rättigheten till en produkt
Öppna produkten du vill sälja, expandera Avancerade inställningar → Rättigheter & Krediter, och välj Licensnyckelrättigheten du satte till Manuell i Steg 1. En enda produkt kan leverera denna licensnyckel tillsammans med andra rättigheter vid samma köp.
Selecting the License Key entitlement in the product entitlements panel.
Leveransläge är en egenskap hos rättigheten, inte produkten. Eftersom du satte den till Manuell i Steg 1 skapar varje produkt denna rättighet är fäst vid
pending licensnyckel-beviljanden vid köp — det finns inget extra att konfigurera här.Leveransläget är en egenskap hos entitlement, inte produkten. Eftersom du angav Manual i steg 1 skapar varje produkt som detta entitlement är kopplat till
Pending license-key grants vid köp — inget ytterligare behöver konfigureras här.Steg 3 — Detektera väntande beviljanden
När en kund köper produkten skapar Dodo Payments ett beviljande ipending-status utan nyckel bifogad och skickar en entitlement_grant.created-webhook. Detta är din signal att en kund väntar på en nyckel.
När en kund köper produkten skapar Dodo Payments ett grant med statusen Pending, utan någon kopplad nyckel, och skickar en entitlement_grant.created webhook. Detta är din signal om att en kund väntar på en nyckel.
Ställ in en webhook-slutpunkt (Utvecklare → Webhooks i instrumentpanelen) och agera på väntande licensnyckel-beviljanden. Implementationen följer specifikationen Standard Webhooks.
Eller fråga List Grants API
Om du hellre vill undvika webhooks, lista beviljanden för rättigheten och filtrera efterintegration_type och status:
Om du hellre inte vill förlita dig på webhooks, lista beviljanden för din License Key-rättighet och filtrera efter status. Varje beviljande på en License Key-rättighet är redan ett licensnyckel-beviljande, så inget integration_type-filter behövs.
Node.js
Node.js
cURL
Steg 4 — Leverera nyckeln
Hämta nyckelvärdet från ditt eget system och skicka det med Fullgör Licensnyckel-beviljande slutpunkten. Detta kräver din hemliga API-nyckel (Redaktörsbehörighet); det är inte en av de offentliga licens-slutpunkterna.Begär fält
string
obligatorisk
Licensnyckelsträngen som ska levereras till kunden. Mellanslag trimmas; ett tomt eller endast mellanslag-värde avvisas.
integer
Aktiveringsbegränsning per nyckel. Återgår till rättighetskonfigurationen när den utelämnas.
string
Förfallodatum per nyckel (ISO 8601). Återgår till rättighetskonfigurationens varaktighet när den utelämnas. För beviljanden utfärdade av prenumerationer förblir giltigheten kopplad till prenumerationen oavsett.
delivered, kunden skickas automatiskt nyckeln (samma e-post som de skulle ha fått under automatisk leverans), och entitlement_grant.delivered utlöses.
När operationen lyckas övergår grant till Delivered, kunden får nyckeln automatiskt (samma e-postmeddelande som kunden skulle ha fått vid automatisk leverans), och webhook-händelserna license_key.created och entitlement_grant.delivered utlöses.

The license key email the customer receives once you fulfill the grant.
Du behöver inte skicka nyckeln själv — leverans sker automatiskt när beviljandet fullgörs.
Steg 5 — Hantera fel och omförsökningar
Slutpunkten validerar beviljandet innan något levereras. Hantera dessa svar:Verifiera flödet
- Köp produkten i testläge (se checkout-guiderna).
-
Bekräfta att din webhook tog emot
entitlement_grant.createdmedstatus: "pending"ochintegration_type: "license_key", eller att beviljandet dyker upp i List Grants-svaret med dessa filter. - Anropa fullgörande slutpunkt med en testnyckel.
-
Bekräfta att svaret visar
status: "delivered"med ett ifylltlicense_key, att kunden får nyckel-e-postmeddelandet, ochentitlement_grant.deliveredutlöses. - Köp produkten i testläge (se guiderna för checkout).
-
Bekräfta att din webhook tog emot
entitlement_grant.createdmedstatus: "Pending"ochintegration_type: "license_key", eller att grant visas i svaret från List Grants med dessa filter. - Anropa fulfill-endpointen med en testnyckel.
-
Bekräfta att svaret visar
status: "Delivered"med ett ifylltlicense_key, att kunden får e-postmeddelandet med nyckeln och attentitlement_grant.deliveredutlöses.
Relaterad API-referens
Create Entitlement
Skapa licensnyckelrättigheten med
fulfillment_mode: manual.List Grants
Filtrera efter
integration_type och status för att hitta väntande beviljanden.Fulfill License Key Grant
Leverera nyckelvärdet och överför beviljandet till levererat.
Entitlement Grant Webhooks
entitlement_grant.*-händelserna som signalerar väntande och levererade beviljanden.Create Entitlement
Skapa License Key-entitlementet med
fulfillment_mode: manual.List Grants
Filtrera efter
status och customer_id för att hitta väntande grants.Fulfill License Key Grant
Leverera nyckelvärdet och ändra grantets status till levererad.
Entitlement Grant Webhooks
Händelserna
entitlement_grant.* som signalerar väntande och levererade grants.