تتيح الاشتراكات لك بيع وصول مستمر مع تجديدات آلية. استخدم دورات فوترة مرنة، تجارب مجانية، تغييرات الخطة، والإضافات لتخصيص التسعير لكل عميل.
Upgrade & Downgrade
تحكم في تغييرات الخطة باستخدام النسبة وتحديثات الكمية.
On‑Demand Subscriptions
فوض تفويضًا الآن وادفع لاحقًا بمبالغ مخصصة.
Customer Portal
دع العملاء يديرون الخطط والفوترة والإلغاءات.
Subscription Webhooks
تفاعل مع أحداث دورة الحياة مثل الإنشاء والتجديد والإلغاء.
ما هي الاشتراكات؟
الاشتراكات هي منتجات متكررة يشتريها العملاء وفق جدول زمني. إنها مثالية لـ:- ترخيص SaaS: التطبيقات، واجهات برمجة التطبيقات، أو الوصول إلى المنصات
- العضويات: المجتمعات، البرامج، أو الأندية
- المحتوى الرقمي: الدورات، الوسائط، أو المحتوى المتميز
- خطط الدعم: اتفاقيات مستوى الخدمة، حزم النجاح، أو الصيانة
الفوائد الرئيسية
- إيرادات متوقعة: فواتير متكررة مع تجديدات تلقائية
- دورات مرنة: شهرية، سنوية، فترات مخصصة، وتجارب
- مرونة الخطط: تقسيط للترقيات والتخفيضات
- إضافات ومقاعد: أضف ترقيات اختيارية وقابلة للقياس
- تجربة دفع سلسة: دفع مستضاف وبوابة العملاء
- موجه للمطورين: واجهات برمجة تطبيقات واضحة لإنشاء، تغييرات، وتتبع الاستخدام
إنشاء الاشتراكات
قم بإنشاء منتجات الاشتراك في لوحة معلومات مدفوعات Dodo الخاصة بك، ثم قم ببيعها من خلال الدفع أو واجهة برمجة التطبيقات الخاصة بك. يفصل المنتجات عن الاشتراكات النشطة مما يتيح لك إصدار أسعار، إرفاق إضافات، وتتبع الأداء بشكل مستقل.إنشاء منتج الاشتراك
قم بتكوين الحقول في لوحة المعلومات لتعريف كيفية بيع اشتراكك، تجديده، وفوترة. الأقسام أدناه تتطابق مباشرة مع ما تراه في نموذج الإنشاء.تفاصيل المنتج
- اسم المنتج (مطلوب): الاسم المعروض في الدفع، بوابة العملاء، والفواتير.
- وصف المنتج (مطلوب): بيان قيمة واضح يظهر في الدفع والفواتير.
- صورة المنتج (مطلوب): PNG/JPG/WebP حتى 3 ميغابايت. تستخدم في الدفع والفواتير.
- العلامة التجارية: ربط المنتج بعلامة تجارية معينة للتصميم والبريد الإلكتروني.
- فئة الضريبة (مطلوب): اختر الفئة (على سبيل المثال، SaaS) لتحديد قواعد الضريبة.
التسعير
- نوع التسعير: اختر Subscription (هذا الدليل). البدائل هي Single Payment وUsage Based Billing.
- السعر (مطلوب): السعر الأساسي المتكرر مع العملة. يجب ألا يقل السعر عن $1 (أو ما يعادله بالعملة التي اخترتها). المبالغ الأقل من هذا الحد الأدنى غير مدعومة، ولن يعمل الاشتراك.
- الخصم المطبق (%): خصم اختياري بنسبة مئوية يُطبَّق على السعر الأساسي؛ ويظهر في checkout والفواتير.
- تكرار الدفع كل (مطلوب): الفاصل الزمني للتجديدات، مثل كل شهر واحد. اختر الوتيرة (بالأشهر أو السنوات) والكمية.
- فترة الاشتراك (مطلوب): المدة الإجمالية التي يظل فيها الاشتراك نشطًا (مثل 10 سنوات). بعد انتهاء هذه الفترة، تتوقف التجديدات ما لم يتم تمديدها.
- أيام الفترة التجريبية (مطلوب): حدّد مدة التجربة بالأيام. استخدم 0 لتعطيل الفترات التجريبية. يتم تحصيل الدفعة الأولى تلقائيًا عند انتهاء التجربة.
- مبلغ الفترة التجريبية: رسم مقدّم اختياري لفترة تجريبية مدفوعة. اتركه دون تعيين لفترة تجريبية مجانية. راجع الفترات التجريبية المدفوعة.
- تحديد الإضافة: أرفق ما يصل إلى 10 إضافات يمكن للعملاء شراؤها إلى جانب الخطة الأساسية.
الإضافات مثالية للميزات القابلة للقياس مثل المقاعد أو التخزين. يمكنك التحكم في الكميات المسموح بها وسلوك النسبة عندما يغيرها العملاء.
الإعدادات المتقدمة
- تسعير شامل للضرائب: عرض الأسعار شاملة الضرائب المطبقة. لا يزال حساب الضريبة النهائي يختلف حسب موقع العميل.
- إنشاء مفاتيح الترخيص: إصدار مفتاح فريد لكل عميل بعد الشراء. راجع دليل مفاتيح الترخيص.
- تسليم المنتج الرقمي: تسليم الملفات أو المحتوى تلقائيًا بعد الشراء. تعرف على المزيد في تسليم المنتج الرقمي.
- البيانات الوصفية: إرفاق أزواج مفتاح-قيمة مخصصة للتصنيف الداخلي أو تكاملات العملاء. راجع البيانات الوصفية.
تجارب الاشتراك
تتيح الفترات التجريبية للعملاء تقييم الاشتراك قبل دفع السعر المتكرر الكامل. يمكن أن تكون الفترة التجريبية مجانية، حيث لا يتم تحصيل أي مبلغ حتى انتهائها، أو مدفوعة، حيث يتم تحصيل مبلغ مخفّض مقدمًا. في كلتا الحالتين، يبدأ تحصيل السعر الكامل عند أول تجديد بعد انتهاء الفترة التجريبية.تكوين التجارب
قم بتعيين أيام الفترة التجريبية في قسم تسعير المنتج (استخدم0 لتعطيلها). يمكنك تجاوز هذا عند إنشاء الاشتراكات:
الفترات التجريبية المدفوعة
لا يشترط أن تكون الفترات التجريبية مجانية. عيّن مبلغ الفترة التجريبية على السعر المتكرر لمنتج الاشتراك لتحصيل رسم مقدّم مخفّض خلال فترة التجربة. بعد ذلك، يحل السعر المتكرر الكامل محلّه عند أول تجديد.
trial_amount وtrial_period_days، بحيث يمكنك عرض المبلغ المستحق اليوم قبل إنشاء الاشتراك.
لم تتغير الفترات التجريبية المجانية. يؤدي ترك مبلغ الفترة التجريبية دون تعيين إلى الإبقاء على السلوك الحالي، حيث تكون الدفعة الأولى
0 ويتم تحصيل السعر الكامل عند انتهاء الفترة التجريبية.منع إساءة استخدام الفترة التجريبية
يمنع منع إساءة استخدام الفترة التجريبية العملاء من المطالبة بالفترات التجريبية مرارًا للنشاط التجاري نفسه. عند تفعيله، يتم تحويل العميل الذي استرد فترة تجريبية من قبل تلقائيًا إلى عملية شراء مدفوعة بلا فترة تجريبية بدلًا من منحه فترة تجريبية جديدة.
- تتم مطابقة العملاء باستخدام البريد الإلكتروني المطبّع، مع إزالة الأسماء المستعارة بعلامة الجمع، لذلك يُعتدّ بـ
user+trial@example.comوuser@example.comعلى أنهما الشخص نفسه. - يتم تسجيل عمليات الاسترداد عند تفعيل الفترة التجريبية، لذلك يكون العميل الذي يلغي الاشتراك في اليوم نفسه قد استهلك فترته التجريبية بالفعل.
- تتم إضافة العملاء الحاليين بأثر رجعي من فترات التجربة السابقة لديهم عبر البريد الإلكتروني، ولذلك يتم التعرّف على مستخدمي الفترات التجريبية السابقين فورًا.
الإعداد معطّل افتراضيًا. راجع إعدادات الاشتراك للاطلاع على القائمة الكاملة لعناصر التحكم في الاشتراكات على مستوى النشاط التجاري.
اكتشاف حالة الفترة التجريبية
لتحديد ما إذا كان اشتراك فترة تجريبية مجانية لا يزال في فترة التجربة، استرجع قائمة المدفوعات الخاصة بالاشتراك. إذا كانت هناك دفعة واحدة بالضبط ومبلغها 0، يكون الاشتراك في الفترة التجريبية:تحديث الفترة التجريبية
مدّد الفترة التجريبية من خلال تحديثnext_billing_date:
تغييرات خطة الاشتراك
تتيح تغييرات الخطة ترقية الاشتراكات أو تخفيضها، وضبط الكميات، أو الانتقال إلى منتجات مختلفة. بناءً على وضع proration الذي تختاره، قد يؤدي التغيير إلى تحصيل فوري، أو إنشاء رصيد، أو عدم تطبيق أي تعديل على الفوترة.Product Collections
جمّع المنتجات المرتبطة في مجموعات لتمكين مسارات الترقية والتخفيض السلسة في Customer Portal.
أوضاع proration
اختر طريقة فوترة العملاء عند تغيير الخطط:مقارنة سريعة بين أوضاع proration الأربعة:
prorated_immediately
يحصّل مبلغًا محسوبًا نسبيًا بناءً على الوقت المتبقي في دورة الفوترة الحالية. وهو مناسب للفوترة العادلة التي تراعي الوقت غير المستخدم.
difference_immediately
يحصّل فرق السعر فورًا (عند الترقية) أو يضيف رصيدًا إلى التجديدات المستقبلية (عند التخفيض). وهو مناسب لسيناريوهات الترقية والتخفيض البسيطة.
الأرصدة الناتجة عن التخفيضات باستخدام
difference_immediately تكون مقيّدة بالاشتراك وتُطبّق تلقائيًا على التجديدات المستقبلية. وهي تختلف عن استحقاقات Credit-Based Billing.difference_immediately، تصبح القيمة غير المستخدمة رصيدًا مقيّدًا بالاشتراك، ويُخصم تلقائيًا من التجديدات المستقبلية:
full_immediately
يحصّل مبلغ الخطة الجديدة بالكامل فورًا، متجاهلًا الوقت المتبقي. وهو مناسب لإعادة ضبط دورات الفوترة.
do_not_bill
ينتقل إلى الخطة الجديدة من دون أي تعديل على الفوترة. لا توجد رسوم proration أو أرصدة — ينتقل العميل ببساطة إلى الخطة الجديدة. وهو مناسب لعمليات النقل المجاملة، أو تبديلات الخطط المجانية، أو الحالات التي تريد فيها تحمّل فرق التكلفة.
Example: Prorated upgrade calculation
Example: Prorated upgrade calculation
السيناريو: يرقّي عميل مشترك في Basic (80/شهريًا) في اليوم 16 من دورة مدتها 30 يومًا باستخدام التجديد التالي في 15 فبراير (16 يناير + 30 يومًا): $80.00/شهريًا.
prorated_immediately.Example: Downgrade credit calculation
Example: Downgrade credit calculation
السيناريو: يخفض عميل مشترك في Pro (20/شهريًا) باستخدام يُطبّق رصيد $60 تلقائيًا على التجديدات المستقبلية:
difference_immediately.- التجديد 1: 20 (رصيد) = **40)
- التجديد 2: 20 (رصيد) = **20)
- التجديد 3: 20 (رصيد) = $0.00 (استهلاك الرصيد بالكامل)
- التجديد 4: $20.00 (السعر الكامل)
تعرّف على المزيد حول إدارة الأرصدة في دليل الترقية والتخفيض.
تغيير الخطط مع الإضافات
عدّل الإضافات عند تغيير الخطط. يتم تضمين الإضافات في حسابات proration:تؤدي تغييرات الخطط إلى تحصيل رسوم فورية. قد تنقل الرسوم الفاشلة الاشتراك إلى حالة
on_hold. تتبّع التغييرات عبر أحداث webhook من نوع subscription.plan_changed.معاينة تغييرات الخطط
قبل اعتماد تغيير الخطة، اعرض معاينة للرسم الدقيق والاشتراك الناتج:Preview Change Plan API
عاين تغييرات الخطط قبل اعتمادها.
حالات الاشتراك
ينتقل الاشتراك عبر مجموعة محددة من الحالات خلال فترة صلاحيته. هذا الجدول هو المرجع لكل حالة، وما الذي يسببها، وكيفية استعادتها (إن أمكن).آلة الحالات
حالة التعليق
يدخل الاشتراك في حالةon_hold عندما:
- تفشل دفعة تجديد (رصيد غير كافٍ، بطاقة منتهية، وغير ذلك)
- تفشل رسوم تغيير الخطة
- يفشل تفويض طريقة الدفع
إعادة التفعيل من حالة التعليق
لإعادة تفعيل اشتراك من حالةon_hold، حدّث طريقة الدفع. يؤدي ذلك تلقائيًا إلى:
- إنشاء رسم للمستحقات المتبقية
- إنشاء فاتورة
- معالجة الدفعة باستخدام طريقة الدفع الجديدة
- إعادة تفعيل الاشتراك إلى حالة
activeعند نجاح الدفع
بعد تحديث طريقة الدفع بنجاح لاشتراك في حالة
on_hold، ستتلقى أحداث webhook من نوع payment.succeeded، تليها أحداث subscription.active.أحداث webhook حسب الانتقال
ينشئ كل انتقال حدث webhook، بحيث يمكنك تشغيل منطق الاستحقاقات من دون polling:Subscription Webhook Payloads
اعرض مخطط الحمولة الكامل لأحداث دورة حياة الاشتراك.
إدارة API
Create subscriptions
Create subscriptions
استخدم
POST /subscriptions لإنشاء الاشتراكات برمجيًا من المنتجات، مع فترات تجريبية وإضافات اختيارية.API Reference
اعرض API إنشاء الاشتراك.
Update subscriptions
Update subscriptions
استخدم
PATCH /subscriptions/{id} لتحديث الكميات، أو الإلغاء في تاريخ الفوترة التالي، أو تعديل البيانات الوصفية.API Reference
تعرّف على كيفية تحديث تفاصيل الاشتراك.
Change plans (proration)
Change plans (proration)
غيّر المنتج النشط والكميات باستخدام عناصر تحكم proration.
API Reference
راجع خيارات تغيير الخطة.
On‑demand charges
On‑demand charges
بالنسبة إلى الاشتراكات عند الطلب، حصّل مبالغ محددة عند الطلب.
API Reference
حصّل رسوم اشتراك عند الطلب.
List and retrieve
List and retrieve
استخدم
GET /subscriptions لسرد جميع الاشتراكات وGET /subscriptions/{id} لاسترجاع اشتراك واحد.API Reference
تصفّح APIs الخاصة بالسرد والاسترجاع.
Usage history
Usage history
اجلب الاستخدام المسجّل لنماذج التسعير القائم على القياس أو التسعير الهجين.
API Reference
راجع API سجل الاستخدام.
Update payment method
Update payment method
حدّث طريقة الدفع لاشتراك. بالنسبة إلى الاشتراكات النشطة، يحدّث ذلك طريقة الدفع للتجديدات المستقبلية. أما الاشتراكات في حالة
on_hold، فيعيد تفعيل الاشتراك من خلال إنشاء رسم للمستحقات المتبقية.عند إنشاء رابط جديد لطريقة الدفع (نوع طلب New)، يمكنك تمرير allowed_payment_method_types لتقييد طرق الدفع التي يراها العميل في تلك الصفحة. لن يرى العملاء أبدًا طريقة غير مدرجة في القائمة، مع أن تضمين طريقة لا يضمن ظهورها (إذ يعتمد توفرها أيضًا على عوامل مثل موقع العميل وإعدادات نشاطك التجاري).API Reference
تعرّف على كيفية تحديث طرق الدفع وإعادة تفعيل الاشتراكات.
حالات الاستخدام الشائعة
- SaaS وواجهات API: وصول متعدد المستويات مع إضافات للمقاعد أو الاستخدام
- المحتوى والوسائط: وصول شهري مع فترات تجريبية تمهيدية
- خطط دعم B2B: عقود سنوية مع إضافات دعم متميزة
- الأدوات والإضافات: مفاتيح ترخيص وإصدارات متعاقبة
أمثلة التكامل
جلسات checkout (الاشتراكات)
عند إنشاء جلسات checkout، أدرج منتج الاشتراك والإضافات الاختيارية:تغييرات الخطة مع proration
رقِّ الاشتراك أو خفّضه وتحكّم في سلوك proration:الإلغاء في تاريخ الفوترة التالي
جدول إلغاءً يسري مفعوله عند نهاية فترة الفوترة الحالية:تمديد فترة الاشتراك
مدّد مدة تشغيل الاشتراك من خلال تمريرsubscription_period_count وsubscription_period_interval جديدين إلى PATCH /subscriptions/{id}. تتم إعادة حساب انتهاء الاشتراك من العدد والفاصل الجديدين — على سبيل المثال، لمنح العميل وقتًا إضافيًا على خطته الحالية:
يمكن زيادة فترة الاشتراك فقط، ولا يمكن تقصيرها.
الاشتراكات عند الطلب
أنشئ اشتراكًا عند الطلب وحصّل الرسوم لاحقًا عند الحاجة:تحديث طريقة الدفع لاشتراك نشط
حدّث طريقة الدفع لاشتراك نشط:إعادة تفعيل اشتراك من on_hold
أعد تفعيل اشتراك تم تعليقه بسبب فشل الدفع:الاشتراكات ذات التفويضات المتوافقة مع RBI
تعمل اشتراكات UPI والبطاقات الهندية وفق لوائح RBI (Reserve Bank of India) مع متطلبات تفويض محددة:حدود التفويض
يعتمد نوع التفويض ومبلغه على الرسم المتكرر لاشتراكك:- الرسوم الأقل من حد التفويض (₹15,000 افتراضيًا): ننشئ تفويضًا عند الطلب بمبلغ الحد. يتم تحصيل مبلغ الاشتراك دوريًا وفقًا لتكرار اشتراكك، وبحد أقصى حد التفويض.
- الرسوم عند حد التفويض أو أعلى منه: ننشئ تفويض اشتراك (أو تفويضًا عند الطلب) بالمبلغ الدقيق للاشتراك.
mandate_min_amount_inr_paise (بـ INR paise). المبلغ المسجّل لدى البنك هو max(mandate_floor, billing_amount) — ولذلك يصبح الحد فعليًا سقف التفويض الذي يراه العميل عندما تكون الفوترة أقل.
للاطلاع على معلومات تفصيلية حول التفويضات المتوافقة مع RBI وحد التفويض القابل للضبط لطرق الدفع الهندية، راجع صفحة طرق الدفع في الهند.
اعتبارات الترقية والتخفيض
مهم: عند ترقية الاشتراكات أو تخفيضها، راعِ حدود التفويض بعناية:- إذا أدت الترقية/التخفيض إلى مبلغ رسم يتجاوز Rs 15,000 ويتجاوز حد الدفع عند الطلب الحالي، فقد تفشل رسوم المعاملة.
- في هذه الحالات، قد يحتاج العميل إلى تحديث طريقة الدفع أو تغيير الاشتراك مجددًا لإنشاء تفويض جديد بالحد الصحيح.
التفويض للرسوم ذات القيمة العالية
بالنسبة إلى رسوم الاشتراك التي تبلغ Rs 15,000 أو أكثر:- سيطلب البنك من العميل تفويض المعاملة.
- إذا لم يتمكن العميل من تفويض المعاملة، فستفشل المعاملة وسيتم وضع الاشتراك في حالة التعليق.
تأخير المعالجة لمدة 48 ساعة
الجدول الزمني للمعالجة: تتبع الرسوم المتكررة على البطاقات الهندية واشتراكات UPI نمط معالجة فريدًا:- يتم بدء الرسوم في التاريخ المحدد وفقًا لتكرار اشتراكك.
- لا يتم خصم المبلغ فعليًا من حساب العميل إلا بعد 48 ساعة من بدء الدفع.
- قد تمتد فترة الـ48 ساعة هذه إلى ساعتين أو ثلاث ساعات إضافية بحسب استجابات API البنك.
فترة إلغاء التفويض
خلال فترة المعالجة البالغة 48 ساعة:- يمكن للعملاء إلغاء التفويض عبر تطبيقات الخدمات المصرفية الخاصة بهم.
- إذا ألغى العميل التفويض خلال هذه الفترة، فسيظل الاشتراك نشطًا (وهذه حالة طرفية خاصة باشتراكات AutoPay عبر البطاقات الهندية وUPI).
- مع ذلك، قد يفشل الخصم الفعلي، وفي هذه الحالة سنضع الاشتراك في حالة التعليق.
- تأخير تفعيل المزايا حتى تأكيد الدفع
- تطبيق فترات سماح أو وصول مؤقت
- مراقبة حالة الاشتراك لاكتشاف إلغاءات التفويض
- معالجة حالات تعليق الاشتراك في منطق تطبيقك
أفضل الممارسات
- ابدأ بمستويات واضحة: خطتان أو ثلاث خطط ذات اختلافات واضحة
- وضّح الأسعار: اعرض الإجماليات وproration والتجديد التالي
- استخدم الفترات التجريبية بحكمة: حقّق التحويل من خلال onboarding، وليس بمجرد إتاحة الوقت
- استفد من الإضافات: حافظ على بساطة الخطط الأساسية وبِع الإضافات بشكل إضافي
- اختبر التغييرات: تحقّق من تغييرات الخطط وproration في وضع الاختبار
تُعد الاشتراكات أساسًا مرنًا للإيرادات المتكررة. ابدأ ببساطة، واختبر جيدًا، ثم حسّن بناءً على مقاييس التبنّي ومعدل إلغاء الاشتراك والتوسع.