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

تعيد جميع الطرق أعلاه بنية الاستجابة نفسها:
لا يُضمن وجود سوى 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 لإكمال عملية الشراء.
خيارات التكامل البديلة: بدلًا من إعادة التوجيه، يمكنك تضمين checkout مباشرةً في صفحتك باستخدام Overlay Checkout (تراكب مشروط) أو Inline Checkout (تضمين كامل). وفي تطبيق جوّال أصلي، مرّر عنوان URL نفسه إلى Mobile Checkout SDKs لنظام Android أو iOS أو React Native أو Flutter. تستخدم جميع هذه الخيارات عنوان 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 المختلط: يمكنك الجمع بين منتجات الدفع لمرة واحدة ومنتجات الاشتراك في جلسة 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، ach، multibanco، bancontact_card، eps، ideal، blik، paypal. هذه ليست المجموعة الكاملة — راجع مرجع Create Checkout Session API للاطلاع على كل قيمة مقبولة.
مهم: أدرج دائمًا credit وdebit كخيارات احتياطية لمنع فشل checkout عند عدم توفر طرق الدفع المفضلة.
مثال:
string
تجاوز اختيار العملة الافتراضية بعملة فوترة ثابتة. يستخدم رموز العملات وفق ISO 4217.العملات المدعومة: USD، EUR، GBP، CAD، AUD، INR، وغير ذلكمثال: "USD" للدولار الأمريكي، و"EUR" لليورو
لا يكون هذا الحقل فعالًا إلا عند تفعيل adaptive pricing. إذا كان adaptive pricing معطلًا، فسيتم استخدام العملة الافتراضية للمنتج.
boolean
افتراضي:"false"
اعرض طرق الدفع المحفوظة مسبقًا للعملاء العائدين لتحسين سرعة checkout وتجربة المستخدم.
string
عنوان URL لإعادة توجيه العملاء بعد إتمام الدفع. يضيف Dodo Payments query parameters التالية إلى عنوان URL عند إعادة التوجيه:أمثلة على عناوين URL لإعادة التوجيه:
استخدم query parameters ‏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
تجاوز سلوك 3DS الافتراضي للتاجر لهذه الجلسة.
boolean
افتراضي:"false"
فعّل وضع جمع العناوين المختصر. عند تفعيله، يجمع checkout فقط:
  • الدولة: مطلوبة دائمًا لتحديد الضرائب
  • الرمز البريدي/ZIP: في المناطق التي يلزم فيها لحساب ضريبة المبيعات أو VAT أو GST فقط
يقلل ذلك احتكاك checkout بشكل ملحوظ من خلال إزالة حقول النموذج غير الضرورية.
فعّل العنوان المختصر لإكمال checkout بسرعة أكبر. يظل جمع العنوان الكامل متاحًا للشركات التي تحتاج إلى تفاصيل فوترة كاملة.
string
طريقة دفع محفوظة تخص العميل المرفق. تتطلب confirm: true وcustomer.customer_id موجودًا. عند ضبطها، تتم معالجة الرسوم فورًا ويُعاد checkout_url كـ null — استخدم payment_id المُعاد بدلًا منه.
إذا كانت القيمة true، فأعد عنوان URL مختصرًا لـ checkout بدلًا من عنوان URL الكامل للجلسة.
string
معرّف مجموعة المنتجات لتدفق checkout القائم على المجموعات.
string
معرّف ضريبة العميل (مثل رقم VAT). يتطلب billing_address مع country.
string
اسم تجاري أو قانوني اختياري مرتبط بمعرّف الضريبة. عند توفيره مع tax_id صالح، سيظهر في الفاتورة بدلًا من الاسم الشخصي للعميل.
integer
تجاوز الحد الأدنى لتفويض التاجر (بـ INR paise) الخاص بالتفويضات الإلكترونية بـ INR على البطاقات الهندية.
object
خصّص مظهر واجهة checkout وسلوكها.
object
اضبط الميزات والسلوكيات المحددة لجلسة checkout.
array
اجمع معلومات إضافية من العملاء أثناء checkout باستخدام حقول نموذج مخصصة. يمكنك تعريف ما يصل إلى 5 حقول مخصصة لكل جلسة checkout. تُدرج إجابات العملاء في حمولات webhooks ومتاحة عبر 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 معطلًا، فلن يكون لهذا parameter أي تأثير.

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

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

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

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

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

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

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

11. استخدام طرق الدفع الحالية لإجراء Checkout فوري

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

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

أنشئ روابط دفع مختصرة قابلة للمشاركة باستخدام 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 باستخدام الحقول المخصصة:
تُدرج إجابات الحقول المخصصة تلقائيًا في حمولات 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 للإجمالي الخاضع للضريبة المستحق فعليًا اليوم.

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 لمعاينة الأسعار والضرائب والإجماليات قبل إنشاء جلسة
آخر تعديل في ١٧ أغسطس ٢٠٢٦