Skip to main content

نظرة عامة

تستخدم واجهة برمجة تطبيقات مدفوعات دودي رموز الحالة القياسية HTTP ورموز الخطأ المخصصة للإشارة إلى نجاح أو فشل طلبات API. عند حدوث خطأ، تعيد واجهة برمجة التطبيقات رمز حالة HTTP مناسب واستجابة JSON تحتوي على معلومات مفصلة حول الخطأ. تتضمن كل استجابة خطأ:
  • رمز حالة HTTP يشير إلى الفئة العامة للخطأ
  • رمز خطأ محدد يحدد الطبيعة الدقيقة للخطأ
  • رسالة خطأ قابلة للقراءة البشرية تشرح ما حدث
  • تفاصيل إضافية حول الخطأ عند الاقتضاء
فهم هذه الرموز ومعانيها أمر بالغ الأهمية لـ:
  • تصحيح مشكلات التكامل
  • تنفيذ معالجة الأخطاء بشكل صحيح في تطبيقك
  • تقديم ملاحظات ذات مغزى للمستخدمين النهائيين
  • الحفاظ على نظام معالجة مدفوعات قوي
هذه هي أخطاء API والمنطق التجاري. لأسباب رفض البطاقة التي تُرجع عند فشل الدفع (مثل INSUFFICIENT_FUNDS أو CARD_DECLINED)، راجع مرجع إخفاقات المعاملات بدلاً من ذلك.

رموز خطأ API القياسية

تنسيق استجابة الخطأ

عند حدوث خطأ، تعيد واجهة برمجة التطبيقات استجابة JSON بالهيكل التالي:

مرجع رموز الخطأ

الرموز الخطأ أدناه مجمعة حسب منطقة API التي تتعلق بها. تعرض كل إدخال الحالة التي تحفزها والرسالة التي يعيدها API.

التحقق من الهوية والحساب

  • UNAUTHORIZED
    • محفز: لا يوجد مفتاح API أو رمز غير صالح / نطاق
    • رسالة: ليس لديك إذن لأداء هذا الإجراء
  • MERCHANT_NOT_LIVE
    • محفز: لا يزال العمل في وضع الاختبار / البيئة التجريبية
    • رسالة: التاجر ليس على الهواء مباشرة

المدفوعات وتسجيل الخروج

  • CHECKOUT_SESSION_CONSUMED
    • محفز: جلسة الخروج قد أنشأت بالفعل دفعة
    • رسالة: تم استخدام جلسة الخروج بالفعل
  • NO_ELIGIBLE_PAYMENT_METHODS
    • محفز: بعد التصفية، لم يتبقَ شيء
    • رسالة: لم يتم العثور على طرق دفع مؤهلة
  • PAYMENT_NOT_SUCCEEDED
    • محفز: محاولة استرداد / معالجة دفعة غير ناجحة
    • رسالة: لم تنجح الدفعة المقدمة
  • PREVIOUS_PAYMENT_PENDING
    • محفز: محاولة إنشاء رسوم بينما السابقة في حالة غير نهائية
    • رسالة: لا يمكن إنشاء رسوم جديدة لأن الدفع السابق لم يكتمل بنجاح بعد
  • UNSUCCESSFUL_PAYMENT_ID
    • محفز: معرف الدفع يشير إلى دفعة غير ناجحة
    • رسالة: معرف الدفع لديه حالة غير ناجحة.

موصلات وجلب معالجك الخاص (BYOP)

هذه الأخطاء تتعلق بالموصلات المملوكة للتاجر (جلب معالجك الخاص).
  • BYOP_CONNECTOR_DISABLED
    • محفز: تحديث وسيلة الدفع في اشتراك موجه عبر موصل BYOP معطل
    • رسالة: الاشتراك يتم توجيهه عبر موصل التاجر الخاص (BYOP) الذي تم تعطيله حاليًا
  • BYOP_CUSTOM_INVOICE_ADDRESS_MISSING
    • محفز: دفعة بتوجيه من التاجر (BYOP) تفتقد إلى عنوان فاتورة مخصص مطلوب
    • رسالة: يتطلب عنوان الفاتورة المخصص BYOP عندما يتم توجيه دفعة عبر موصل التاجر
  • CONNECTOR_LABEL_ALREADY_EXISTS
    • محفز: إنشاء موصل بعلامة موجودة بالفعل
    • رسالة: يوجد بالفعل موصل بعلامة كهذه. يرجى اختيار علامة مختلفة.

