Skip to main content
Entitlementsは、成功した支払いや有効なサブスクリプションをアクセス権に変換します。顧客の受信トレイに届くライセンスキー、アプリがチェックするfeature flag、Discordロール、GitHubリポジトリ、Notionテンプレート、Framer remixリンク、Telegramチャットへの招待、またはダウンロード可能なファイルバンドルなどです。支払いライフサイクルの変化に応じて、Dodo Paymentsがそのアクセス権を自動的に発行、追跡、取り消します。
左側に特権のリストがあり、右側に付与アクティビティがある特権ダッシュボード

The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.

Entitlementsとは?

entitlementは、Proライセンスキー、「Patrons」Discordロール、非公開GitHubリポジトリへのアクセス、ダウンロード可能な電子書籍バンドルなど、顧客に提供するものを再利用可能な形で定義したものです。Entitlementsを商品に紐付けると、顧客が支払ったときにDodo Paymentsがそれらを提供します。 顧客が商品を購入すると、Dodo Paymentsはgrantを作成します。これは、そのentitlementを1人の顧客に発行したものです。Grantには4つのステータスがあります。提供中はPending、顧客がアクセス可能になるとDelivered、提供を完了できなかった場合はFailed、アクセスが取り消されるとRevokedです。
Entitlementsはfulfillment(顧客にアクセス権があるか)を制御します。Creditsはconsumption(どれだけ使用できるか)を制御します。同じ商品に両方を紐付けることができます。CreditsについてはCredit-Based Billingを参照してください。

利用可能な統合

各entitlementは1つのintegrationを通じて提供されます。販売するものに合ったintegrationを選択してください。

License Keys

アクティベーション制限と有効期限を持つユニークなライセンスキーを生成します。ソフトウェア、プラグイン、CLIに最適です。

Digital Files

電子書籍、テンプレート、メディアなどのダウンロード可能なファイルを、署名付きダウンロードURLと任意の手順とともに提供します。

Feature Flags

購入に応じて、独自アプリのfeatureを制御します。作成時に提供され、APIで確認でき、キャンセル時に取り消されます。

Discord

購入時に顧客へDiscordサーバーのロールを付与します。キャンセル時にはロールが自動的に削除されます。

GitHub

選択した許可レベルで、プライベートリポジトリに顧客を共同作業者として追加します。

Telegram

購入後にプライベートな Telegram チャットまたはチャンネルに顧客を追加します。

Framer

支払った顧客向けに Framer テンプレートのリミックスリンクを解除します。

Notion

購入時に Notion テンプレートを顧客のワークスペースに複製します。

権利のしくみ

Grantは、webhookとして受信する支払いイベントおよびサブスクリプションイベントに従います。Dodo Paymentsは支払いライフサイクルに基づいて購入のgrantを自動的に作成・取り消すため、grant APIを自分で呼び出す必要はありません。

権利のライフサイクル

Grantは次のステータスを順に遷移します。
1

Created

Dodo Paymentsは、支払いが完了したとき、またはサブスクリプションが有効になったときにgrantを作成します。Feature-flag grantはDeliveredとして開始します。entitlementがfulfillment_mode: auto(デフォルト)を使用する場合、ライセンスキーgrantもDeliveredとして開始します。fulfillment_mode: manualでは、grantはPendingとして開始し、Fulfill License Key Grantでキーを指定するまでキーはありません。その他のintegrationはすべてPendingとして開始します。OAuthベースのintegration(Discord、GitHub、Notion)は、顧客がアクセスして同意を与えるoauth_urlを公開します。Dodo Paymentsはgrant作成時にこのURLの生成を試みます。失敗した場合、顧客が配信メールまたはCustomer Portalからacceptフローを開始するまで、フィールドはnullのままです。Platform-direct integration(Telegram、Framer、Digital Files)は、提供がプロビジョニングされている間だけPendingのままで、その後Deliveredに移行します。
2

Delivered

提供が完了すると、grantはDeliveredに移行し、delivered_atが設定されます。ライセンスキーが生成されたとき、ロールが割り当てられたとき、リポジトリへのアクセスが許可されたとき、ファイルリンクが解決されたとき、またはOAuthフローが完了したときに、提供は完了します。
3

Failed

取り消し不能なエラー(取り消されたOAuth token、拒否された権限、存在しなくなったファイルなど)がintegration呼び出しから返された場合、grantはFailedに移行します。error_codeフィールドとerror_messageフィールドに理由が記録されます。
4

Revoked

サブスクリプションのキャンセル、返金の発行、grantの取り消しなどによってアクセスが取り消されると、grantはRevokedに移行します。revocation_reasonフィールドにトリガーが記録されます。

イベントごとのGrantの動作

各支払いイベントおよびサブスクリプションイベントによって、Grantは次のように変化します。
サブスクリプションによるgrantは(entitlement, customer, subscription)ごとにidempotentであるため、更新や再有効化によって重複したgrantが作成されることはありません。単発grantは(entitlement, customer, payment)ごとにidempotentです。

最初のEntitlementを作成する

1

Open Entitlements

ダッシュボードでEntitlementsに移動し、**+**をクリックしてentitlementを作成します。
2

Pick an Integration

integrationの種類として、License Key、Digital Files、Feature Flag、Discord、GitHub、Telegram、Figma、Framer、またはNotionを選択します。プラットフォームintegrationの場合、まだ接続していなければ、先にアカウントを接続してください。
3

