Skip to main content

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.
الروابط ذات الاستخدام الواحد: إن checkout_url الذي تُرجعه API غير قابل لإعادة الاستخدام وتنتهي صلاحيته خلال 24 ساعة (أو 15 دقيقة عند confirm=true). وهو مخصص لعميل واحد لإتمام دفعة واحدة. أنشئ جلسة checkout جديدة لكل عميل ولكل محاولة دفع، بدلاً من مشاركة الرابط أو إعادة استخدامه.

المتطلبات الأساسية

1

Dodo Payments Account

ستحتاج إلى حساب تاجر نشط لدى Dodo Payments مع إمكانية الوصول إلى API.
2

API Credentials

أنشئ بيانات اعتماد API من لوحة تحكم Dodo Payments:
3

Products Setup

أنشئ منتجاتك في لوحة تحكم Dodo Payments قبل تنفيذ جلسات checkout.

إنشاء أول جلسة Checkout

استجابة API

تعيد جميع الطرق أعلاه بنية الاستجابة نفسها:
إن checkout_url الذي تم إنشاؤه مخصص للاستخدام مرة واحدة وتنتهي صلاحيته خلال 24 ساعة. لا تخزّنه مؤقتًا أو تعِد استخدامه مع عملاء أو محاولات دفع مختلفة — أنشئ جلسة checkout جديدة كلما احتجت إلى رابط جديد.
1

Get the checkout URL

استخرج checkout_url من استجابة API.
2

Redirect your customer

وجّه عميلك إلى عنوان URL الخاص بـ checkout لإتمام عملية الشراء.
خيارات التكامل البديلة: بدلاً من إعادة التوجيه، يمكنك تضمين checkout مباشرةً في صفحتك باستخدام Overlay Checkout (نافذة تراكب منبثقة) أو Inline Checkout (تضمين كامل). وفي تطبيق جوّال أصلي، مرّر عنوان URL نفسه إلى Mobile Checkout SDKs لنظام Android أو iOS أو React Native أو Flutter. تستخدم جميع هذه الخيارات عنوان URL نفسه لجلسة checkout.
3

Handle the return

بعد الدفع، يُعاد توجيه العملاء إلى return_url الخاص بك مع query parameters تتضمن معرّف الدفع/الاشتراك، والحالة، والبريد الإلكتروني للعميل، وأي مفاتيح ترخيص. راجع مستندات معاملات return_url للاطلاع على القائمة الكاملة.

Request Body

Required Fields

الحقول الأساسية المطلوبة لكل جلسة checkout

Optional Fields

إعدادات إضافية لتخصيص تجربة checkout

الحقول المطلوبة

array
مطلوب
مصفوفة المنتجات المراد تضمينها في جلسة checkout. يجب أن يحتوي كل منتج على product_id صالح من لوحة تحكم Dodo Payments.
Checkout المختلط: يمكنك الجمع بين منتجات الدفع لمرة واحدة ومنتجات الاشتراك في جلسة checkout نفسها. يتيح ذلك حالات استخدام متقدمة مثل رسوم الإعداد مع الاشتراكات، وحزم الأجهزة مع SaaS، وغير ذلك.
العثور على معرّفات منتجاتك: يمكنك العثور على معرّفات المنتجات في لوحة تحكم Dodo Payments ضمن Products → View Details، أو باستخدام List Products API.

الحقول الاختيارية

