権利は、成功した支払いまたはアクティブなサブスクリプションを実際のアクセスに変えます:顧客の受信トレイのライセンスキー、アプリがチェックするフィーチャーフラグ、Discord の役割、GitHub リポジトリ、Notion テンプレート、Framer リミックスリンク、Telegram チャット招待、またはダウンロード可能なファイル バンドル。Dodo Payments は、支払いライフサイクルの変化に応じてそのアクセスを自動的に発行、追跡、および取り消します。

特権とは何ですか?
特権とは、顧客に提供するものの再利用可能な定義です: Proライセンスキー、“Patrons” Discord役割、プライベートGitHubリポジトリへのアクセス、ダウンロード可能な電子書籍バンドルなど。特権を製品に添付し、Dodo Paymentsが残りを処理します。 顧客が製品を購入すると、Dodo Paymentsはその特権の単一の発行である付与を作成します。付与は、小さな状態セットを通過します: 配信が進行中の場合はpending、顧客がアクセスした後はdelivered、配信が完了できなかった場合はfailed、アクセスが取り消された場合はrevokedといった具合です。
利用可能な統合
Dodo Paymentsは、各特権を専用の統合を通じて配信します。あなたが販売するものに合った統合を選択してください。License Keys
アクティベーション制限と有効期限を持つユニークなライセンスキーを生成します。ソフトウェア、プラグイン、CLIに最適です。
Digital Files
事前サインされたダウンロードURLとオプションの指示を持つダウンロード可能なファイル(電子書籍、テンプレート、メディア)を配信します。
Feature Flags
自分のアプリで購入を通じて機能をゲートします。即時に配信され、API を介して確認され、キャンセル時に取り消されます。
Discord
購入時に顧客に Discord サーバーで役割を付与します。キャンセル時に自動的に取り消されます。
GitHub
選択した許可レベルで、プライベートリポジトリに顧客を共同作業者として追加します。
Telegram
購入後にプライベートな Telegram チャットまたはチャンネルに顧客を追加します。
Framer
支払った顧客向けに Framer テンプレートのリミックスリンクを解除します。
Notion
購入時に Notion テンプレートを顧客のワークスペースに複製します。
権利のしくみ
権利は、すでに受け取っている Webhook としての同じ支払いおよびサブスクリプションのイベントによって駆動されます。購入の場合、権利 API を自分で呼び出す必要はありません。Dodo Payments は、支払いライフサイクルに基づいて自動的に権利を作成および取り消します。権利のライフサイクル
Created
支払いが完了するかサブスクリプションがアクティブ化されると権利が作成されます。ライセンスキーとフィーチャーフラグは、直接
delivered にジャンプします。その他の統合は pending から始まります。OAuth ベースの統合 (Discord、GitHub、Notion) には、顧客が同意を完了するために訪問する必要がある oauth_url が含まれています。プラットフォーム直結型統合 (Telegram、Framer、デジタルファイル) は、プロビジョニング中は短い間 pending にあり、その後 delivered に移行します。Delivered
配信が完了すると(ライセンスキー生成、役割付与、リポジトリアクセス付与、ファイルリンク解決、OAuth 完了)、権利は
delivered に移動し、delivered_at が設定されます。Failed
統合通話が再試行不可能なエラー(取り消された OAuth トークン、許可が拒否された、ファイルが存在しなくなった)を返した場合、権利は
failed に移動します。error_code および error_message フィールドはその理由をキャプチャします。イベントによる権利の動作
| Event | Behavior |
|---|---|
payment.succeeded (one-time payment) | 添付された権利ごとに 1 つの権利を発行します。 |
payment.succeeded (subscription-linked payment) | No-op。権利は以下のサブスクリプションイベントによって駆動されます。 |
subscription.active | すでにない場合は、添付された権利の権利を発行します。同じサブスクリプションのために以前に取り消されたすべての権利を再発行します。 |
subscription.renewed | No-op。既存の権利は更新を越えて持続します。 |
subscription.on_hold | すべての配信済みおよび保留中の権利を取り消します。revocation_reason: subscription_on_hold。 |
subscription.cancelled | すべてを取り消します。revocation_reason: subscription_cancelled。 |
subscription.expired | すべてを取り消します。revocation_reason: subscription_expired。 |
subscription.plan_changed | 現在のすべての権利を取り消し、新しいプランの権利を出します。revocation_reason: plan_changed。 |
refund.succeeded (one-time payment) | その支払いの権利を取り消します。revocation_reason: refund。 |
| Manual API revoke | revocation_reason: manual で取り消します。手動の取り消しはサブスクリプションの更新時に自動再付与されません。 |
| License key disabled | ライセンスキーの権利の場合、基盤となるキーを無効にすると、revocation_reason: license_key_disabled で権利が取り消されます。キーが再有効化されると自動的に再活性化されます。 |
| Platform drift detected | 統合のプラットフォーム側が同期から外れる場合 (Discord 役割が手動で削除される、GitHub アプリがリポジトリアクセスを失う、または検出パスでターゲットが見つからない)、権利は revocation_reason: platform_external で取り消されます。基盤となるプラットフォームの問題が解決されるまで、サブスクリプションの更新時に自動再付与されません。 |
サブスクリプション駆動の権利は、
(entitlement, customer, subscription) によって冪等です。更新および再活性化は重複した権利を作成しません。一回限りの権利は、(entitlement, customer, payment) によって冪等です。最初の権利を作成
Pick an integration
統合タイプを選択します: ライセンスキー、デジタルファイル、フィーチャーフラグ、Discord、GitHub、Telegram、Framer、または Notion。プラットフォーム統合の場合は、接続していなければ最初にアカウントを接続してください。
Configure delivery
統合に固有のフィールドを記入してください。たとえば、GitHub はリポジトリと許可レベルを求め、Discord はサーバーとオプションの役割を求め、ライセンスキーは有効化制限と有効期限を求めます。