الاستردادات

  • EXISTING_REFUND_REQUEST_PROCESSING
    • Trigger: طلب استرداد سابق لا يزال قيد المعالجة
    • Message: طلب استرداد بحالة “قيد الانتظار” ما زال قيد المعالجة
  • LINE_ITEM_FULLY_REFUNDED
    • محفز: محاولة استرداد بند خط تم استرداده بالكامل بالفعل
    • رسالة: تم استرداد بند الخط بالكامل لا يمكن استرداده أكثر.
  • LINE_ITEM_NOT_FOUND
    • محفز: معرف العنصر لا يعد جزءاً من الدفع المشار إليه
    • رسالة: لم يتم العثور على بند الخط في الدفع
  • LINE_ITEM_PRORATED
    • محفز: محاولة استرداد أو تحديث لخط محجوب
    • رسالة: لا يمكن استرداد بند الخط لأنه محجوب
  • LINE_ITEM_REFUND_AMOUNT_TOO_HIGH
    • محفز: مبلغ الاسترداد > مبلغ المدفوع (بما في ذلك الضرائب)
    • رسالة: مبلغ الاسترداد المطلوب لبند الخط بما في ذلك الضريبة هو وهو أعلى من المبلغ المدفوع
  • LINE_ITEM_REFUND_AMOUNT_TOO_LOW
    • محفز: مبلغ الاسترداد أقل من الحد الأدنى
    • رسالة: مبلغ الاسترداد المطلوب لبند الخط هو وهو منخفض جداً
  • NOTHING_TO_REFUND
    • محفز: لا يتبقى أي مبلغ يمكن استرداده؛ جميع البنود الإيجابية تم استردادها بالكامل
    • رسالة: لا يتبقى أي مبلغ يمكن استرداده. تم استرداد جميع البنود الإيجابية بالكامل.
  • PARTIAL_REFUND_NOT_ALLOWED
    • محفز: محاولة استرداد جزئي لطريقة دفع تدعم الاستردادات الكاملة فقط
    • رسالة: لا يُسمح بالاستردادات الجزئية لهذه وسيلة الدفع
  • PAYMENT_ALREADY_REFUNDED
    • محفز: استرداد مكرر
    • رسالة: تم استرداد هذا الدفع بالفعل
  • PAYMENT_HAS_BEEN_REFUNDED
    • محفز: تم استرداد الدفعة بالكامل
    • رسالة: تم استرداد معرف الدفع بالكامل.
  • REFUND_AMOUNT_EXCEEDS_PAID_AMOUNT
    • محفز: مبلغ الاسترداد الإجمالي > المبلغ المدفوع
    • رسالة: مبلغ الاسترداد المحسوب أكبر من المبلغ المدفوع
  • REFUND_WINDOW_EXPIRED
    • محفز: خارج نافذة الاسترداد المسموح بها
    • رسالة: لا يمكن تقديم الاستردادات بعد يومًا من إنشاء الدفع. اتصل بـ support@dodopayments.com.
  • ZERO_AMOUNT_PAYMENT_REFUND_NOT_ALLOWED
    • محفز: محاولة استرداد دفعة بلا مبلغ
    • رسالة: لا يمكن استرداد دفعة بمبلغ عملة صفر

