الانتقال إلى المحتوى الرئيسي
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>"
  }
}
استخدم هذه النقطة النهائية لإظهار للعملاء بالضبط ما سيتم تحصيله عند ترقية أو تخفيض اشتراكهم، مما يحسن الشفافية ويقلل من طلبات الدعم.

حالات الاستخدام

  • تأكيد الدفع: عرض الرسوم المحسوبة قبل أن يؤكد العملاء تغيير الخطة
  • آلات حاسبة الأسعار: بناء آلات حاسبة للترقية/التخفيض في تطبيقك
  • خدمة العملاء الذاتية: دع العملاء يستكشفون خيارات الخطة مع تسعير دقيق

حقول الاستجابة

تتضمن استجابة المعاينة:
الحقلالوصف
immediate_chargeالرسوم التي سيتم إنشاؤها على الفور، بما في ذلك العناصر والخلاصة
new_planكائن الاشتراك الكامل الذي يوضح كيف سيبدو بعد تغيير الخطة
immediate_charge.summary يحتوي على المبلغ الإجمالي الذي سيتم تحصيله. استخدم هذا لعرض الأسعار لعملائك قبل أن يؤكدوا تغيير الخطة.

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

الخيارات المتاحة:
prorated_immediately,
full_immediately,
difference_immediately
quantity
integer<int32>
required

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

النطاق المطلوب: 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