Pending grant が作成されます。この grant は、Dodo Payments が支払い時にキーを生成する代わりに、あなたがキーの値を提供するまで待機します。キーは、自社システム、サードパーティベンダー、または限られたコードプールから取得できます。
このガイドを完了すると、次のことができるようになります。
- ライセンスキー権利が
manual発行に設定された製品。 - 顧客がキーを待っているときに検出する Webhook リスナー。
- キーを配信し、顧客に自動的に通知する発行コール。
License Keys Overview
完全なライセンスキーのライフサイクルと、
fulfillment_mode 設定を理解できます。Fulfill License Key Grant API
キーを提供するために呼び出す endpoint の API reference を確認できます。
仕組み
以下のシーケンスは、checkout からキーの提供まで、1 回の購入の流れを示しています。 手動 fulfillment によって変わるのは issuance のステップだけです。提供後のキーは、activation、validation、deactivation、expiry、revocation について、自動生成されたキーと同じように動作します。複数ユニットの購入では、ユニットごとに 1 つのPending grant が作成され、各 grant に固有のキーが必要です。
前提条件
このガイドに従うには、次のものが必要です。- Dodo Payments の merchant account。
- Developer → API Keys で作成し、
DODO_PAYMENTS_API_KEYに保存した API key と、Developer → Webhooks から取得してDODO_PAYMENTS_WEBHOOK_KEYに保存した webhook signing secret。API key generation guideを参照してください。 - Webhook を受信できる backend endpoint。
構築中は
https://test.dodopayments.com と test mode の認証情報を使用してください。本番環境に移行する際は、https://live.dodopayments.com と live mode のキーに切り替えます。Step 1 — Manual Mode で License Key Entitlement を作成する
entitlement は、提供するものを定義した再利用可能な定義です。License Key entitlement を作成し、fulfillment_mode を manual に設定します。
- Dashboard
- API
1
Open Entitlements
Dashboard で Entitlements に移動し、+ をクリックして entitlement を作成します。
2
Choose License Key
License Keys を選択し、Name を入力します。フォームには次のフィールドがあります。
- Fulfillment Mode: デフォルトは Automatic です。これが manual fulfillment を有効にする設定で、次のステップで変更します。
- License Length: 発行した各キーが有効である期間、または No expiration。
- Activations Limit: キーごとの activation の最大回数、または Unlimited。
- Activation Message: 顧客がキーを activation したときに表示され、license key email に含まれる、任意の顧客向けメッセージ。

3
Set Fulfillment Mode to Manual
Fulfillment Mode dropdown を開き、Automatic から Manual に変更します。以降のガイドはこの設定を前提としています。この設定がない場合、Dodo Payments はキーを自動的に生成してメールで送信し、保留中の grant は作成しません。Manual を選択すると、購入ごとに fulfillment が必要な
Pending grant が作成されます。Create Entitlement をクリックして保存します。fulfillment_mode のデフォルト値は auto です。省略した場合、または既存の entitlement を変更しない場合、その entitlement は automatic fulfillment のままです。manual に明示的に設定した entitlement だけが、保留中の grant を作成します。Step 2 — Entitlement を Product に関連付ける
販売する product を開き、その Entitlements セクションに移動して、Step 1 で Manual に設定した License Key entitlement を選択します。1 つの product で、同じ購入においてこの license key を他の entitlement と一緒に提供できます。 まだ product がない場合は、まず one-time product または subscription product を作成してください。checkout で販売する方法については、Integration Guideを参照してください。
Selecting the License Key entitlement in the product entitlements panel.
Fulfillment mode は product ではなく entitlement のプロパティです。Step 1 で Manual に設定したため、この entitlement が関連付けられたすべての product では、購入時に
Pending license-key grant が作成されます。product で他に設定する必要はありません。Step 3 — 保留中の Grant を検出する
顧客が product を購入すると、Dodo Payments は キーが関連付けられていないPending status の grant を作成し、entitlement_grant.created webhook を送信します。このイベントは、顧客がキーを待っていることを示すシグナルです。
Webhook をリッスンする
Dashboard の Developer → Webhooks で webhook endpoint を追加し、保留中の license-key grant に対して処理を実行します。Webhook は Standard Webhooks specification に従うため、standardwebhooks library で検証できます。
integration_type: "license_key" が含まれるため、追加の lookup なしで license-key grant を識別できます。Webhook delivery は繰り返される可能性があるため、すでに処理した webhook-id header のイベントはスキップしてください。完全な payload については、Entitlement Grant webhook referenceを参照してください。
List Grants API をポーリングする
Webhook に依存したくない場合は、License Key entitlement の grant を一覧表示し、status でフィルタリングします。License Key entitlement のすべての grant は license-key grant であるため、integration_type filter は必要ありません。
Step 4 — キーを提供する
自社システムからキーの値を取得し、Fulfill License Key Grant endpoint に送信します。この call には Editor permission を持つ secret API key が必要です。これは public license endpoint の 1 つではありません。SDK でも利用でき、たとえば TypeScript ではclient.entitlements.grants.fulfillLicenseKey()、Python では client.entitlements.grants.fulfill_license_key() として公開されています。
Request Fields
string
必須
顧客に提供する license key string。最大 255 文字です。前後の whitespace は trim され、空の値または whitespace のみの値は拒否されます。
integer
キーごとの activation limit。1 以上である必要があります。省略した場合は、entitlement の Activations Limit が適用されます。
string
キーごとの expiry(ISO 8601)。省略した場合、one-time grant のキーは entitlement の License Length に従って expiry し、subscription grant のキーには expiry が設定されないため、その有効性は subscription に従います。
Delivered に移行し、Dodo Payments はキーを顧客にメールで送信します(automatic fulfillment の場合と同じ email です)。その後、license_key.created と entitlement_grant.delivered webhook event が発生します。
メールには license key、product、activation limit、expiry、および activation instructions が含まれます。

The license key email the customer receives once you fulfill the grant.
キーを自分でメール送信する必要はありません。grant が fulfillment されると、delivery は自動的に行われます。
Step 5 — エラーと Retry を処理する
endpoint は、delivery の前に grant を検証します。次の response を処理してください。Flow を検証する
Flow を end to end でテストするには、次の手順を実行します。- test mode で product を購入します。checkout guidesを参照してください。
- Webhook が
status: "Pending"とintegration_type: "license_key"を含むentitlement_grant.createdを受信したこと、またはstatus=Pendingで filter した List Grants response に grant が表示されることを確認します。 - test key を指定して fulfill endpoint を呼び出します。
- Response に
license_keyが設定されたstatus: "Delivered"が表示され、顧客がキーの email を受信し、entitlement_grant.deliveredが発生することを確認します。
キーが提供されると、顧客は自動生成されたキーと同様に、public license endpoint に対してactivation と validationを実行できます。
関連する API Reference
Create Entitlement
fulfillment_mode: manual を使用して License Key entitlement を作成します。List Grants
status と customer_id で filter して、保留中の grant を検索します。Fulfill License Key Grant
キーの値を提供し、grant を
Delivered に移行します。Entitlement Grant Webhooks
保留中および delivery 済みの grant を示す
entitlement_grant.* event。