الاشتراكات والإضافات

  • ADDONS_IN_USAGE_BASED_BILLING_NOT_SUPPORTED
    • محفز: محاولة إضافة إضافات لخطط الفوترة على أساس الاستخدام
    • رسالة: لا تدعم الاشتراكات الإضافات عند الفوترة على أساس الاستخدام
  • ADDONS_NOT_ALLOWED_FOR_ON_DEMAND
    • محفز: محاولة إضافة إضافات للاشتراكات عند الطلب
    • رسالة: لا يُسمح بالإضافات للاشتراكات عند الطلب
  • CANCEL_SCHEDULED_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED
    • محفز: محاولة بوابة العميل إلغاء تغيير الخطة المجدولة بينما العمل قد عطل هذا الإجراء
    • رسالة: إلغاء تغيير الخطة المجدولة معطل لبوابة العميل.
  • CHARGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION
    • محفز: محاولة تحصيل رسوم الاشتراك المقرر إلغاؤه
    • رسالة: الاشتراك مقرر للإلغاء
  • CUSTOMER_HAS_EXISTING_SUBSCRIPTION
    • محفز: إنشاء اشتراك لعميل لديه بالفعل واحد، عندما لا يسمح بأكثر من اشتراك لكل عميل
    • رسالة: العميل لديه بالفعل اشتراك. للسماح بأكثر من اشتراك لكل عميل، غير إعدادات العمل
  • DO_NOT_BILL_NOT_ALLOWED_IN_CUSTOMER_PORTAL
    • محفز: استخدام do_not_bill وضع التناسخ في تغيير خطة بوابة العميل
    • رسالة: لا يُسمح باستخدام وضع التناسخ do_not_bill في بوابة العميل
  • DUPLICATE_ADDON_IDS_IN_REQUEST
    • محفز: الظهور المتكرر لنفس addon_id أكثر من مرة في الطلب
    • رسالة: لا يُسمح بتكرار معرفات الإضافات
  • INACTIVE_SUBSCRIPTION_PLAN_CHANGE_NOT_SUPPORTED
    • محفز: تغيير الخطة على اشتراك غير نشط
    • رسالة: لا يدعم تغيير الخطط للاشتراكات غير النشطة
  • INVALID_PRORATION_MODE_WITH_NEXT_BILLING_DATE
    • محفز: استخدام وضع تناسخ غير full_immediately مع effective_at: next_billing_date
    • رسالة: يُسمح فقط بوضع التناسخ full_immediately مع effective_at: next_billing_date
  • MISSING_ADDON_IDS
    • محفز: قائمة addon_id فارغة أو تحتوي على معرّفات غير معروفة
    • رسالة: لا يوجد واحد أو أكثر من معرفات المنتج:
  • ON_DEMAND_PLAN_CHANGE_NOT_SUPPORTED
    • محفز: لا يُسمح بتبديل الخطة عند الطلب
    • رسالة: لا يدعم تغيير الخطط للاشتراكات عند الطلب
  • ON_DEMAND_USAGE_BASED_BILLING_NOT_SUPPORTED
    • محفز: محاولة استخدام عند الطلب مع الفوترة على أساس الاستخدام
    • رسالة: لا يدعم الاشتراكات عند الطلب للفوترة على أساس الاستخدام
  • ONE_TIME_PRODUCTS_NOT_ALLOWED_FOR_ON_DEMAND
    • محفز: إضافة منتج بوقت واحد إلى اشتراك عند الطلب
    • رسالة: لا يُسمح بالمنتجات ذات المرة الواحدة للاشتراكات عند الطلب
  • PENDING_PLAN_CHANGE_EXISTS
    • محفز: طلب تغيير خطة جديد بينما لا يزال السابق في انتظار الدفع
    • رسالة: يوجد بالفعل تغيير خطة معلق لهذا الاشتراك. يرجى الانتظار حتى يكتمل الدفع الحالي.
  • PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED
    • محفز: تغيير الخطة من خلال بوابة العميل بينما الأعمال قد عطلتها
    • رسالة: تم تعطيل تغيير خطة الاشتراك لبوابة العميل.
  • PLAN_CHANGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION
    • محفز: محاولة تغيير الخطة على اشتراك مقرر للإلغاء
    • رسالة: الاشتراك مقرر للإلغاء
  • SCHEDULE_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED
    • محفز: جدولة تغيير خطة من خلال بوابة العميل بينما العمل قد عطلها
    • رسالة: تم تعطيل جدولة تغييرات الخطط لهذا العمل.
  • SCHEDULED_PLAN_CHANGE_EXISTS
    • محفز: إنشاء تغيير خطة مقرر عند وجود آخر بالفعل
    • رسالة: يوجد بالفعل تغيير خطة مقرر لهذا الاشتراك. يرجى إلغاء التغيير المجدول الحالي قبل إنشاء واحد جديد.
  • SCHEDULED_PLAN_CHANGE_NOT_FOUND
    • محفز: الإشارة إلى أو إلغاء تغيير خطة مقرر غير موجود
    • رسالة: لم يتم العثور على تغيير خطة مقرر لهذا الاشتراك.
  • SUBSCRIPTION_EXPIRED
    • محفز: الفوترة بعد ends_at
    • رسالة: انتهى الاشتراك لا يمكن إنشاء رسوم جديدة
  • SUBSCRIPTION_INACTIVE
    • محفز: الحالة ≠ ACTIVE
    • رسالة: الاشتراك غير نشط
  • SUBSCRIPTION_NOT_ON_DEMAND
    • محفز: تم الحصول على عقدة عند الطلب ولكن كانت بمدة محددة
    • رسالة: الاشتراك ليس عند الطلب بالفعل
  • SUBSCRIPTION_PAYMENT_RETRY_LIMIT_EXCEEDED
    • محفز: تجاوزت محاولات إعادة محاولة دفع الاشتراك الحد الأقصى
    • رسالة: تجاوز حد المحاولة الأقصى 10 محاولات لهذا الاشتراك

