メインコンテンツへスキップ

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は、基礎となる支払いライフサイクルに基づいて付与を自動的に作成および取り消します。

付与のライフサイクル

1

Created

支払いが完了するか、サブスクリプションがアクティブになると付与が作成されます。ライセンスキーはすぐにdeliveredにジャンプします。他の全ての統合はpendingで始まります。OAuthベースの統合(Discord、GitHub、Notion)は、顧客が同意を完了するために訪れる必要のあるoauth_urlを含みます。プラットフォーム直結の統合(Telegram、Framer、デジタルファイル)は、配信がプロビジョニングされている間だけ短くpendingに留まり、その後deliveredに移行します。
2

Delivered

配信が完了すると(ライセンスキー生成、役割割り当て、リポジトリアクセス付与、ファイルリンク解決、OAuth完了)、付与はdeliveredに移行し、delivered_atが設定されます。
3

Failed

統合コールが再試行不能なエラーを返すと(OAuthトークンの取り消し、許可の拒否、ファイルが存在しない)、付与はfailedに移行します。error_codeerror_messageのフィールドが理由を記録します。
4

Revoked

アクセスが取り消されると(サブスクリプションがキャンセルされる、払い戻しが発行される、または商人による取り消しが行われる)、付与はrevokedに移行します。revocation_reasonのフィールドがトリガーを記録します。

イベントごとの付与の動作

イベント動作
payment.succeeded (一時的な支払い)添付された特権ごとに1つの付与を発行します。
payment.succeeded (サブスクリプションリンク支払い)No-op。付与は以下のサブスクリプションイベントで駆動されます。
subscription.active既存の付与がない添付特権に対して付与を発行します。以前にそのサブスクリプションのために取り消されたすべての付与を再付与します。
subscription.renewedNo-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)に対して冪等です。

最初の特権を作成する

1

Open Entitlements

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

Pick an integration

統合タイプを選択します:ライセンスキー、デジタルファイル、Discord、GitHub、Telegram、Framer、またはNotion。プラットフォームの統合については、まだアカウントを接続していない場合は最初に接続してください。
3

Configure delivery

統合固有のフィールドを記入します。例えば、GitHubはリポジトリと権限レベルを問い合わせ、Discordはサーバーとオプションの役割を問い合わせ、ライセンスキーはアクティベーション制限と期限を問い合わせます。
統合セレクタと設定フィールドを持つ新しい特権フォーム
4

Save

特権を保存します。これで、任意の製品に添付できるようになりました。

特権を製品に添付する

製品を開き、詳細設定 → 特権とクレジットを展開し、製品が購入された際に配信する特権を選択します。単一の製品は複数の特権を同時に配信できます。例えば、Proプランにはライセンスキー、GitHubアクセス、およびDiscordの役割が含まれることがあります。
利用可能な特権ごとのチェックボックスがある製品特権選択パネル

顧客体験

メールと顧客ポータル

顧客は、購入後に製品の特権に該当するライセンスキー、ダウンロードリンク、OAuth招待リンク、またはプラットフォーム招待を含む配信メールを受け取ります。同じ詳細は、注文履歴の下にある顧客ポータルで無期限に利用可能です。

OAuthベースの配信

Discord、GitHub、Notionのサブスクライバーアクセスは、顧客がDodo Paymentsにアクセスを付与するように承認することを必要とします。顧客がメールまたは顧客ポータルからリンクを使用してOAuthフローを完了するまでは、これらの付与はpendingステータスに留まります。彼らが承認すると、付与はdeliveredに移行し、プラットフォームアクセスが即座にプロビジョニングされます。

取り消し

取り消された付与はプラットフォームレベルで削除されます:Discordの役割が削除され、GitHubのコラボレーターが削除され、ライセンスキーが無効化されます。顧客は顧客ポータルでその変化を見ることができます。
デジタルファイルの場合、取り消しは今後の事前サインされたURLへのアクセスを削除しますが、顧客がすでにダウンロードしたコピーは無効になりません。そのため、計画を立ててください。

付与を管理する

ダッシュボードから特権を開いて、その付与を確認できます。付与の詳細パネルは総付与数、ステータスフィルタ、顧客情報、配信日、および取り消しアクションを表示します。 付与をプログラム的に管理することもできます:
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'],
});

// List grants for an entitlement
const grants = await client.entitlements.grants.list('ent_abc123', {
  status: 'delivered',
});

// Revoke a single grant
await client.entitlements.grants.revoke('grant_xyz789', {
  path_id: 'ent_abc123',
});

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_codeerror_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の取り消しは意図的です。顧客コミュニケーションでそれらを異なるに扱います。
Last modified on May 14, 2026