Skip to main content
Subscriptions let you sell ongoing access with automated renewals. Use flexible billing cycles, free trials, plan changes, and add‑ons to tailor pricing for each customer.

Upgrade & Downgrade

Control plan changes with proration and quantity updates.

On‑Demand Subscriptions

Authorize a mandate now and charge later with custom amounts.

Customer Portal

Let customers manage plans, billing, and cancellations.

Subscription Webhooks

React to lifecycle events like created, renewed, and canceled.

What Are Subscriptions?

Subscriptions are recurring products customers purchase on a schedule. They’re ideal for:
  • SaaS licenses: Apps, APIs, or platform access
  • Memberships: Communities, programs, or clubs
  • Digital content: Courses, media, or premium content
  • Support plans: SLAs, success packages, or maintenance

Key Benefits

  • Predictable revenue: Recurring billing with automated renewals
  • Flexible cycles: Monthly, annual, custom intervals, and trials
  • Plan agility: Proration for upgrades and downgrades
  • Add‑ons and seats: Attach optional, quantifiable upgrades
  • Seamless checkout: Hosted checkout and customer portal
  • Developer-first: Clear APIs for creation, changes, and usage tracking

Creating Subscriptions

Create subscription products in your Dodo Payments dashboard, then sell them through checkout or your API. Separating products from active subscriptions lets you version pricing, attach add‑ons, and track performance independently.

Subscription product creation

Configure the fields in the dashboard to define how your subscription sells, renews, and bills. The sections below map directly to what you see in the creation form.

Product details

  • Product Name (required): The display name shown in checkout, customer portal, and invoices.
  • Product Description (required): A clear value statement that appears in checkout and invoices.
  • Product Image (required): PNG/JPG/WebP up to 3 MB. Used on checkout and invoices.
  • Brand: Associate the product with a specific brand for theming and emails.
  • Tax Category (required): Choose the category (for example, SaaS) to determine tax rules.
Pick the most accurate tax category to ensure correct tax collection per region.

Pricing

  • Pricing Type: Subscription(このガイド)を選択します。代替 विकल्पは Single Payment と Usage Based Billing です。
  • Price(必須): 通貨を含む基本の継続価格。価格は**$1**以上(または選択した通貨での相当額)である必要があります。この最低額未満はサポートされないため、サブスクリプションは機能しません。
  • Discount Applicable (%): 基本価格に適用する任意の割引率。チェックアウトと請求書に反映されます。
  • Repeat payment every(必須): 更新間隔(例: 1 Month ごと)。間隔(months または years)と数量を選択します。
  • Subscription Period(必須): サブスクリプションが有効である総期間(例: 10 Years)。この期間が終了すると、延長されない限り更新は停止します。
  • Trial Period Days(必須): トライアル期間を日数で設定します。トライアルを無効にするには 0 を使用します。トライアル終了時に最初の請求が自動的に行われます。
  • Trial Amount: 有料トライアルの任意の前払い料金。無料トライアルの場合は未設定のままにします。Paid Trials を参照してください。
  • Select add‑on: 顧客が基本プランと一緒に購入できるアドオンを最大 10 個まで追加します。
Changing pricing on an active product affects new purchases. Existing subscriptions follow your plan‑change and proration settings.
Add‑ons are ideal for quantifiable extras such as seats or storage. You can control allowed quantities and proration behavior when customers change them.

Advanced settings

  • Tax Inclusive Pricing: Display prices inclusive of applicable taxes. Final tax calculation still varies by customer location.
  • Generate license keys: Issue a unique key to each customer after purchase. See the License Keys guide.
  • Digital Product Delivery: Deliver files or content automatically after purchase. Learn more in Digital Product Delivery.
  • Metadata: Attach custom key–value pairs for internal tagging or client integrations. See Metadata.
Use metadata to store identifiers from your system (e.g., accountId) so you can reconcile events and invoices later.