المنتجات، السلة والعلامات التجارية

  • BRAND_MISMATCH
    • محفز: عناصر السلة تنتمي إلى علامات تجارية مختلفة
    • رسالة: يجب أن تنتمي جميع العناصر في سلة المنت جات إلى نفس العلامة التجارية
  • BRAND_NOT_ENABLED
    • محفز: العلامة التجارية معطلة أو غير نشطة
    • رسالة: العلامة التجارية المقدمة غير ممكّنة
  • BRAND_SUBMISSION_NOT_ENABLED
    • محفز: ميزة إعادة تقديم تحقق العلامة التجارية غير ممكّنة
    • رسالة: إعادة تقديم تحقق العلامة التجارية غير ممكّنة
  • FILE_IN_USE
    • Trigger: حذف ملف منتج رقمي لا تزال مراجعته موجودة في منح الاستحقاق النشطة
    • Message: تتم الإشارة إلى الملف الرقمي بواسطة منح نشطة
  • INVALID_SUGGESTED_PRICE
    • محفز: السعر المقترح تحت الحد الأدنى المسموح به
    • رسالة: لا يمكن أن يكون السعر المقترح أقل من السعر الأدنى. في حالة الدفع ما تريد، يُعتبر السعر هو الحد الأدنى المقبول
  • LOCALIZED_PRICE_ALREADY_EXISTS
    • محفز: يوجد سعر محلي بالفعل لهذا المنتج والبلد / العملة
    • رسالة: يوجد سعر محلي لهذا المنتج والبلد / العملة بالفعل
  • LOCALIZED_PRICE_DUPLICATES_BASE
    • محفز: السعر المحلي يكرر عملة / بلد المنتج الأساسية
    • رسالة: السعر المحلي يكرر عملة / بلد المنتج الأساسية
  • LOCALIZED_PRICE_SHAPE_MISMATCH
    • محفز: شكل السعر المحلي لا يتطابق مع pricing_mode المنتج
    • رسالة: شكل السعر المحلي لا يتطابق مع الوضع التسعيري للمنتج
  • MISSING_PRODUCT_INFORMATION
    • محفز: المنتج موجود لكن المعلومات الضرورية مفقودة
    • رسالة: المنتج موجود لكن المعلومات الضرورية الأخرى مفقودة أو غير صالحة
  • PAY_AS_YOU_WANT_AMOUNT_REQUIRED
    • محفز: السعر مفقود لمنتج الدفع حسب ما تريد
    • رسالة: المبلغ إلزامي لمنتج الدفع كما تريد
  • PRODUCT_CART_EMTPY
    • محفز: إرسال سلة منتجات فارغة
    • رسالة: سلة المنتج فارغة (رمز الخطأ يتم تهجئته عمداً كـ EMTPY لتطابق القيمة الدقيقة التي يعيدها API)
  • PRODUCT_COLLECTION_IS_DELETED
    • محفز: العمل على مجموعة منتجات تم حذفها
    • رسالة: لا توجد رسالة
  • PRODUCT_COLLECTION_MUST_HAVE_PRODUCTS
    • محفز: إزالة آخر منتج (أو آخر مجموعة تحتوي منتجات) من مجموعة
    • رسالة: لا يمكن حذف آخر منتج في مجموعة. أرشيف المجموعة بدلاً من ذلك.
  • PRODUCT_IS_DELETED
    • محفز: حذف منتج بشكل لطيف
    • رسالة: لا توجد رسالة
  • PRODUCT_PRICING_MODE_REQUIRED
    • محفز: إضافة أسعار محلية قبل إعداد pricing_mode للمنتج
    • رسالة: يجب ضبط وضع التسعير المنتج قبل إضافة الأسعار المحلية
  • SLUG_ALREADY_TAKEN
    • محفز: شريط المنتج المطلوب / عنوان URL القصير مستخدم بالفعل
    • رسالة: شريط العنوان مأخوذ بالفعل
  • UNABLE_TO_EDIT_PRIMARY_BRAND
    • محفز: محاولة تحديث العلامة التجارية الرئيسية عبر API العادي
    • رسالة: لا يمكن تحديث العلامة التجارية الرئيسية عبر نقطة النهاية API هذه.