Configure Delivery

integrationのフィールドに入力します。たとえばGitHubではリポジトリと権限レベル、Discordではサーバーと任意のロール、License Keyではアクティベーション数の上限とライセンス期間を指定します。
integration selectorと設定フィールドを含むNew Entitlementフォーム

Creating a GitHub entitlement. Each integration shows the fields it needs.

4

Save

Create Entitlementをクリックします。これで、任意の商品にentitlementを紐付けられます。

Entitlementsを商品に紐付ける

商品を開き、Entitlementsセクションに移動して、商品購入時に提供するentitlementを選択します。1つの商品で複数のentitlementを同時に提供できます。たとえばProプランには、ライセンスキー、GitHubアクセス、Discordロールを含められます。
利用可能な各entitlementのチェックボックスを表示する商品entitlement選択パネル

Attaching entitlements to a product. Selected entitlements are delivered on every successful purchase or active subscription.


顧客体験

EmailとCustomer Portal

購入後、顧客には、その商品のentitlementに応じたライセンスキー、ダウンロードリンク、OAuth招待リンク、またはプラットフォーム招待を含む配信メールが届きます。Grantが有効な間は、同じ詳細をCustomer Portalの注文履歴からも確認できます。

OAuthベースの提供

Discord、GitHub、Notionのsubscriber accessでは、顧客がDodo Paymentsにそのアクセス権の付与を承認する必要があります。顧客がメールまたはCustomer PortalのリンクからOAuthフローを完了するまで、これらのgrantはPendingのままです。顧客が承認すると、grantはDeliveredに移行し、Dodo Paymentsがプラットフォームアクセスをプロビジョニングします。

取り消し

Grantが取り消されると、Dodo Paymentsはプラットフォーム上のアクセス権を削除します。Discordロールを削除し、GitHub collaboratorを削除し、またはライセンスキーを無効にします。顧客はCustomer Portalで変更を確認できます。
Digital Filesでは、取り消しによって新しい署名付きダウンロードURLの発行は停止しますが、顧客がすでにダウンロードしたコピーは無効になりません。この点を考慮してコンテンツのアクセス制御を計画してください。

Grantを管理する

ダッシュボードから任意のentitlementを開くと、そのgrantを確認できます。詳細パネルには、付与数の合計、ステータスフィルター、顧客、アクセス日、ステータス、Revokeアクションを含むgrantごとの行が表示されます。 Grantをプログラムで管理するには、statusフィルターで一覧表示し、IDを指定して1つのgrantを取り消します。

API管理

Create Entitlement

任意のintegrationタイプのentitlementを作成します。

List Entitlements

integrationタイプでフィルタリングしてentitlementを一覧表示します。

Get Entitlement

entitlementと解決済みの設定を取得します。

Update Entitlement

名前、説明、またはintegration設定を更新します。

Delete Entitlement

entitlementをソフトデリートします。既存のgrantは取り消されませんが、Dodo Paymentsはそれらを管理しなくなります。

Upload File

最大500 MiBのファイルをDigital Files entitlementにアップロードします。

List Grants

ステータスと顧客でフィルタリングして、entitlementのgrantを一覧表示します。

Revoke Grant

1つのgrantを手動で取り消します。

Webhooks

Dodo Paymentsは、grantライフサイクルに関する4つのwebhookイベントを送信します。これらを購読して、各顧客がアクセスできる内容とアプリケーションを同期してください。

Entitlement Grant Webhook Payloads

完全なpayloadスキーマ、サンプルイベント、revocation_reasonのリファレンスを確認できます。

ベストプラクティス

  • 提供チャネルごとに1つのentitlementを使用する。 異なるロール目的を持つ商品間で、1つのDiscord entitlementを共有しないでください。取り消しを適切に行えるよう、ロールごとに1つのentitlementを作成します。
  • まずtest modeでテストする。 Entitlementを作成し、テスト商品に紐付け、checkoutを実行して、grantがPendingからDeliveredへ移行することを確認します。その後、テストサブスクリプションをキャンセルし、grantが取り消されることを確認します。
  • payment.succeededではなくentitlement_grant.deliveredをリッスンする。 特にOAuthフローでは、fulfillmentが完了する前に支払いが成功することがあります。独自システムで依存するfeatureのロックを解除する前に、grantがDeliveredになるまで待ってください。自動fulfillされたライセンスキーやfeature flagなど、作成時に提供されるgrantは、代わりにentitlement_grant.createdとstatus: "Delivered"として届きます。
  • entitlement_grant.failedを対応が必要なイベントとして扱う。 Grantの失敗は、顧客が支払ったにもかかわらずアクセスできていないことを意味します。これらのgrantをサポートチームに通知するか、再発行をトリガーしてください。
  • revocation_reasonをretentionフローにマッピングする。 subscription_on_holdによるrevokeは、顧客がカードを更新できるため復旧可能です。manualによるrevokeは意図的なものです。顧客へのメッセージでは、これらを区別して扱ってください。
  • subscription.past_dueでアクセスを取り消さない。 このイベントはgrace periodを開始し、期間が終了するまで顧客はアクセスを維持します。subscription.on_holdまたはsubscription.cancelledを待ってください。
最終更新日 2026年9月26日