Subscription Trials

トライアルを利用すると、顧客は継続料金全額を支払う前にサブスクリプションを評価できます。トライアルには、終了まで料金が発生しない無料トライアルと、前払いで減額料金を請求する有料トライアルがあります。どちらの場合も、トライアル終了後の最初の更新から全額が適用されます。

Configuring Trials

Set Trial Period Days in the product pricing section (use 0 to disable). You can override this when creating subscriptions:
The trial_period_days value must be between 0 and 10,000 days.
トライアルは無料である必要はありません。サブスクリプション商品の継続価格にTrial Amountを設定すると、トライアル期間に減額された前払い料金を請求できます。その後、最初の更新時から通常の継続価格が適用されます。
トライアル期間と有料トライアル用の任意のトライアル料金を設定したサブスクリプション価格フォーム
有料トライアルは、サブスクリプション単位やチェックアウトセッション単位ではなく、商品の価格に設定します。
有料トライアルも checkout を通過します。トライアル料金には税金がかかり、checkout セッションの計算と payment link の価格に表示され、Adaptive Currency のマークアップが通貨ごとに適用されます。preview endpointtrial_amounttrial_period_days を返すため、サブスクリプション作成前に本日支払う金額を表示できます。
無料トライアルの動作は変わりません。Trial Amountを未設定にすると、従来どおり最初の請求は 0 となり、トライアル終了時に全額が請求されます。

トライアルの不正利用を防止する

Prevent Trial Misuse は、同じビジネスに対して顧客がトライアルを繰り返し申し込むことを防ぎます。有効にすると、すでにトライアルを利用した顧客は、新しいトライアルを受ける代わりに自動的に有料・トライアルなしの購入へ変更されます。
Subscriptions 設定タブの Prevent Trial Misuse トグル
SettingsSubscriptions タブから有効にします。有効にすると、次のようになります。
  • 顧客は正規化されたメールアドレスで照合され、plus エイリアスは除去されます。そのため user+trial@example.comuser@example.com は同一人物として扱われます。
  • 利用記録はトライアル有効化時に保存されるため、同日にキャンセルした顧客もトライアルを消費したものとして扱われます。
  • 既存顧客については、過去のトライアル履歴がメールアドレスでバックフィルされるため、過去のトライアル利用者もすぐに認識されます。
この設定はデフォルトでオフです。ビジネス単位のサブスクリプション制御の一覧については、Subscription Settings を参照してください。

トライアル状態の検出

現在、トライアル状態を検出する直接的なフィールドはありません。以下は payments の取得が必要な回避策ですが、効率的ではありません。より効率的な解決策に取り組んでいます。
無料トライアルのサブスクリプションがトライアル中かどうかを確認するには、サブスクリプションの payments 一覧を取得します。金額が 0 の payment がちょうど 1 件ある場合、サブスクリプションはトライアル期間中です。
この金額 0 の確認は無料トライアルでのみ機能します。有料トライアルでは、最初の payment は 0 ではなくトライアル料金と同額です。最初の payment をサブスクリプションの trial_amount と比較するか、next_billing_date がまだトライアル期間内かどうかを確認してください。

トライアル期間の更新

next_billing_date を更新してトライアルを延長します。
next_billing_date に過去の時刻を設定することはできません。日付は未来である必要があります。

サブスクリプションプランの変更

プラン変更では、サブスクリプションのアップグレードやダウングレード、数量の調整、別の商品への移行ができます。選択した日割り計算モードによっては、変更時に即時請求が発生したり、クレジットが作成されたり、請求調整が行われなかったりします。
Dodo Payments ダッシュボードから、サブスクリプションプランと次回請求日を直接変更できます。API 呼び出しを行わずに、カスタマーサポートへの依頼、プロモーションによるアップグレード、プラン移行にすばやく対応できます。
セルフサービスのプラン変更を有効にする: 顧客が Customer Portal から自分でサブスクリプションをアップグレードまたはダウングレードできるようにしますか?サブスクリプション商品を Product Collection に追加し、Subscription Settings で「Allow Subscription Updates」を有効にしてください。