الخصومات

  • DISCOUNT_ALREADY_USED_ON_SUBSCRIPTION
    • محفز: إعادة تطبيق خصم تم استخدامه بالفعل في هذا الاشتراك
    • رسالة: تم استخدام هذا الخصم بالفعل في هذا الاشتراك
  • DISCOUNT_CODE_ALREADY_EXISTS
    • محفز: إنشاء رمز خصم مكرر
    • رسالة: رمز الخصم موجود بالفعل
  • DISCOUNT_CODE_EXPIRED
    • محفز: رمز الخصم تجاوز expires_at التاريخ
    • رسالة: رمز الخصم منتهي
  • DISCOUNT_CODE_USAGE_LIMIT_EXCEEDED
    • Trigger: إعادة استخدام الخصم بعد الوصول إلى usage_limit
    • Message: لا يمكن أن يكون حد الاستخدام أقل من times_used / وصل رمز الخصم إلى حد الاستخدام
    • Note: نهائي — استُنفد الرمز. لا تحاول مرة أخرى.
  • DISCOUNT_CONCURRENT_REDEMPTION
    • Trigger: استغراق عملية استرداد أخرى للرمز نفسه وقتًا طويلًا جدًا في قفل صف حد الاستخدام (HTTP 503)
    • Message: تتم عملية استرداد الخصم بشكل متزامن؛ يُرجى إعادة المحاولة
    • Note: مؤقت. قد تظل هناك سعة متاحة للرمز، لذا من الآمن إعادة محاولة الطلب. لا تعرض هذا للعميل على أنه “استُنفد الرمز”.
  • DISCOUNT_CURRENCY_OPTION_INVALID
    • Trigger: قيمة currency_options غير صالحة عند الإنشاء أو التحديث
    • Message: يتطلب الخصم الثابت خيار عملة واحدًا على الأقل مع default قابل للحل / لا يُسمح بخيارات العملات المكررة / يمكن وضع علامة default على خيار عملة واحد فقط
  • DISCOUNT_CUSTOMER_NOT_ELIGIBLE
    • Trigger: لا يستوفي العميل customer_eligibility الخاص بالرمز (first_time أو existing أو أنه ليس ضمن قائمة السماح الخاصة برمز specific)
    • Message: العميل غير مؤهل لرمز الخصم هذا
  • DISCOUNT_MINIMUM_SUBTOTAL_NOT_MET
    • Trigger: إجمالي السلة الفرعي أقل من minimum_subtotal المُهيأ لعملة الدفع
    • Message: إجمالي السلة الفرعي أقل من الحد الأدنى المطلوب للخصم
  • DISCOUNT_NOT_YET_ACTIVE
    • Trigger: استُخدم الرمز قبل تاريخ starts_at الخاص به
    • Message: رمز الخصم غير نشط بعد (‏starts_at في المستقبل)
  • DISCOUNT_PER_CUSTOMER_USAGE_LIMIT_EXCEEDED
    • Trigger: استرد العميل الرمز بالفعل per_customer_usage_limit مرات
    • Message: تم تجاوز حد الاستخدام لكل عميل لرمز الخصم هذا
  • DISCOUNT_NOT_APPLICABLE_TO_NEW_PRODUCT
    • Trigger: تغيير الخطة إلى منتج لا ينطبق عليه الخصم الحالي
    • Message: لا ينطبق الخصم على منتج الخطة الجديدة
  • DISCOUNT_NOT_AVAILABLE_FOR_ON_DEMAND
    • Trigger: تطبيق الرمز على اشتراك عند الطلب
    • Message: قسيمة الخصم غير متاحة للاشتراكات عند الطلب
  • DISCOUNT_NOT_AVAILABLE_FOR_PRODUCT
    • Trigger: تطبيق الرمز على منتجات غير مرتبطة
    • Message: قسيمة الخصم غير متاحة لهذا المنتج
  • INVALID_DISCOUNT_CODE
    • Trigger: الرمز غير موجود / لا ينطبق
    • Message: رمز خصم غير صالح / لا يمكن تطبيق رمز الخصم على أي منتج في السلة
  • INVALID_PERCENTAGE
    • Trigger: قيمة النسبة المئوية > 100% (أو 10,000 نقطة أساس)
    • Message: لا يمكن أن تتجاوز قيمة النسبة المئوية 10000 / لا يمكن أن تتجاوز قيمة رمز الخصم 100%
  • UNSUPPORTED_DISCOUNT_TYPE
    • Trigger: نوع خصم غير مدعوم. كل من percentage وflat مدعومان؛ أما خصومات المبلغ لكل وحدة فغير مدعومة.
    • Message: لا يتم دعم سوى رموز الخصم النسبية والثابتة

