Quick Start Guide
Get your first checkout session running in under 5 minutes
API Reference & Live Testing
Explore the full API documentation and interactively test Checkout Session requests and responses.
Preview Checkout
Calculate pricing, taxes, and totals before creating a session.
Session Validity: Checkout sessions are valid for 24 hours by default. If you pass
confirm=true in your request, the session will only be valid for 15 minutes.المتطلبات الأساسية
1
Dodo Payments Account
ستحتاج إلى حساب تاجر نشط لدى Dodo Payments مع إمكانية الوصول إلى API.
2
API Credentials
أنشئ بيانات اعتماد API من لوحة تحكم Dodo Payments:
3
Products Setup
أنشئ منتجاتك في لوحة تحكم Dodo Payments قبل تنفيذ جلسات checkout.
إنشاء أول جلسة Checkout
- Node.js SDK
- Python SDK
- REST API
استجابة API
تعيد جميع الطرق أعلاه بنية الاستجابة نفسها:session_id. تُعيد حالتان حقولًا إضافية أو أقل:
- تم توفير
payment_method_id— تتم معالجة الرسوم فورًا ويكونcheckout_urlهوnull. استخدمpayment_idالمُعاد بدلًا منه. - أنشأ
confirm: trueعملية الدفع وقت إنشاء الجلسة — تتضمن الاستجابة أيضًاpayment_idوclient_secretوpublishable_keyلاستخدامها مع Dodo Payments checkout SDK.
إن
checkout_url المُنشأ صالح للاستخدام مرة واحدة وتنتهي صلاحيته خلال 24 ساعة. لا تُخزّنه مؤقتًا أو تعِد استخدامه بين العملاء أو محاولات الدفع — أنشئ جلسة checkout جديدة كلما احتجت إلى رابط جديد.1
Get the checkout URL
استخرج
checkout_url من استجابة API.2
Redirect your customer
وجّه عميلك إلى عنوان URL الخاص بـ checkout لإكمال عملية الشراء.
3
Handle the return
بعد الدفع، تتم إعادة توجيه العملاء إلى
return_url الخاص بك مع query parameters تتضمن معرّف الدفع/الاشتراك، والحالة، والبريد الإلكتروني للعميل، وأي مفاتيح ترخيص. راجع مستندات parameters الخاصة بـ return_url للاطلاع على القائمة الكاملة.نص الطلب
Required Fields
الحقول الأساسية المطلوبة لكل جلسة checkout
Optional Fields
إعدادات إضافية لتخصيص تجربة checkout
الحقول المطلوبة
array
مطلوب
مصفوفة المنتجات المطلوب تضمينها في جلسة checkout. يجب أن يتضمن كل منتج
product_id صالحًا من لوحة تحكم Dodo Payments.الحقول الاختيارية
اضبط هذه الحقول لتخصيص تجربة checkout وإضافة منطق الأعمال إلى تدفق الدفع.Customer Information
Customer Information
object
معلومات العميل. يمكنك إما إرفاق عميل موجود باستخدام معرّفه أو إنشاء سجل عميل جديد أثناء checkout.
- Attach Existing Customer
- New Customer
أرفق عميلًا موجودًا بجلسة checkout باستخدام معرّفه.
object
معلومات عنوان الفوترة لحساب الضرائب بدقة، ومنع الاحتيال، والامتثال للمتطلبات التنظيمية.
عند ضبط
confirm على true، تصبح جميع حقول عنوان الفوترة مطلوبة لإنشاء الجلسة بنجاح.Payment Configuration
Payment Configuration
array
تحكّم في طرق الدفع المتاحة للعملاء أثناء checkout. يساعد ذلك على التحسين لأسواق أو متطلبات أعمال محددة.الخيارات الشائعة:
credit، debit، upi_collect، apple_pay، google_pay، amazon_pay، klarna، affirm، afterpay_clearpay، cashapp، ach، multibanco، bancontact_card، eps، ideal، blik، paypal. هذه ليست المجموعة الكاملة — راجع مرجع Create Checkout Session API للاطلاع على كل قيمة مقبولة.مثال:string
تجاوز اختيار العملة الافتراضية بعملة فوترة ثابتة. يستخدم رموز العملات وفق ISO 4217.العملات المدعومة:
USD، EUR، GBP، CAD، AUD، INR، وغير ذلكمثال: "USD" للدولار الأمريكي، و"EUR" لليورولا يكون هذا الحقل فعالًا إلا عند تفعيل adaptive pricing. إذا كان adaptive pricing معطلًا، فسيتم استخدام العملة الافتراضية للمنتج.
boolean
افتراضي:"false"
اعرض طرق الدفع المحفوظة مسبقًا للعملاء العائدين لتحسين سرعة checkout وتجربة المستخدم.
Session Management
Session Management
string
عنوان URL لإعادة توجيه العملاء بعد إتمام الدفع. يضيف Dodo Payments query parameters التالية إلى عنوان URL عند إعادة التوجيه:
أمثلة على عناوين URL لإعادة التوجيه:
string
عنوان URL لإعادة توجيه العملاء عند النقر على زر الرجوع أو إلغاء جلسة checkout. إذا لم يتم توفيره، فلن يظهر زر الرجوع.
boolean
افتراضي:"false"
إذا كانت القيمة true، فسيتم إنهاء جميع تفاصيل الجلسة فورًا. سيُصدر API خطأً إذا كانت البيانات المطلوبة مفقودة.
array
طبّق رمز خصم واحدًا أو أكثر بشكل متسلسل على جلسة checkout. تُطبّق الرموز بترتيب المصفوفة (يخفض الرمز الأول السعر الأساسي، ويخفض الثاني السعر بعد الخصم، وهكذا)، بحد أقصى 20 رمزًا لكل جلسة.
إن الحقل المفرد
discount_code أدناه مهمل لكنه لا يزال مدعومًا بالكامل — وتستمر عمليات التكامل الحالية في العمل دون تغييرات. لا يمكن دمجه مع discount_codes في الطلب نفسه. انتقل إلى discount_codes عندما يناسبك للاستفادة من التطبيق المتسلسل.string
مهمل
مهمل — استخدم
discount_codes في عمليات التكامل الجديدة. لا يزال هذا الحقل يعمل للتوافق مع الإصدارات السابقة، لكنه لا يمكن دمجه مع discount_codes في الطلب نفسه.object
أزواج مخصصة من المفتاح والقيمة لتخزين معلومات إضافية حول الجلسة.
boolean
تجاوز سلوك 3DS الافتراضي للتاجر لهذه الجلسة.
boolean
افتراضي:"false"
فعّل وضع جمع العناوين المختصر. عند تفعيله، يجمع checkout فقط:
- الدولة: مطلوبة دائمًا لتحديد الضرائب
- الرمز البريدي/ZIP: في المناطق التي يلزم فيها لحساب ضريبة المبيعات أو VAT أو GST فقط
string
طريقة دفع محفوظة تخص العميل المرفق. تتطلب
confirm: true وcustomer.customer_id موجودًا. عند ضبطها، تتم معالجة الرسوم فورًا ويُعاد checkout_url كـ null — استخدم payment_id المُعاد بدلًا منه.boolean
افتراضي:"false"
إذا كانت القيمة true، فأعد عنوان URL مختصرًا لـ checkout بدلًا من عنوان URL الكامل للجلسة.
string
معرّف مجموعة المنتجات لتدفق checkout القائم على المجموعات.
string
معرّف ضريبة العميل (مثل رقم VAT). يتطلب
billing_address مع country.string
اسم تجاري أو قانوني اختياري مرتبط بمعرّف الضريبة. عند توفيره مع
tax_id صالح، سيظهر في الفاتورة بدلًا من الاسم الشخصي للعميل.integer
تجاوز الحد الأدنى لتفويض التاجر (بـ INR paise) الخاص بالتفويضات الإلكترونية بـ INR على البطاقات الهندية.
UI Customization & Features
UI Customization & Features
Custom Fields
Custom Fields
array
اجمع معلومات إضافية من العملاء أثناء checkout باستخدام حقول نموذج مخصصة. يمكنك تعريف ما يصل إلى 5 حقول مخصصة لكل جلسة checkout. تُدرج إجابات العملاء في حمولات webhooks ومتاحة عبر API.
تُدرج إجابات العملاء عن الحقول المخصصة في:
- Webhooks: تحتوي
payment.succeededوsubscription.activeوحمولات الأحداث الأخرى ذات الصلة على مصفوفةcustom_field_responses - استجابات API: تتضمن كائنات الدفع والاشتراك
custom_field_responses
Subscription Configuration
Subscription Configuration
object
إعدادات إضافية لجلسات checkout التي تتضمن منتجات الاشتراك.
أمثلة على الاستخدام
فيما يلي 10 أمثلة شاملة توضح إعدادات مختلفة لجلسات checkout لسيناريوهات أعمال متعددة:1. Checkout بسيط لمنتج واحد
2. سلة متعددة المنتجات
3. اشتراك مع فترة تجريبية
4. Checkout مؤكد مسبقًا
عند ضبط
confirm على true، سينتقل العميل مباشرةً إلى صفحة checkout متجاوزًا أي خطوات تأكيد.5. Checkout مع تجاوز العملة
لا يسري تجاوز
billing_currency إلا عند تفعيل Adaptive Currency في إعدادات حسابك. إذا كان Adaptive Currency معطلًا، فلن يكون لهذا parameter أي تأثير.6. طرق الدفع المحفوظة للعملاء العائدين
7. Checkout للأعمال بين الشركات مع جمع المعرّف الضريبي
8. Checkout بالسمة الداكنة مع رموز خصم متسلسلة
9. طرق الدفع الإقليمية (UPI للهند)
للحصول على معلومات مفصلة حول إعداد UPI واختباره، راجع صفحة طرق الدفع في الهند.10. Checkout باستخدام BNPL (اشترِ الآن وادفع لاحقًا)
للحصول على معلومات مفصلة حول إعداد BNPL واختباره، راجع صفحة اشترِ الآن وادفع لاحقًا (BNPL).11. استخدام طرق الدفع الحالية لإجراء Checkout فوري
استخدم طريقة الدفع المحفوظة للعميل لإنشاء جلسة checkout تتم معالجتها فورًا، مع تخطي جمع طريقة الدفع:يجب أن تخص طريقة الدفع العميل وأن تكون متوافقة مع عملة الدفع. يتيح ذلك عمليات شراء بنقرة واحدة للعملاء العائدين.
12. روابط مختصرة لعناوين URL أوضح للدفع
أنشئ روابط دفع مختصرة قابلة للمشاركة باستخدام slugs مخصصة:13. تخطي صفحة نجاح الدفع مع إعادة التوجيه الفورية
أعد توجيه العملاء فورًا بعد إتمام الدفع، متجاوزًا صفحة النجاح الافتراضية:عند تفعيل
redirect_immediately، تتم إعادة توجيه العملاء إلى return_url فورًا بعد إتمام الدفع، مع تخطي صفحة النجاح الافتراضية بالكامل.14. فرض لغة محددة
أجبر checkout على العرض بلغة محددة، متجاوزًا اكتشاف لغة متصفح العميل:ar)، الكاتالونية (ca)، الصينية (zh)، الهولندية (nl)، الإنجليزية (en)، الفرنسية (fr)، الألمانية (de)، العبرية (he)، الإندونيسية (id)، الإيطالية (it)، اليابانية (ja)، الكورية (ko)، الملايوية (ms)، البولندية (pl)، البرتغالية (pt)، الرومانية (ro)، الروسية (ru)، الإسبانية (es)، السويدية (sv)، التايلاندية (th)، التركية (tr)
15. جمع الحقول المخصصة
اجمع معلومات إضافية من العملاء أثناء checkout باستخدام الحقول المخصصة:تُدرج إجابات الحقول المخصصة تلقائيًا في حمولات webhooks (
payment.succeeded وsubscription.active وغيرهما) ويمكن استردادها عبر API. استخدمها لإثراء CRM أو تشغيل تدفقات الإعداد أو تخصيص تجربة العميل.text، number، email، url، date، dropdown، boolean
معاينة جلسات checkout
قبل إنشاء جلسة checkout، يمكنك معاينة تفاصيل الأسعار بما في ذلك الضرائب والخصومات والإجماليات. يفيد ذلك في عرض أسعار دقيقة للعملاء قبل انتقالهم إلى checkout.عندما تحتوي السلة على منتج اشتراك، تعيد استجابة المعاينة أيضًا
next_billing_date — وهي معاينة لتاريخ الفوترة القادم، حتى تتمكن من عرضه قبل إنشاء الاشتراك. يُحسب نسبيًا إلى الوقت الحالي: now + trial period عند تطبيق تجربة، وإلا now + one payment frequency. يُحذف الحقل من السلال التي تحتوي على منتجات لمرة واحدة فقط. هذا تقدير يستند إلى وقت المعاينة؛ أما next_billing_date المعتمد فيُحدد عند تفعيل الاشتراك.تعيد المعاينة أيضًا
trial_period_days (مدة التجربة الفعلية، المجانية أو المدفوعة) وtrial_amount (رسوم التجربة لكل وحدة بعد الخصومات، بوحدات العملة الصغرى). لا يظهر trial_amount إلا في تجربة مدفوعة، ويكون null في التجربة المجانية أو عند عدم وجود تجربة. استخدم current_breakup للإجمالي الخاضع للضريبة المستحق فعليًا اليوم.- Node.js SDK
- Python SDK
Preview API Reference
عرض وثائق endpoint الكاملة للمعاينة.
الانتقال من الروابط الديناميكية إلى جلسات checkout
الاختلافات الرئيسية
سابقًا، عند إنشاء رابط دفع باستخدام Dynamic Links، كان يُطلب منك توفير عنوان الفوترة الكامل للعميل. مع Checkout Sessions، لم يعد ذلك ضروريًا. يمكنك ببساطة تمرير أي معلومات متاحة لديك، وسنتولى الباقي. على سبيل المثال:- إذا كنت تعرف دولة فوترة العميل فقط، فما عليك سوى توفيرها.
- سيجمع تدفق checkout التفاصيل المفقودة تلقائيًا قبل نقل العميل إلى صفحة الدفع.
- من ناحية أخرى، إذا كانت لديك جميع المعلومات المطلوبة بالفعل وتريد الانتقال مباشرةً إلى صفحة الدفع، فيمكنك تمرير مجموعة البيانات الكاملة وتضمين
confirm=trueفي نص طلبك.
عملية الترحيل
الانتقال من Dynamic Links إلى Checkout Sessions مباشر:1
Update your integration
حدّث تكاملك لاستخدام طريقة API أو SDK الجديدة.
2
Adjust request payload
اضبط حمولة الطلب وفق تنسيق Checkout Sessions.
3
That's it!
نعم. لا يلزم إجراء إضافي أو خطوات ترحيل خاصة من جانبك.
مرجع API ذي الصلة
Create Checkout Session
مرجع API الكامل لإنشاء جلسات checkout مع جميع parameters والخيارات المتاحة
Preview Checkout Session
مرجع API لمعاينة الأسعار والضرائب والإجماليات قبل إنشاء جلسة