اضبط هذه الحقول لتخصيص تجربة checkout وإضافة منطق الأعمال إلى تدفق الدفع.
object
معلومات العميل. يمكنك إما إرفاق عميل موجود باستخدام معرّفه، أو إنشاء سجل عميل جديد أثناء checkout.
إرفاق عميل موجود بجلسة checkout باستخدام معرّفه.
object
معلومات عنوان الفوترة لحساب الضرائب بدقة، ومنع الاحتيال، والامتثال للمتطلبات التنظيمية.
عند ضبط confirm على true، تصبح جميع حقول عنوان الفوترة مطلوبة لإنشاء الجلسة بنجاح.
array
تحكّم في طرق الدفع المتاحة للعملاء أثناء checkout. يساعد ذلك على تحسين التجربة لأسواق أو متطلبات أعمال محددة.الخيارات المتاحة: credit، debit، upi_collect، apple_pay، google_pay، amazon_pay، klarna، affirm، afterpay_clearpay، cashapp، multibanco، bancontact_card، eps، ideal، przelewy24، paypal
مهم: أدرج دائمًا credit وdebit كخيارين احتياطيين لمنع فشل checkout عند عدم توفر طرق الدفع المفضلة.
مثال:
string
تجاوز اختيار العملة الافتراضي باستخدام عملة فوترة ثابتة. يستخدم رموز العملات وفق ISO 4217.العملات المدعومة: USD، EUR، GBP، CAD، AUD، INR، وغير ذلكمثال: "USD" للدولار الأمريكي، و"EUR" لليورو
لا يكون هذا الحقل فعالًا إلا عند تفعيل التسعير التكيفي. وإذا كان التسعير التكيفي معطلاً، فستُستخدم العملة الافتراضية للمنتج.
boolean
افتراضي:"false"
عرض طرق الدفع المحفوظة مسبقًا للعملاء العائدين، مما يحسّن سرعة checkout وتجربة المستخدم.
string
عنوان URL لإعادة توجيه العملاء بعد إتمام الدفع. تضيف Dodo Payments معاملات الاستعلام التالية إلى عنوان URL عند إعادة التوجيه:أمثلة على عناوين URL لإعادة التوجيه:
استخدم معاملات الاستعلام license_key وemail لعرض مفاتيح الترخيص أو إرسال تأكيد فورًا في صفحة العودة، دون الحاجة إلى استدعاء API إضافي.
string
عنوان URL لإعادة توجيه العملاء عند النقر على زر الرجوع أو إلغاء جلسة checkout. إذا لم يتم توفيره، فلن يُعرض زر الرجوع.
عيّن cancel_url لتوفير طريقة واضحة للعملاء للعودة إلى موقعك دون إتمام عملية الشراء. يحسّن ذلك تجربة checkout ويقلل الاحتكاك.
boolean
افتراضي:"false"
عند ضبطه على true، يُنهي جميع تفاصيل الجلسة فورًا. وستُصدر API خطأً إذا كانت البيانات المطلوبة مفقودة.
array
طبّق رمز خصم واحدًا أو أكثر بشكل متسلسل على جلسة checkout. تُطبّق الرموز بترتيب المصفوفة (يخفض الرمز الأول السعر الأساسي، ثم يخفض الرمز الثاني السعر بعد الخصم، وهكذا)، بحد أقصى 20 رمزًا لكل جلسة.
الحقل المفرد discount_code أدناه متوقف لكنه لا يزال مدعومًا بالكامل — وتستمر عمليات التكامل الحالية في العمل دون تغييرات. لا يمكن دمجه مع discount_codes في الطلب نفسه. انتقل إلى discount_codes عندما يناسبك للاستفادة من التطبيق المتسلسل.
string
مهمل
متوقف — يُفضّل استخدام discount_codes لعمليات التكامل الجديدة. لا يزال هذا الحقل يعمل للتوافق مع الإصدارات السابقة، لكنه لا يمكن دمجه مع discount_codes في الطلب نفسه.
object
أزواج مخصصة من المفتاح والقيمة لتخزين معلومات إضافية حول الجلسة.
boolean
تجاوز سلوك merchant الافتراضي لـ 3DS لهذه الجلسة.
boolean
افتراضي:"false"
فعّل وضع جمع العنوان المختصر. عند تفعيله، يجمع checkout فقط:
  • الدولة: مطلوبة دائمًا لتحديد الضرائب
  • ZIP/الرمز البريدي: في المناطق التي تحتاج إليه فقط لحساب ضريبة المبيعات أو VAT أو GST
يقلل ذلك احتكاك checkout بشكل كبير من خلال إزالة حقول النموذج غير الضرورية.
فعّل العنوان المختصر لإتمام checkout بسرعة أكبر. يظل جمع العنوان الكامل متاحًا للأنشطة التجارية التي تتطلب تفاصيل فوترة كاملة.
object
خصّص مظهر واجهة checkout وسلوكها.
object
اضبط الميزات والسلوكيات المحددة لجلسة checkout.
array
اجمع معلومات إضافية من العملاء أثناء checkout باستخدام حقول نموذج مخصصة. يمكنك تعريف ما يصل إلى 5 حقول مخصصة لكل جلسة checkout. تُضمّن إجابات العملاء في حمولات webhook وتتوفر عبر API.
تُضمّن إجابات العملاء عن الحقول المخصصة في:
  • Webhooks: تحتوي payment.succeeded وsubscription.active وغيرها من حمولات الأحداث ذات الصلة على مصفوفة custom_field_responses
  • استجابات API: تتضمن كائنات الدفع والاشتراك custom_field_responses
object
إعدادات إضافية لجلسات checkout التي تتضمن منتجات اشتراك.

أمثلة على الاستخدام

فيما يلي 10 أمثلة شاملة توضّح إعدادات مختلفة لجلسات checkout لسيناريوهات أعمال متعددة:

1. Checkout لمنتج واحد بسيط

2. سلة متعددة المنتجات

3. اشتراك مع فترة تجريبية

4. Checkout مؤكد مسبقًا

عند ضبط confirm على true، سيتم نقل العميل مباشرةً إلى صفحة checkout مع تجاوز أي خطوات تأكيد.

5. Checkout مع تجاوز العملة

لا يسري تجاوز billing_currency إلا عند تفعيل Adaptive Currency في إعدادات حسابك. وإذا كان Adaptive Currency معطلاً، فلن يكون لهذا المعيار أي تأثير.