مفاتيح الترخيص

  • ACTIVATION_LIMIT_LESS_THAN_CURRENT_AMOUNT
    • Trigger: عمليات تنشيط مفتاح الترخيص: الحد الجديد < عدد النسخ الحالية
    • Message: لا يمكن أن يكون حد التنشيط الجديد أقل من عدد النسخ الحالية
  • INACTIVE_LICENSE_KEY
    • Trigger: حالة المفتاح ≠ ACTIVE
    • Message: مفتاح الترخيص غير نشط
  • LICENSE_KEY_LIMIT_REACHED
    • Trigger: عدد عمليات التنشيط = الحد
    • Message: تم الوصول إلى حد تنشيط مفتاح الترخيص
  • LICENSE_KEY_NOT_FOUND
    • Trigger: معرّف النسخة أو معرّف المفتاح غير صالح
    • Message: لم يتم العثور على نسخة مفتاح الترخيص أو أنها لا تنتمي إلى مفتاح الترخيص هذا
  • NO_EXPIRY_ON_SUBSCRIPTION_LICENSE_KEYS
    • Trigger: محاولة تعيين تاريخ انتهاء لمفتاح قائم على الاشتراك
    • Message: لا يمكن تعيين تاريخ انتهاء لمفتاح ترخيص قائم على الاشتراك

الفوترة القائمة على الاستخدام وأجهزة القياس

  • DUPLICATE_METER_IDS_IN_REQUEST
    • Trigger: يظهر معرّف جهاز القياس نفسه عدة مرات في الطلب
    • Message: لا يُسمح بتكرار Meter Ids
  • INVALID_QUANTITY
    • Trigger: تم تحديد quantity غير صالحة للتسعير القائم على الاستخدام
    • Message: يُسمح بكمية واحدة فقط في منتجات الأسعار القائمة على الاستخدام
  • METER_IS_DELETED
    • Trigger: محاولة استخدام جهاز قياس محذوف
    • Message: تم حذف Meter بالفعل
  • MISSING_METER_IDS
    • Trigger: قائمة معرّفات أجهزة القياس فارغة أو تحتوي على معرّفات غير صالحة
    • Message: واحد أو أكثر من معرّفات أجهزة القياس غير موجود:

الفوترة القائمة على الرصيد

  • CREDIT_ENTITLEMENT_IS_DELETED
    • Trigger: إجراء عملية على استحقاق رصيد تم حذفه
    • Message: تم حذف استحقاق الرصيد بالفعل
  • CREDIT_ENTITLEMENT_NAME_ALREADY_EXISTS
    • Trigger: إنشاء استحقاق رصيد باسم موجود بالفعل
    • Message: يوجد بالفعل استحقاق رصيد بهذا الاسم
  • OVERAGE_LIMIT_EXCEEDED
    • Trigger: قد يتجاوز خصم الاستخدام أو الرصيد حد التجاوز المُهيأ
    • Message: تم تجاوز حد التجاوز

المحفظة

  • INSUFFICIENT_WALLET_FUNDS
    • Trigger: رصيد المحفظة < مبلغ الخصم
    • Message: لا توجد أموال كافية في المحفظة
  • NEGATIVE_BALANCE_ADJUSTMENT
    • Trigger: محاولة جعل رصيد المحفظة سالبًا
    • Message: لا يُسمح بجعل رصيد المحفظة سالبًا