商品に権利を添付
商品を開き、Advanced Settings → Entitlements & Credits を展開し、商品購入時に配信される権利を選択します。単一の商品で複数の権利を同時に配信できます。たとえば、Pro プランには、ライセンスキー、GitHub アクセス、および Discord 役割を含めることができます。
顧客体験
Eメールと顧客ポータル
顧客は、購入後に配信メールを受け取り、ライセンスキー、ダウンロードリンク、OAuth 招待リンク、またはプラットフォーム招待など、製品の権利に該当するものが含まれます。同じ情報は、Customer Portal の注文履歴から無期限に利用可能です。OAuth ベースの配信
Discord、GitHub、Notion サブスクライバーアクセスでは、顧客が Dodo Payments にアクセス権を与えるための認可が必要です。これらの権利は、顧客が Eメールまたは顧客ポータルからリンクを使用して OAuth フローを完了するまで、pending ステータスに留まります。認可されると、権利は delivered に移行し、プラットフォームアクセスが即時に提供されます。
取り消し
取り消された権利はプラットフォームレベルで削除されます:Discord の役割が削除され、GitHub の共同作業者が削除され、ライセンスキーが無効になります。顧客は、顧客ポータルで変更が反映されたことを見ることができます。権利の管理
ダッシュボードから任意の権利を開いて、その権利を確認します。権利の詳細パネルには、総権利数、ステータスフィルタ、顧客情報、配信日、および取り消しアクションが表示されます。 権利をプログラム的に管理することもできます:API 管理
Create Entitlement
任意の統合タイプの新規権利を作成します。
List Entitlements
統合タイプごとのフィルタリングを使用して権利を一覧表示します。
Get Entitlement
権利とその解決済み設定を取得します。
Update Entitlement
名前、説明、または統合設定を更新します。
Delete Entitlement
権利をソフト削除します;既存の権利は影響を受けません。
Upload File
最大 500 MiB までのファイルをデジタルファイルの権利にアップロードします。
List Grants
ステータスおよび顧客フィルタを使用して権利のすべてを一覧表示します。
Revoke Grant
単一の権利を手動で取り消します。
Webhooks
Dodo Payments は、権利のライフサイクルに対して 4 つの webhook イベントを発行します。これらのイベントを購読して、各顧客がアクセスできる内容に関してアプリケーションを同期状態に保ちます。| Event | Fires when |
|---|---|
entitlement_grant.created | 新しい権利が作成されます。ライセンスキーの権利は delivered に届きます。全ての他の統合は pending に届き、プラットフォームコールが成功した(または OAuth ベースの統合の場合、顧客が認可した)後、delivered に移行します。 |
entitlement_grant.delivered | 権利が配信済みに移行します。顧客は今アクセス可能です。 |
entitlement_grant.failed | 権利を配信できませんでした。error_code および error_message を確認します。 |
entitlement_grant.revoked | アクセスが撤回されました。revocation_reason を確認します。 |
Entitlement Grant Webhook Payloads
完全なペイロードスキーマ、サンプルイベント、および
revocation_reason リファレンスを表示します。ベストプラクティス
- 配信チャネルごとに一つの権利を使用すること。 異なる役割の意図で異なる製品間で単一の Discord 権利を共有しないでください。クリーンな取り消しのために役割ごとに一つの権利を作成します。
- 最初にテストモードでテストすること。 権利を作成し、テスト製品に添付し、チェックアウトを実行し、権利が
pending → deliveredを経て移行するのを確認します。テストサブスクリプションをキャンセルして権利が取り消されることを確認します。 entitlement_grant.deliveredに聞く。payment.succeededではなく。 支払いは、完了前に成功することがあります(特に OAuth フローの場合)。納品済みイベントを待って、自社システムの依存機能を解除します。entitlement_grant.failedをアクション可能として扱うこと。 失敗した権利は、顧客が支払ったがアクセスを得られなかったことを意味します。これをサポートチームに表面化させるか、再権利をトリガーします。revocation_reasonを保持フローにマッピングすること。subscription_on_holdの取り消しは回復可能です(顧客がカードを更新するかもしれません)。manualの取り消しは意図的です。顧客コミュニケーションで異なる取り扱いをします。