6. طرق الدفع المحفوظة للعملاء العائدين

7. Checkout للشركات مع جمع المعرّف الضريبي

8. Checkout بنمط داكن مع رموز خصم متسلسلة

9. طرق دفع إقليمية (UPI للهند)

للحصول على معلومات تفصيلية حول إعداد UPI واختباره، راجع صفحة طرق الدفع في الهند.

10. Checkout بخدمة BNPL (اشترِ الآن وادفع لاحقًا)

للحصول على معلومات تفصيلية حول إعداد BNPL واختباره، راجع صفحة اشترِ الآن وادفع لاحقًا (BNPL).

11. استخدام طرق الدفع الحالية لإتمام checkout فورًا

استخدم طريقة الدفع المحفوظة للعميل لإنشاء جلسة checkout تُعالج فورًا، مع تخطي جمع طريقة الدفع:
عند استخدام payment_method_id، يجب ضبط confirm على true وتوفير customer_id موجود. سيتم التحقق من أهلية طريقة الدفع باستخدام عملة الدفع.
يجب أن تكون طريقة الدفع مملوكة للعميل ومتوافقة مع عملة الدفع. يتيح ذلك عمليات الشراء بنقرة واحدة للعملاء العائدين.

12. روابط مختصرة لعناوين دفع أوضح

أنشئ روابط دفع مختصرة قابلة للمشاركة باستخدام slugs مخصصة:
تُعد الروابط المختصرة مثالية للمشاركة عبر SMS أو البريد الإلكتروني أو وسائل التواصل الاجتماعي. فهي أسهل في التذكر وتبني ثقة أكبر لدى العملاء مقارنةً بعناوين URL الطويلة.

13. تخطي صفحة نجاح الدفع مع إعادة التوجيه الفورية

أعد توجيه العملاء فورًا بعد إتمام الدفع، مع تجاوز صفحة النجاح الافتراضية:
استخدم redirect_immediately: true عندما تكون لديك صفحة نجاح مخصصة توفر تجربة مستخدم أفضل من صفحة نجاح الدفع الافتراضية. ويفيد ذلك خصوصًا في تطبيقات الجوال وتدفقات checkout المضمّنة.
عند تفعيل redirect_immediately، يُعاد توجيه العملاء إلى return_url فورًا بعد إتمام الدفع، مع تخطي صفحة النجاح الافتراضية بالكامل.

14. فرض لغة محددة

أجبر checkout على العرض بلغة محددة، متجاوزًا اكتشاف لغة متصفح العميل:
استخدم force_language عندما تعرف اللغة المفضلة للعميل (مثلًا من إعدادات حسابه)، أو عند استهداف أسواق إقليمية محددة.
اللغات المدعومة: العربية (ar)، الكتالانية (ca)، الصينية (zh)، الهولندية (nl)، الإنجليزية (en)، الفرنسية (fr)، الألمانية (de)، العبرية (he)، الإندونيسية (id)، الإيطالية (it)، اليابانية (ja)، الكورية (ko)، الماليزية (ms)، البولندية (pl)، البرتغالية (pt)، الرومانية (ro)، الروسية (ru)، الإسبانية (es)، السويدية (sv)، التايلاندية (th)، التركية (tr)

15. جمع الحقول المخصصة

اجمع معلومات إضافية من العملاء أثناء checkout باستخدام الحقول المخصصة:
تُضمّن إجابات الحقول المخصصة تلقائيًا في حمولات webhook (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 للإجمالي الخاضع للضريبة المستحق فعليًا اليوم.

Preview API Reference

عرض الوثائق الكاملة لنقطة نهاية المعاينة.

الانتقال من الروابط الديناميكية إلى جلسات Checkout

الاختلافات الرئيسية

سابقًا، عند إنشاء رابط دفع باستخدام Dynamic Links، كان يتعين عليك توفير عنوان الفوترة الكامل للعميل. مع Checkout Sessions، لم يعد ذلك ضروريًا. يمكنك ببساطة تمرير أي معلومات متوفرة لديك، وسنتولى الباقي. على سبيل المثال:
  • إذا كنت تعرف دولة فوترة العميل فقط، فما عليك سوى توفيرها.
  • سيجمع تدفق checkout التفاصيل المفقودة تلقائيًا قبل نقل العميل إلى صفحة الدفع.
  • من ناحية أخرى، إذا كانت لديك جميع المعلومات المطلوبة بالفعل وتريد الانتقال مباشرةً إلى صفحة الدفع، فيمكنك تمرير مجموعة البيانات الكاملة وتضمين confirm=true في request body.

عملية الترحيل

الانتقال من 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 مع جميع المعاملات والخيارات المتاحة

Preview Checkout Session

مرجع API لمعاينة الأسعار والضرائب والإجماليات قبل إنشاء جلسة
آخر تعديل في ٣١ يوليو ٢٠٢٦