العملة والضرائب والمنطقة

  • EXCHANGE_RATE_NOT_FOUND
    • Trigger: لا يوجد سعر صرف لزوج العملات from → to
    • Message: لم يتم العثور على سعر صرف للتحويل من Currency إلى Currency
  • INVALID_TAX_ID
    • Trigger: فشل التحقق من VAT/GST/TIN
    • Message: Tax Id غير صالح
  • REQUEST_AMOUNT_BELOW_MINIMUM
    • Trigger: المبلغ < الحد الأدنى للمنتج
    • Message: لا يمكن أن يكون المبلغ أقل من الحد الأدنى المحدد للمنتج
  • TOTAL_PAYMENT_AMOUNT_BELOW_MINIMUM_AMOUNT
    • Trigger: إجمالي السلة الموحّد < الحد الأدنى للبوابة
    • Message: يلزم حد أدنى قدره لمعالجة الدفع
  • UNSUPPORTED_BILLING_CURRENCY
    • Trigger: عملة الفوترة المطلوبة غير مدعومة لهذا الاشتراك
    • Message: عملة الفوترة غير USD غير مدعومة للاشتراكات
  • UNSUPPORTED_COUNTRY
    • Trigger: المنطقة الجغرافية غير مدعومة بعد
    • Message: البلد غير مدعوم حاليًا
  • UNSUPPORTED_CURRENCY
    • Trigger: عملة المنتج أو الإضافة ليست عملة يمكن لـ Dodo Payments تحصيل الرسوم بها. يمكن تعيين الأسعار الأساسية بأي عملة قابلة للتحصيل، لذا يعني هذا عادةً أن رمز العملة غير صالح أو غير مدعوم بعد.
    • Message: العملة غير مدعومة حاليًا / لا يتم دعم سوى منتجات USD وINR حاليًا / لا يتم دعم سوى USD وINR لسعر الإضافة / لا يمكن طلب سوى USD أو INR لـ billing_currency / العملة غير مدعومة / عملة غير متوقعة لاشتراكات البطاقات الهندية
  • UNSUPPORTED_TAX_CATEGORY
    • Trigger: سلسلة فئة الضريبة ليست ضمن enum
    • Message: الفئة غير مدعومة حاليًا

التحقق والطلبات

  • DUPLICATE_LINE_ITEMS_IN_REQUEST
    • Trigger: يظهر item_id نفسه مرتين في items[]
    • Message: تم تحديد item_ids مكررة في مصفوفة items
  • INVALID_QUERY_PARAMS
    • Trigger: query parameters متنافية أو مشوّهة
    • Message: يجب أن تحتوي Query params على time_frame أو (start, end) فقط
  • INVALID_REQUEST_BODY
    • Trigger: JSON مشوّه أو مخالفة للمخطط
    • Message: جسم طلبك غير صالح. يُرجى التحقق من request headers والكائن.
  • INVALID_REQUEST_PARAMETERS
    • Trigger: الدلالات غير صحيحة (مثل وجود تاريخ في الماضي)
    • Message: لا يمكن تغيير next_billing_date إلى وقت في الماضي
  • MAXIMUM_KEYS_REACHED
    • Trigger: تجاوز metadata / custom-fields عدد 50 زوجًا
    • Message: تم تجاوز 50 زوجًا من key-value

عام والنظام

  • INTEGER_CONVERSION_FAILURE
    • Trigger: فشل أي تحويل من integer إلى string/decimal أو العكس من جهة الخادم
    • Message: فشل تحويل Integer
  • INTERNAL_SERVER_ERROR
    • Trigger: استثناءات غير مُعالجة؛ يجب تسجيل التفاصيل من جهة الخادم
    • Message: لا توجد رسالة عامة (generic 500)
  • NOT_FOUND
    • Trigger: 404 عام لأي مورد مفقود
    • Message: لم يتم العثور على العنصر (أو رسالة أكثر تحديدًا)
  • TOO_MANY_REQUESTS
    • Trigger: حد معدل 429
    • Message: لا توجد رسائل
  • UNSUPPORTED_ACTION
    • Trigger: إجراء غير مدعوم لنوع المورد
    • Message: تغيير الخطط للاشتراكات القائمة على الاستخدام غير مدعوم

أفضل الممارسات

  1. تعامل دائمًا مع الأخطاء بسلاسة في تطبيقك
  2. طبّق تسجيلًا مناسبًا للأخطاء
  3. استخدم رسائل خطأ مناسبة للمستخدمين النهائيين
  4. طبّق منطق إعادة المحاولة للأخطاء المؤقتة
  5. تواصل مع الدعم بشأن المشكلات التي لم تُحل

الدعم

للحصول على مساعدة إضافية بشأن رموز الأخطاء أو مشكلات التكامل، يُرجى التواصل مع فريق الدعم لدينا عبر support@dodopayments.com.
آخر تعديل في ٦ أغسطس ٢٠٢٦