pending の付与を作成し、あなた が独自のシステム、サードパーティのベンダー、または限られたコードのプールからキーを提供するのを待ちます。
完了することで、次のことが可能になります:
- ライセンスキー権利が
manual発行に設定された製品。 - 顧客がキーを待っているときに検出する Webhook リスナー。
- キーを配信し、顧客に自動的に通知する発行コール。
License Keys overview
完全なライセンスキーライフサイクルと
fulfillment_mode 設定。Fulfill License Key Grant API
キーを配信するために呼び出すエンドポイントの API リファレンス。
仕組み
手動発行では、発行ステップだけが変更されます。配信された後は、アクティベーション、検証、無効化、有効期限、取り消しは自動生成されたキーと同じように動作します。前提条件
このガイドを進めるには次のものが必要です:- Dodo Payments マーチャントアカウント。
- ダッシュボードの API キー (
DODO_PAYMENTS_API_KEY) と Webhook シークレットキー。API キー生成ガイドを参照: API key generation guide。 - Webhook を受信できるバックエンドエンドポイント。
https://test.dodopayments.com とテストモードの資格情報を使用して構築します。製品に移行するときは https://live.dodopayments.com とライブキーに切り替えてください。ステップ 1 — 手動モードでライセンスキー権利を作成
権利とは、提供するものの再利用可能な定義です。ライセンスキー権利を作成し、そのfulfillment_mode を manual に設定します。
- Dashboard
- API
Choose License Key
ライセンスキーを統合として選択し、名前を付けます。フォームは次のフィールドを公開しています:
- Fulfillment Mode — デフォルトでは
Automatic。これは手動発行を有効にする設定です。次のステップで変更します。 - License Length — 各発行されたキーが有効である期間、または No expiration。
- Activations Limit — 各キーの最大アクティベーション数、または Unlimited。
- Activation Message — キーを有効化するときに表示される、顧客向けのオプションメッセージ。

fulfillment_mode はデフォルトで auto です。それを省略するか、既存の権利を変更しないままでいると、自動動作が維持されます。明示的に manual に設定された権利のみが保留中の付与を作成します。ステップ 2 — 権利を製品に添付
販売したい製品を開き、詳細設定 → 権利 & クレジットを展開し、ステップ 1 で手動に設定したライセンスキー権利を選択します。単一の製品で、このライセンスキーを他の権利と同じ購入に一緒に提供することができます。
発行モードは権利のプロパティであり、製品のプロパティではありません。ステップ 1 で手動に設定したので、この権利が添付されたすべての製品は購買時に
pending ライセンスキーの付与を作成します—ここでは何も追加で設定する必要はありません。ステップ 3 — 保留中の付与を検出
顧客が製品を購入すると、Dodo Payments はpending 状態でキーが添付されていない付与を作成し、entitlement_grant.created Webhook を発火します。これが顧客がキーを待っていることを示す合図です。
Webhook を監視する
Webhook エンドポイントをセットアップし (ダッシュボードの Developer → Webhooks)、保留中のライセンスキー付与にアクションを起こします。実装は Standard Webhooks の仕様に従います。integration_type: "license_key" を運ぶので、余分なルックアップなしでライセンスキー付与を認識できます。完全なペイロードについては Entitlement Grant webhook reference を参照してください。
または List Grants API をポーリングする
Webhook に頼りたくない場合は、権利のために付与をリストし、integration_type と status でフィルタリングします:
ステップ 4 — キーを配信
独自のシステムからキーの値を取得し、Fulfill License Key Grant エンドポイントに送信します。これには秘密の API キー (編集者権限) が必要です。これは公開ライセンスエンドポイントのひとつではありません。リクエストフィールド
顧客に配信するためのライセンスキー文字列。空白がトリムされます。空または空白のみの値は拒否されます。
キーごとのアクティベーション制限。省略時は権利の設定にフォールバックします。
キーごとの有効期限 (ISO 8601)。省略時は権利設定の期間にフォールバックします。サブスクリプション発行の付与の場合、有効性はサブスクリプションに関係なくつながれたままです。
delivered に移行し、顧客に自動的にキーが送信されます(自動発行の下で受け取るのと同じメール)、entitlement_grant.delivered が発火します。
顧客はライセンスキー、製品、アクティベーション制限、有効期限、あなたのアクティベーション指示が含まれるメールを受け取ります:

キーを自分でメール送信する必要はありません—付与が完了すると自動的に配信されます。
ステップ 5 — エラーと再試行の処理
エンドポイントは何も配信する前に付与を検証します。次の応答を処理します:| ステータス | 意味 | すべきこと |
|---|---|---|
200 | キーが配信され、付与は現在 delivered です。 | 完了。 |
400 | ライセンスキーの付与ではない、またはキーが空/空白。 | リクエストを修正し、そのまま再試行しないでください。 |
404 | ビジネスにその ID の付与は存在しません。 | grant_id を確認します。 |
409 | 付与は発行待ちでない(すでに配信されているか、すでにキーがある)、または キー値がすでに存在します。 | すでに配信されている場合は、成功として処理します。重複したキーの場合は、別のキーを提供してください。 |
422 | リクエスト本文のバリデーションに失敗した(例: activations_limit < 1)。 | フィールドを修正して再試行してください。 |
フローを確認
- テストモードで製品を購入 (チェックアウトガイドを参照: checkout guides)。
- Webhook で
entitlement_grant.createdがstatus: "pending"とintegration_type: "license_key"を受信していることを確認、または付与がこれらのフィルタで List Grants の応答に表示されることを確認します。 - テストキーで発行エンドポイントを呼び出します。
- 応答が
status: "delivered"を示し、license_keyが入力され、顧客がキーのメールを受け取り、entitlement_grant.deliveredが発火することを確認します。
配信後、顧客は アクティベーションと検証 を公開ライセンスエンドポイントに対して自動生成されたキーのように行うことができます。
関連 API リファレンス
Create Entitlement
fulfillment_mode: manual でライセンスキーの権利を作成します。List Grants
integration_type と status でフィルターして保留中の付与を見つけます。Fulfill License Key Grant
キーの値を配信し、付与を配信済みへと移行します。
Entitlement Grant Webhooks
保留中と配信済みの付与を示す
entitlement_grant.* イベント。Create Entitlement
Create the License Key entitlement with
fulfillment_mode: manual.List Grants
Filter by
integration_type and status to find pending grants.Fulfill License Key Grant
Deliver the key value and transition the grant to delivered.
Entitlement Grant Webhooks
The
entitlement_grant.* events that signal pending and delivered grants.