Documentation Index
Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
Use this file to discover all available pages before exploring further.
特権は、成功した支払いまたはアクティブなサブスクリプションを実際のアクセスに変えます: 顧客の受信トレイにライセンスキー、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とオプションの指示を持つダウンロード可能なファイル(電子書籍、テンプレート、メディア)を配信します。
Discord
顧客が購入した際にDiscordサーバーで役割を付与します。キャンセル時に自動的に取り消します。
GitHub
選択した許可レベルで顧客をプライベートリポジトリにコラボレーターとして追加します。
Telegram
購入後に顧客をプライベートTelegramチャットやチャンネルに追加します。
Framer
支払いしている顧客にFramerテンプレートリミックスリンクを解除します。
Notion
購入時に顧客のワークスペースにNotionテンプレートを複製します。
付与の仕組み
付与は、すでに受け取っているウェブフックと同じ支払いおよびサブスクリプションイベントによって駆動されます。購入の場合、付与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のフィールドが理由を記録します。イベントごとの付与の動作
| イベント | 動作 |
|---|---|
payment.succeeded (一時的な支払い) | 添付された特権ごとに1つの付与を発行します。 |
payment.succeeded (サブスクリプションリンク支払い) | 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 (一時的な支払い) | その支払いのための付与を取り消します。revocation_reason: refund。 |
| マニュアルAPI取り消し | revocation_reason: manualを使用して取り消します。サブスクリプション更新時に手動の取り消しは自動的に再付与されません。 |
| ライセンスキー無効化 | ライセンスキー付与の場合、基底キーの無効化によりrevocation_reason: license_key_disabledで付与が取り消されます。キーが再有効化されると、自動的に再アクティブ化されます。 |
| プラットフォームドリフト検出 | プラットフォーム側の統合が同期外にドリフトした場合(Discord役割が手動で削除された、GitHub Appがリポジトリアクセスを失う、または再調整パスがターゲットを検出しない)、その付与はrevocation_reason: platform_externalで取り消されます。基底プラットフォームの問題が解決されるまで、サブスクリプション更新時には自動的に再付与されません。 |
サブスクリプション駆動の付与は
(entitlement, customer, subscription)に対して冪等です。再開および再アクティベーションは、重複付与を作成しません。一回限りの付与は(entitlement, customer, payment)に対して冪等です。最初の特権を作成する
Pick an integration
統合タイプを選択します:ライセンスキー、デジタルファイル、Discord、GitHub、Telegram、Framer、またはNotion。プラットフォームの統合については、まだアカウントを接続していない場合は最初に接続してください。
Configure delivery
統合固有のフィールドを記入します。例えば、GitHubはリポジトリと権限レベルを問い合わせ、Discordはサーバーとオプションの役割を問い合わせ、ライセンスキーはアクティベーション制限と期限を問い合わせます。

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