メインコンテンツへスキップ
POST
/
subscriptions
/
{subscription_id}
/
change-plan
JavaScript
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
});

await client.subscriptions.changePlan('subscription_id', {
  product_id: 'product_id',
  proration_billing_mode: 'prorated_immediately',
  quantity: 0,
});

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.

スケジュールされたプラン変更

プラン変更の有効化タイミングをコントロールするには、effective_at パラメーターを使用します。
動作
immediatelyプラン変更を直ちに適用します。これがデフォルトです。
next_billing_date次の請求日に変更をスケジュールします。顧客は請求期間が終わるまで現在のプランにアクセスできます。
スケジュールされたプラン変更はダウングレードに最適です。顧客は請求期間の終了まで現在のプランの特典を保持し、その後自動的に新しいプランに切り替わります。
計画されたプラン変更を有効化前にキャンセルするには、キャンセルスケジュールプラン変更エンドポイントを使用します。

支払い失敗処理

プラン変更の支払いが失敗した場合の処理をコントロールするには、on_payment_failure パラメーターを使用します。
動作
prevent_change支払いが成功するまで現在のプランでサブスクリプションを維持します。プラン変更は保留のままです。
apply_change支払い結果に関わらず、プラン変更を直ちに適用します。これがデフォルトです。
on_payment_failure が指定されない場合、挙動はダッシュボードで設定したビジネスレベルの設定がデフォルトになります。

割引コード

プラン変更時に割引コードを適用するには、discount_code パラメーターを渡します。
シナリオ動作
discount_code 提供済み新しいプランに割引を適用し、適用を検証します。
discount_code 提供されず、preserve_on_plan_change=true の既存割引新しい製品に適用可能な場合、既存の割引が保持されます。
discount_code 提供されず、保持可能な割引なし割引は適用されません。
プラン変更時に割引コードを使用して、アップグレードにプロモーション価格を提供したり、顧客を新しいプラン階層に移行するときにコードを渡します。
クリティカルなアップグレードには prevent_change を使用し、プレミアム機能へのアクセスを許可する前に支払いを確実にします。

承認

Authorization
string
header
必須

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

パスパラメータ

subscription_id
string
必須

Subscription Id

ボディ

application/json
product_id
string
必須

Unique identifier of the product to subscribe to

proration_billing_mode
enum<string>
必須

Proration Billing Mode

利用可能なオプション:
prorated_immediately,
full_immediately,
difference_immediately,
do_not_bill
quantity
integer<int32>
必須

Number of units to subscribe for. Must be at least 1.

必須範囲: x >= 0
adaptive_currency_fees_inclusive
boolean | null

Whether adaptive currency fees should be included in the price (true) or added on top (false). If not specified, uses the subscription's stored setting.

addons
Attach Addon Request · object[] | null

Addons for the new plan. Note : Leaving this empty would remove any existing addons

discount_code
string | null
非推奨

DEPRECATED: Use discount_codes instead. Cannot be used together with discount_codes.

discount_codes
string[] | null

Stacked discount codes to apply to the new plan. Max 20. Cannot be used together with discount_code. If provided, replaces any existing discount codes. Empty array removes all discounts. If not provided (None), existing discounts with preserve_on_plan_change=true are preserved.

effective_at
enum<string>

When to apply the plan change.

  • immediately (default): Apply the plan change right away
  • next_billing_date: Schedule the change for the next billing date
利用可能なオプション:
immediately,
next_billing_date
metadata
object

Metadata for the payment. If not passed, the metadata of the subscription will be taken

on_payment_failure
null | enum<string>

Controls behavior when the plan change payment fails.

  • prevent_change: Keep subscription on current plan until payment succeeds
  • apply_change (default): Apply plan change immediately regardless of payment outcome

If not specified, uses the business-level default setting.

利用可能なオプション:
prevent_change,
apply_change

レスポンス

Subscription plan changed. If on_payment_failure=prevent_change, the plan change is pending until payment succeeds.

Last modified on April 20, 2026