Chuyển đến nội dung chính
POST
/
subscriptions
/
{subscription_id}
/
change-plan
/
preview
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.previewChangePlan('subscription_id', {
  product_id: 'product_id',
  proration_billing_mode: 'prorated_immediately',
  quantity: 0,
});

console.log(response.immediate_charge);
{
  "immediate_charge": {
    "line_items": [
      {
        "currency": "AED",
        "id": "<string>",
        "product_id": "<string>",
        "proration_factor": 123,
        "quantity": 123,
        "tax_inclusive": true,
        "type": "subscription",
        "unit_price": 123,
        "description": "<string>",
        "name": "<string>",
        "tax": 123,
        "tax_rate": 123
      }
    ],
    "summary": {
      "currency": "AED",
      "customer_credits": 123,
      "settlement_amount": 123,
      "settlement_currency": "AED",
      "total_amount": 123,
      "settlement_tax": 123,
      "tax": 123
    }
  },
  "new_plan": {
    "addons": [
      {
        "addon_id": "<string>",
        "quantity": 123
      }
    ],
    "billing": {
      "country": "AF",
      "city": "<string>",
      "state": "<string>",
      "street": "<string>",
      "zipcode": "<string>"
    },
    "cancel_at_next_billing_date": true,
    "created_at": "2023-11-07T05:31:56Z",
    "currency": "AED",
    "customer": {
      "customer_id": "<string>",
      "email": "<string>",
      "name": "<string>",
      "metadata": {},
      "phone_number": "<string>"
    },
    "metadata": {},
    "meters": [
      {
        "currency": "AED",
        "free_threshold": 123,
        "measurement_unit": "<string>",
        "meter_id": "<string>",
        "name": "<string>",
        "price_per_unit": "10.50",
        "description": "<string>"
      }
    ],
    "next_billing_date": "2023-11-07T05:31:56Z",
    "on_demand": true,
    "payment_frequency_count": 123,
    "payment_frequency_interval": "Day",
    "previous_billing_date": "2023-11-07T05:31:56Z",
    "product_id": "<string>",
    "quantity": 123,
    "recurring_pre_tax_amount": 123,
    "status": "pending",
    "subscription_id": "<string>",
    "subscription_period_count": 123,
    "subscription_period_interval": "Day",
    "tax_inclusive": true,
    "trial_period_days": 123,
    "cancelled_at": "2023-11-07T05:31:56Z",
    "discount_cycles_remaining": 123,
    "discount_id": "<string>",
    "expires_at": "2023-11-07T05:31:56Z",
    "payment_method_id": "<string>",
    "tax_id": "<string>"
  }
}
Sử dụng điểm cuối này để cho khách hàng thấy chính xác những gì họ sẽ bị tính phí khi nâng cấp hoặc hạ cấp đăng ký của họ, cải thiện tính minh bạch và giảm yêu cầu hỗ trợ.

Trường hợp sử dụng

  • Xác nhận thanh toán: Hiển thị phí tính theo tỷ lệ trước khi khách hàng xác nhận thay đổi gói
  • Máy tính giá: Xây dựng máy tính nâng cấp/hạ cấp trong ứng dụng của bạn
  • Dịch vụ tự phục vụ cho khách hàng: Cho phép khách hàng khám phá các tùy chọn gói với giá chính xác

Các trường phản hồi

Phản hồi xem trước bao gồm:
TrườngMô tả
immediate_chargeSố tiền phí sẽ được tạo ngay lập tức, bao gồm các mục dòng và tóm tắt
new_planĐối tượng đăng ký đầy đủ cho thấy nó sẽ trông như thế nào sau khi thay đổi gói
immediate_charge.summary chứa tổng số tiền sẽ được tính phí. Sử dụng điều này để hiển thị giá cho khách hàng của bạn trước khi họ xác nhận thay đổi gói.

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
product_id
string
required

Unique identifier of the product to subscribe to

proration_billing_mode
enum<string>
required

Proration Billing Mode

Tùy chọn có sẵn:
prorated_immediately,
full_immediately,
difference_immediately
quantity
integer<int32>
required

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

Phạm vi bắt buộc: x >= 0
addons
Attach Addon Request · object[] | null

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

Response

Preview of subscription plan change

immediate_charge
object
required
new_plan
object
required

Response struct representing subscription details