Product Collections

関連商品をコレクションにまとめると、Customer Portal でスムーズなアップグレード/ダウングレード経路を有効にできます。

日割り計算モード

プラン変更時の顧客への請求方法を選択します。
4 つの日割り計算モードの比較:

prorated_immediately

現在の請求サイクルの残り時間に基づいて日割り金額を請求します。未使用期間を考慮した公平な請求に適しています。

difference_immediately

価格差額を即時に請求(アップグレード)するか、今後の更新に使用するクレジットを追加(ダウングレード)します。シンプルなアップグレード/ダウングレードに適しています。
difference_immediately を使用したダウングレードのクレジットはサブスクリプション単位で管理され、今後の更新に自動適用されます。Credit-Based Billing の特典とは異なります。
顧客が difference_immediately でダウングレードすると、未使用分がサブスクリプション単位のクレジットとなり、今後の更新に自動的に充当されます。

full_immediately

残り時間を考慮せず、新プランの全額を即時請求します。請求サイクルのリセットに適しています。

do_not_bill

請求調整なしで新プランに切り替えます。日割り請求もクレジットもなく、顧客はそのまま新プランへ移行します。特別対応による移行、無料プランへの切り替え、価格差額を事業者が負担する場合に適しています。
シナリオ: Basic(30/月)の顧客が、30日サイクルの16日目にproratedimmediatelyを使用してPro30/月)の顧客が、30 日サイクルの 16 日目に `prorated_immediately` を使用して Pro(80/月)へアップグレードします。
次回更新日は2 月 15 日(1 月 16 日 + 30 日)で、料金は**$80.00/月**です。
計算例とエッジケースの詳細については、Upgrade & Downgrade Guide を参照してください。
シナリオ: Pro(80/月)の顧客が、differenceimmediatelyを使用してStarter80/月)の顧客が、`difference_immediately` を使用して Starter(20/月)へダウングレードします。
$60 のクレジットが今後の更新に自動適用されます。
  • 更新 1: 2020 − 20(クレジット)= **0.00(残りのクレジット0.00**(残りのクレジット 40)
  • 更新 2: 2020 − 20(クレジット)= **0.00(残りのクレジット0.00**(残りのクレジット 20)
  • 更新 3: 2020 − 20(クレジット)= $0.00(クレジット消化)
  • 更新 4: $20.00(全額)
クレジットの管理方法については、Upgrade & Downgrade Guide を参照してください。

アドオン付きプランの変更

プラン変更時にアドオンを変更できます。アドオンは日割り計算に含まれます。
プラン変更では即時請求が発生します。請求に失敗すると、サブスクリプションが on_hold 状態になることがあります。変更は subscription.plan_changed webhook event で追跡してください。

プラン変更のプレビュー

プラン変更を確定する前に、正確な請求額と変更後のサブスクリプションをプレビューします。

Preview Change Plan API

確定する前にプラン変更をプレビューします。

サブスクリプションの状態

サブスクリプションは存続期間中、定義された一連の状態を遷移します。この表は、各状態、その原因、復旧可能かどうか、復旧方法または次の手順を示します。
on_holdfailed は混同されがちです。on_hold は、すでに有効なサブスクリプションの更新に失敗した場合の復旧可能な状態です。failed は、初回のサブスクリプション作成に失敗した場合のみ発生する終端状態で、再有効化できません。

状態機械

On Hold 状態

サブスクリプションは、次の場合に on_hold 状態になります。
  • 更新 payment に失敗した(残高不足、カード期限切れなど)
  • プラン変更の請求に失敗した
  • 支払い方法の認証に失敗した
サブスクリプションが on_hold 状態の場合、自動更新されません。サブスクリプションを再有効化するには、支払い方法を更新する必要があります。

On Hold からの再有効化

サブスクリプションを on_hold 状態から再有効化するには、支払い方法を更新します。これにより自動的に次の処理が行われます。
  1. 未払い残額の請求を作成
  2. 請求書を生成
  3. 新しい支払い方法で payment を処理
  4. payment 成功時にサブスクリプションを active 状態へ再有効化
on_hold のサブスクリプションについて支払い方法の更新に成功すると、payment.succeeded に続いて subscription.active webhook event が届きます。

遷移ごとの Webhook Events

各遷移では webhook が発行されるため、ポーリングなしで entitlement ロジックを実行できます。

Subscription Webhook Payloads

サブスクリプションのライフサイクルイベントについて、完全な payload schema を確認してください。

API 管理

POST /subscriptions を使用すると、任意のトライアルとアドオンを含め、商品からプログラムでサブスクリプションを作成できます。

API Reference

サブスクリプション作成 API を確認してください。
PATCH /subscriptions/{id} を使用して数量の更新、次回請求日のキャンセル、metadata の変更を行います。

API Reference

サブスクリプション詳細の更新方法を確認してください。
日割り計算の制御を使用して、現在の商品と数量を変更します。

API Reference

プラン変更のオプションを確認してください。
オンデマンドサブスクリプションでは、必要に応じて指定した金額を請求します。

API Reference

オンデマンドサブスクリプションに請求します。
GET /subscriptions ですべてのサブスクリプションを一覧表示し、GET /subscriptions/{id} で 1 件を取得します。

API Reference

一覧表示および取得 API を確認してください。
従量制またはハイブリッド価格モデルで記録された usage を取得します。

API Reference

Usage history API を参照してください。
サブスクリプションの支払い方法を更新します。有効なサブスクリプションでは、今後の更新に使用する支払い方法が更新されます。on_hold 状態のサブスクリプションでは、未払い残額の請求を作成して再有効化します。新しい payment-method link(New request type)を生成する際、allowed_payment_method_types を渡すと、そのページで顧客に表示する支払い方法を制限できます。顧客にはリストにない方法は表示されません。ただし、方法を含めても表示が保証されるわけではありません(利用可能性は顧客の所在地やビジネス設定などにも依存します)。

API Reference

支払い方法の更新とサブスクリプションの再有効化について確認してください。

一般的なユースケース

  • SaaS と API: シート数や usage に対応したアドオン付きの段階的アクセス
  • コンテンツとメディア: 導入トライアル付きの月額アクセス
  • B2B サポートプラン: プレミアムサポートアドオン付きの年間契約
  • ツールとプラグイン: license key とバージョン管理されたリリース

統合例

Checkout Sessions(サブスクリプション)

checkout session を作成する際は、サブスクリプション商品と任意のアドオンを含めます。

日割り計算を使用したプラン変更

サブスクリプションをアップグレードまたはダウングレードし、日割り計算の動作を制御します。

次回請求日にキャンセル

現在の請求期間の終了時に有効になるキャンセルを予約します。

サブスクリプション期間の延長

新しい subscription_period_countsubscription_period_intervalPATCH /subscriptions/{id} に渡して、サブスクリプションの継続期間を延長します。新しい count と interval に基づいて有効期限が再計算されます。たとえば、現在のプランに追加期間を付与する場合に使用できます。
サブスクリプション期間は延長のみ可能で、短縮することはできません。

オンデマンドサブスクリプション

オンデマンドサブスクリプションを作成し、必要に応じて後から請求します。

有効なサブスクリプションの支払い方法を更新

有効なサブスクリプションの支払い方法を更新します。

on_hold のサブスクリプションを再有効化

支払い失敗により on hold になったサブスクリプションを再有効化します。

RBI 準拠の Mandate を使用したサブスクリプション

UPI とインドのカードによるサブスクリプションは、特定の mandate 要件を定めた RBI(Reserve Bank of India)規制に従って運用されます。

Mandate の上限

mandate の種類と金額は、サブスクリプションの継続料金によって決まります。
  • mandate 下限(デフォルト ₹15,000)未満の請求: 下限額のオンデマンド mandate を作成します。サブスクリプション金額は、mandate 上限まで、サブスクリプション頻度に応じて定期的に請求されます。
  • mandate 下限以上の請求: サブスクリプション金額と同額の subscription mandate(またはオンデマンド mandate)を作成します。
mandate 下限は、mandate_min_amount_inr_paise(INR paise)を使用して merchant 単位または request 単位で設定できます。銀行に登録される金額は max(mandate_floor, billing_amount) です。そのため、請求額が低い場合、下限が実質的に顧客向けの認証上限になります。 RBI 準拠の mandate と、インドの支払い方法で設定可能な mandate 下限の詳細については、India Payment Methods ページを参照してください。

アップグレードとダウングレードに関する考慮事項

重要: サブスクリプションをアップグレードまたはダウングレードする場合は、mandate の上限を慎重に考慮してください。
  • アップグレードまたはダウングレードによる請求額が Rs 15,000 を超え、既存のオンデマンド payment limit を上回る場合、transaction charge に失敗する可能性があります。
  • この場合、顧客は支払い方法を更新するか、正しい上限の新しい mandate を設定するためにサブスクリプションを再度変更する必要があります。

高額請求の認証

Rs 15,000 以上のサブスクリプション請求については、次のようになります。
  • 顧客には、銀行から transaction の認証を求める通知が表示されます。
  • 顧客が transaction を認証できない場合、transaction は失敗し、サブスクリプションは on hold になります。

48 時間の処理遅延

処理タイムライン: インドのカードおよび UPI サブスクリプションの継続請求には、独自の処理パターンがあります。
  • 請求は、サブスクリプション頻度に従って予定日に開始されます。
  • 顧客口座からの実際の引き落としは、payment 開始から48 時間後にのみ行われます。
  • この 48 時間の期間は、銀行 API の応答によってさらに 2~3 時間延長される場合があります。

Mandate のキャンセル可能期間

48 時間の処理期間中は、次のことが可能です。
  • 顧客は banking app から mandate をキャンセルできます。
  • この期間中に顧客が mandate をキャンセルしても、サブスクリプションは有効なままです(これはインドのカードおよび UPI AutoPay サブスクリプション固有のエッジケースです)。
  • ただし、実際の引き落としは失敗する可能性があり、その場合サブスクリプションはon holdになります。
エッジケースへの対応: 請求開始直後に顧客へ特典、クレジット、またはサブスクリプション利用権を提供する場合は、アプリケーションでこの 48 時間の期間を適切に処理する必要があります。次の対応を検討してください。
  • payment 確認まで特典の有効化を遅延する
  • grace period または一時的なアクセスを実装する
  • mandate のキャンセルについてサブスクリプション状態を監視する
  • アプリケーションロジックでサブスクリプションの hold 状態を処理する
サブスクリプション webhook を監視して payment status の変更を追跡し、48 時間の期間中に mandate がキャンセルされた場合のエッジケースに対応します。

ベストプラクティス

  • 明確なティアから始める: 違いが明確な 2~3 個のプラン
  • 価格を明示する: 合計額、日割り計算、次回更新を表示する
  • トライアルを適切に使用する: 期間だけでなくオンボーディングで転換を促す
  • アドオンを活用する: 基本プランをシンプルに保ち、追加機能をアップセルする
  • 変更をテストする: test mode でプラン変更と日割り計算を検証する
サブスクリプションは、継続収益のための柔軟な基盤です。シンプルに始め、十分にテストし、導入率、解約率、拡張指標に基づいて改善を繰り返してください。
最終更新日 2026年7月31日