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

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

const response = await client.subscriptions.updatePaymentMethod('subscription_id', { type: 'new' });

console.log(response.payment_id);
{
  "client_secret": "<string>",
  "expires_on": "2023-11-07T05:31:56Z",
  "payment_id": "<string>",
  "payment_link": "<string>"
}
サブスクリプションの支払い方法を更新します。このエンドポイントは、アクティブなサブスクリプションとon_hold状態のサブスクリプションの両方をサポートしています。
on_hold状態のサブスクリプションの場合、支払い方法を更新すると、未払いの残高に対して自動的に請求が作成され、請求書が生成され、成功した支払い後にサブスクリプションがactive状態に再活性化されます。

使用例

  • アクティブなサブスクリプション: カードが期限切れになったときや、顧客が別の支払い方法を使用したいときに支払い方法を更新
  • 保留中のサブスクリプション: 支払い失敗により保留になったサブスクリプションを支払い方法を更新することで再活性化
  • 支払い方法の管理: 保存された支払い方法の間で切り替えたり、新しいものを追加したりする
顧客の既存の支払い方法を一覧表示するには、支払い方法一覧APIを使用してください。これにより、サブスクリプションの支払い方法を更新する際にtype: "existing"を使用する際に利用可能な支払い方法IDを取得できます。

アクティブなサブスクリプションの動作

アクティブなサブスクリプションの支払い方法を更新する場合:
  • 支払い方法は即座に更新されます
  • 請求は作成されません
  • サブスクリプションはアクティブのままです
  • 今後の更新は新しい支払い方法を使用します

保留中のサブスクリプションの動作

on_hold状態のサブスクリプションの支払い方法を更新する場合:
  1. 未払いの残高に対して自動的に請求が作成されます
  2. 請求のための請求書が生成されます
  3. 新しい支払い方法を使用して支払いが処理されます
  4. 支払いが成功した場合、サブスクリプションはactive状態に再活性化されます
  5. 次のWebhookイベントを受信します: payment.succeededの後にsubscription.active
on_holdサブスクリプションの支払い方法を更新した後に支払いが失敗した場合、サブスクリプションはon_hold状態のままになります。支払い状況を追跡するためにWebhookイベントを監視してください。

Webhookイベント

on_holdサブスクリプションの支払い方法を更新する際に、次のWebhookイベントを受信します:
  1. payment.succeeded - 残高に対する請求が成功しました
  2. subscription.active - サブスクリプションが再活性化されました

Authorizations

Authorization
string
header
required

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

Path Parameters

subscription_id
string
required

Subscription Id

Body

application/json
type
enum<string>
required
利用可能なオプション:
new
return_url
string | null

Response

Payment method updated

client_secret
string | null
expires_on
string<date-time> | null
payment_id
string | null