Skip to main content
このガイドでは、手動ライセンスキー付与システムを最初から最後まで構築する方法を説明します。Dodo Payments が支払い時にキーを自動生成する代わりに、購入ごとに Pending grant が作成され、ユーザー自身のシステム、サードパーティベンダー、または有限のコードプールからキー値を提供するまで待機します。 完了することで、次のことが可能になります:
  • ライセンスキー権利が 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_modemanual に設定します。
1

Open Entitlements

ダッシュボードの権利に移動し、+ をクリックして新しい権利を作成します。
2

Choose License Key

ライセンスキーを統合として選択し、名前を付けます。フォームは次のフィールドを公開しています:
  • Fulfillment Mode — デフォルトでは Automatic。これは手動発行を有効にする設定です。次のステップで変更します。
  • License Length — 各発行されたキーが有効である期間、または No expiration
  • Activations Limit — 各キーの最大アクティベーション数、または Unlimited
  • Activation Message — キーを有効化するときに表示される、顧客向けのオプションメッセージ。
名前、付与モード、ライセンス期間、アクティベーション上限、アクティベーションメッセージを含む新しいライセンスキー entitlement フォーム
3

Set Fulfillment Mode to Manual

Fulfillment Mode ドロップダウンを開き、Automatic から Manual に変更します。これがこのガイド全体を左右する設定です。この設定を行わない場合、キーが自動的に生成されてメールで送信され、保留中の grant は作成されません。Manual を選択すると、購入ごとに付与対象の Pending grant が作成されます。Create Entitlement をクリックして保存します。
fulfillment_mode はデフォルトで auto です。それを省略するか、既存の権利を変更しないままでいると、自動動作が維持されます。明示的に manual に設定された権利のみが保留中の付与を作成します。

ステップ 2 — 権利を製品に添付

販売したい製品を開き、詳細設定 → 権利 & クレジットを展開し、ステップ 1 で手動に設定したライセンスキー権利を選択します。単一の製品で、このライセンスキーを他の権利と同じ購入に一緒に提供することができます。
製品権利パネルにライセンスキーが選択されている

Selecting the License Key entitlement in the product entitlements panel.

発行モードは権利のプロパティであり、製品のプロパティではありません。ステップ 1 で手動に設定したので、この権利が添付されたすべての製品は購買時に pending ライセンスキーの付与を作成します—ここでは何も追加で設定する必要はありません。
付与モードは product ではなく entitlement のプロパティです。Step 1 で Manual に設定したため、この entitlement が関連付けられたすべての product では、購入時に Pending license-key grant が作成されます。ここで追加設定を行う必要はありません。

ステップ 3 — 保留中の付与を検出

顧客が製品を購入すると、Dodo Payments は pending 状態でキーが添付されていない付与を作成し、entitlement_grant.created Webhook を発火します。これが顧客がキーを待っていることを示す合図です。 顧客が product を購入すると、Dodo Payments はキーが添付されていない状態で Pending status の grant を作成し、entitlement_grant.created webhook を発火します。これは、顧客がキーを待っていることを示すシグナルです。 Webhook エンドポイントをセットアップし (ダッシュボードの Developer → Webhooks)、保留中のライセンスキー付与にアクションを起こします。実装は Standard Webhooks の仕様に従います。

または List Grants API をポーリングする

Webhook に頼りたくない場合は、権利のために付与をリストし、integration_typestatus でフィルタリングします: Webhook に依存したくない場合、ライセンスキーの承認のための付与を一覧表示し、status でフィルタリングしてください。ライセンスキーの承認に関するすべての付与はすでにライセンスキーの付与であるため、integration_type フィルタは不要です。
Node.js
Node.js
cURL

ステップ 4 — キーを配信

独自のシステムからキーの値を取得し、Fulfill License Key Grant エンドポイントに送信します。これには秘密の API キー (編集者権限) が必要です。これは公開ライセンスエンドポイントのひとつではありません

リクエストフィールド

string
必須
顧客に配信するためのライセンスキー文字列。空白がトリムされます。空または空白のみの値は拒否されます。
integer
キーごとのアクティベーション制限。省略時は権利の設定にフォールバックします。
string
キーごとの有効期限 (ISO 8601)。省略時は権利設定の期間にフォールバックします。サブスクリプション発行の付与の場合、有効性はサブスクリプションに関係なくつながれたままです。
成功すれば付与が delivered に移行し、顧客に自動的にキーが送信されます(自動発行の下で受け取るのと同じメール)、entitlement_grant.delivered が発火します。 成功すると grant は Delivered に移行し、顧客にはキーが自動的に送信されます(自動付与の場合に受け取るものと同じメールです)。さらに、license_key.createdentitlement_grant.delivered webhook event が発火します。
ライセンスキー、製品、アクティベーション制限、有効期限、アクティベーション指示を示す顧客ライセンスキーのメール

The license key email the customer receives once you fulfill the grant.

キーを自分でメール送信する必要はありません—付与が完了すると自動的に配信されます。

ステップ 5 — エラーと再試行の処理

エンドポイントは何も配信する前に付与を検証します。次の応答を処理します:

フローを確認

  1. テストモードで製品を購入 (チェックアウトガイドを参照: checkout guides)。
  2. Webhook で entitlement_grant.createdstatus: "pending"integration_type: "license_key" を受信していることを確認、または付与がこれらのフィルタで List Grants の応答に表示されることを確認します。
  3. テストキーで発行エンドポイントを呼び出します。
  4. 応答が status: "delivered" を示し、license_key が入力され、顧客がキーのメールを受け取り、entitlement_grant.delivered が発火することを確認します。
  5. test mode で product を購入します(checkout guides を参照してください)。
  6. webhook が entitlement_grant.createdstatus: "Pending" および integration_type: "license_key" とともに受信したことを確認します。または、同じ filter を指定した List Grants response に grant が表示されることを確認します。
  7. test key を指定して fulfill endpoint を呼び出します。
  8. response に status: "Delivered" と値が設定された license_key が表示され、顧客が key email を受信し、entitlement_grant.delivered が発火することを確認します。

関連 API リファレンス

Create Entitlement

fulfillment_mode: manual でライセンスキーの権利を作成します。

List Grants

integration_typestatus でフィルターして保留中の付与を見つけます。

Fulfill License Key Grant

キーの値を配信し、付与を配信済みへと移行します。

Entitlement Grant Webhooks

保留中と配信済みの付与を示す entitlement_grant.* イベント。

Create Entitlement

fulfillment_mode: manual を指定して License Key entitlement を作成します。

List Grants

statuscustomer_id で filter して、保留中の grant を検索します。

Fulfill License Key Grant

キー値を配信し、grant を delivered に移行します。

Entitlement Grant Webhooks

保留中および配信済みの grant を示す entitlement_grant.* event。
最終更新日 2026年8月6日