نظرة عامة
عند فشل طلب ما، تُرجع واجهة Dodo Payments API رمز حالة HTTP ونصًا بتنسيق JSON يحدد الخطأ. استخدم هذه الصفحة لمعرفة سبب الخطأ وكيفية حله. يتضمن كل رد خطأ ما يلي:- رمز حالة HTTP يحدد الفئة العامة للخطأ.
- A
codeيحدد الخطأ بدقة، مثلUNSUPPORTED_COUNTRY. - A
messageيشرح الخطأ بلغة واضحة. يمكن أن يكونmessageهوnull، مثلًا في حالة أخطاء الخادم الداخلية.
code، وليس على message. تُرجع عدة رموز أكثر من رسالة واحدة، وفقًا للسبب.
استخدم رموز الأخطاء هذه من أجل:
- تصحيح مشكلات التكامل.
- معالجة الأخطاء بشكل صحيح في تطبيقك.
- عرض ملاحظات مفيدة لعملائك.
- الحفاظ على موثوقية معالجة المدفوعات.
هذه أخطاء API ومنطق الأعمال. لمعرفة أسباب رفض البطاقات التي تُرجع عند فشل الدفع (مثل
INSUFFICIENT_FUNDS أو CARD_DECLINED)، راجع مرجع فشل المعاملات بدلًا من ذلك.رموز أخطاء API القياسية
تستخدم API رموز حالة HTTP التالية للأخطاء:تنسيق رد الخطأ
يتضمن نص رد الخطأ حقلين، هماcode وmessage:
مرجع رموز الأخطاء
تُجمّع رموز الأخطاء أدناه حسب المجال في API الذي ترتبط به. يوضح كل إدخال الحالة التي تؤدي إلى الخطأ والرسالة التي تُرجعها API. تشير العناصر النائبة مثل{id} إلى قيم تملؤها API.
المصادقة والحساب
-
UNAUTHORIZED- المشغّل: لا يتضمن الطلب مفتاح API أو يتضمن مفتاحًا غير صالح (HTTP 401)، أو لا يملك مفتاح API الدور المطلوب لتنفيذ الإجراء (HTTP 403)
- الرسالة: لا يُسمح لك بتنفيذ هذا الإجراء
-
MERCHANT_NOT_LIVE- المشغّل: طلب في الوضع المباشر لنشاط تجاري لم يفعّل المدفوعات المباشرة (HTTP 403). يشمل ذلك نشاطًا تجاريًا استخدم وضع الاختبار فقط، ونشاطًا لم تُفعّل مدفوعاته المباشرة بعد لأن التحقق غير مكتمل. لا تتأثر طلبات وضع الاختبار.
- الرسالة: المدفوعات المباشرة غير مفعّلة للتاجر
-
BUSINESS_ARCHIVED- المشغّل: أي طلب موجّه إلى العميل لنشاط تجاري مؤرشف (HTTP 403). يشمل ذلك الخروج، وروابط الدفع، وواجهة المتجر، وCustomer Portal، وتفعيل مفتاح الترخيص.
- الرسالة: هذا النشاط التجاري مؤرشف ولم يعد يقبل الطلبات
المدفوعات وCheckout
-
CHECKOUT_SESSION_CONSUMED- المشغّل: أنشأت جلسة Checkout دفعةً مسبقًا (HTTP 403). أنشئ جلسة Checkout جديدة بدلًا من ذلك.
- الرسالة: تم إنشاء دفعة باستخدام جلسة Checkout المحددة مسبقًا.
-
MANUAL_RETRY_ALREADY_PAID- المشغّل: إعادة محاولة يدوية لفاتورة تجديد نجحت دفعتها مسبقًا. ستؤدي إعادة الإرسال إلى تحصيل الرسوم من العميل مرتين.
- الرسالة: نجحت دفعة على هذه الفاتورة مسبقًا
-
MANUAL_RETRY_HARD_DECLINE- المشغّل: إعادة محاولة يدوية عندما يكون آخر فشل في الفاتورة رفضًا نهائيًا، أو لا يتضمن رمز خطأ مصنفًا. لا يمكن أن تنجح عملية تحصيل أخرى باستخدام البطاقة نفسها، لذا حدّث طريقة الدفع بدلًا من ذلك.
- الرسالة: آخر فشل في هذه الفاتورة هو رفض نهائي، لذلك لا يمكن أن تنجح إعادة المحاولة (أو) لا يمكن تصنيف آخر فشل في هذه الفاتورة، ولذلك لا يمكن إعادة المحاولة
-
MANUAL_RETRY_IN_FLIGHT- المشغّل: إعادة محاولة يدوية أثناء كون دفعة على الفاتورة
processingأو عدم تسجيل حالتها بعد. انتظر نتيجة تلك الدفعة بدلًا من إعادة إرسالها. - الرسالة: لا تزال دفعة على هذه الفاتورة قيد المعالجة
- المشغّل: إعادة محاولة يدوية أثناء كون دفعة على الفاتورة
-
MANUAL_RETRY_LIMIT_REACHED- المشغّل: إعادة محاولة يدوية بعد استنفاد عمليات الإرسال الثلاث للفاتورة، أو قبل انقضاء فترة الانتظار (HTTP 429). تنتظر عملية الإرسال الثانية ساعة واحدة بعد الأولى، والثالثة 3 ساعات بعد الثانية. لا يتضمن النص سوى
codeوmessage. لمعرفة موعد السماح بالإرسال التالي، اقرأretry_available_atمنGET /payments/{payment_id}/retry. - الرسالة: استُنفدت جميع عمليات إعادة المحاولة اليدوية لهذه الفاتورة (أو) إعادة المحاولة الآن غير متاحة لهذه الفاتورة بعد
- المشغّل: إعادة محاولة يدوية بعد استنفاد عمليات الإرسال الثلاث للفاتورة، أو قبل انقضاء فترة الانتظار (HTTP 429). تنتظر عملية الإرسال الثانية ساعة واحدة بعد الأولى، والثالثة 3 ساعات بعد الثانية. لا يتضمن النص سوى
-
NO_ELIGIBLE_PAYMENT_METHODS- المشغّل: لم تبقَ أي طريقة دفع متاحة للدفع بعد التصفية (HTTP 422)
- الرسالة: لم يتم العثور على طرق دفع مؤهلة
-
PAYMENT_NOT_PERMITTED- المشغّل: محاولة Checkout أو دفع من عميل موجود في قائمة الحظر الخاصة بالتاجر (HTTP 403). يتعمد الرمز والرسالة عدم ذكر السبب.
- الرسالة: لا يمكن معالجة هذه الدفعة.
-
PAYMENT_NOT_RETRYABLE- المشغّل: إعادة محاولة يدوية لدفع لا تشملها إعادة المحاولة اليدوية. لا تحتوي الدفعة على فاتورة، أو أن فاتورتها ليست تجديد اشتراك مفتوحًا، أو لم تفشل أي دفعة على الفاتورة بعد، أو لا يتضمن الاشتراك فوترة متكررة (مثل الاشتراك عند الطلب)، أو أن العميل موجود في قائمة الحظر.
- الرسالة: تختلف حسب السبب، مثلًا: يمكن إعادة محاولة دفعات تجديد الاشتراك فقط
-
PAYMENT_NOT_SUCCEEDED- المشغّل: محاولة رد مبلغ دفعة أو معالجتها قبل نجاحها
- الرسالة: لم تنجح الدفعة المقدمة
-
PREVIOUS_PAYMENT_PENDING- المشغّل: محاولة إنشاء عملية تحصيل بينما تكون الدفعة السابقة في حالة غير نهائية. تُرجع أيضًا عند إعادة محاولة يدوية عندما لا تكون أحدث دفعة على الفاتورة
failedولا قيد التنفيذ، مثلrequires_customer_actionأوcancelled. - الرسالة: لا يمكن إنشاء عملية تحصيل جديدة لأن الدفعة السابقة لم تنجح بعد (أو) لم تفشل أحدث دفعة على هذه الفاتورة
- المشغّل: محاولة إنشاء عملية تحصيل بينما تكون الدفعة السابقة في حالة غير نهائية. تُرجع أيضًا عند إعادة محاولة يدوية عندما لا تكون أحدث دفعة على الفاتورة
-
UNSUCCESSFUL_PAYMENT_ID- المشغّل: يشير معرّف الدفعة إلى دفعة لم تنجح
- الرسالة: تتمتع Payment ID بحالة غير ناجحة.
الموصلات وBYOP
ترتبط هذه الأخطاء بموصلات الدفع المملوكة للتاجر (Bring Your Own Processor، أو BYOP).-
BYOP_CONNECTOR_DISABLED- المشغّل: تحديث طريقة دفع اشتراك موجّه عبر موصل BYOP معطل. لا تنتقل Dodo Payments إلى موصلاتها الخاصة، لذا أعد تفعيل الموصل أولًا.
- الرسالة: الاشتراك موجّه عبر موصل التاجر الخاص (BYOP) المعطل حاليًا
-
BYOP_CUSTOM_INVOICE_ADDRESS_MISSING- المشغّل: لا يملك دفع موجّه عبر موصل التاجر (BYOP) عنوان فاتورة مخصصًا
- الرسالة: عنوان الفاتورة المخصص لـ BYOP مطلوب عند توجيه الدفع عبر موصل التاجر
-
CONNECTOR_LABEL_ALREADY_EXISTS- المشغّل: إنشاء موصل بتسمية موجودة مسبقًا
- الرسالة: يوجد موصل بهذه التسمية مسبقًا. اختر تسمية مختلفة.
رد المبالغ
-
EXISTING_REFUND_REQUEST_PROCESSING- المشغّل: لا يزال طلب رد مبلغ سابق قيد المعالجة
- الرسالة: لا يزال طلب رد مبلغ بالحالة “Pending” قيد المعالجة
-
LINE_ITEM_FULLY_REFUNDED- المشغّل: محاولة رد مبلغ لعنصر سطر تم رد مبلغه بالكامل مسبقًا
- الرسالة: تم رد مبلغ عنصر السطر
{id}بالكامل، ولا يمكن رد مبلغ إضافي له.
-
LINE_ITEM_NOT_FOUND- المشغّل: لا ينتمي معرّف العنصر إلى الدفعة المشار إليها
- الرسالة: لم يتم العثور على عنصر السطر
{id}في الدفعة
-
LINE_ITEM_PRORATED- المشغّل: محاولة رد مبلغ أو تحديث عنصر سطر محسوب بالتناسب
- الرسالة: لا يمكن رد مبلغ عنصر السطر
{id}لأنه محسوب بالتناسب
-
LINE_ITEM_REFUND_AMOUNT_TOO_HIGH- المشغّل: مبلغ رد المبلغ، بما في ذلك الضريبة، أكبر من المبلغ المدفوع
- الرسالة: مبلغ رد المبلغ المطلوب لعنصر السطر
{id}، بما في ذلك الضريبة، هو{amount}، وهو أكبر من المبلغ المدفوع{amount}
-
LINE_ITEM_REFUND_AMOUNT_TOO_LOW- المشغّل: مبلغ رد المبلغ أقل من الحد الأدنى
- الرسالة: مبلغ رد المبلغ المطلوب لعنصر السطر
{id}هو{amount}، وهو منخفض جدًا
-
NOTHING_TO_REFUND- المشغّل: لم يتبقَ مبلغ قابل لردّه، لأن جميع عناصر السطر الموجبة تم رد مبالغها بالكامل
- الرسالة: لا يوجد مبلغ متبقٍ قابل لردّه. تم رد مبالغ جميع عناصر السطر الموجبة بالكامل.
-
PARTIAL_REFUND_NOT_ALLOWED- المشغّل: محاولة رد مبلغ جزئي باستخدام طريقة دفع تدعم رد المبلغ بالكامل فقط
- الرسالة: لا يُسمح برد المبالغ جزئيًا باستخدام طريقة الدفع هذه
-
PAYMENT_ALREADY_REFUNDED- المشغّل: رد مبلغ مكرر
- الرسالة: تم رد مبلغ هذه الدفعة مسبقًا
-
PAYMENT_HAS_BEEN_REFUNDED- المشغّل: تم رد مبلغ الدفعة بالكامل
- الرسالة: تم رد مبلغ Payment ID بالكامل.
-
REFUND_AMOUNT_EXCEEDS_PAID_AMOUNT- المشغّل: إجمالي مبلغ رد المبلغ أكبر من المبلغ المدفوع
- الرسالة: مبلغ رد المبلغ المحسوب أكبر من المبلغ المدفوع
-
REFUND_WINDOW_EXPIRED- المشغّل: طُلب رد المبلغ خارج الفترة المسموح بها
- الرسالة: لا يمكن بدء رد المبالغ بعد
{days}يومًا من إنشاء الدفعة. تواصل مع 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- المشغّل: يحاول Customer Portal إلغاء تغيير خطة مجدول بينما عطّل النشاط التجاري هذا الإجراء
- الرسالة: إلغاء تغيير الخطة المجدول معطل في بوابة العميل.
-
CHARGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- المشغّل: محاولة تحصيل رسوم اشتراك مجدول للإلغاء
- الرسالة: الاشتراك مجدول للإلغاء
-
CUSTOMER_HAS_EXISTING_SUBSCRIPTION- المشغّل: إنشاء اشتراك لعميل لديه اشتراك مسبقًا، عندما لا يسمح النشاط التجاري باشتراكات متعددة لكل عميل
- الرسالة: لدى العميل
{id}اشتراك موجود. للسماح باشتراكات متعددة لكل عميل، غيّر إعدادات النشاط التجاري
-
DO_NOT_BILL_NOT_ALLOWED_IN_CUSTOMER_PORTAL- المشغّل: استخدام وضع التناسب
do_not_billفي تغيير خطة عبر Customer Portal - الرسالة: لا يُسمح بوضع التناسب 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فارغة أو تتضمن معرّفات غير معروفة - الرسالة: معرّف منتج واحد أو أكثر غير موجود:
{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- المشغّل: تغيير خطة عبر Customer Portal بينما عطّله النشاط التجاري
- الرسالة: تغيير خطة الاشتراك عبر بوابة العميل معطل.
-
PLAN_CHANGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- المشغّل: تغيير خطة لاشتراك مجدول للإلغاء
- الرسالة: الاشتراك مجدول للإلغاء
-
SCHEDULE_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- المشغّل: جدولة تغيير خطة عبر Customer Portal بينما عطّل النشاط التجاري ذلك
- الرسالة: جدولة تغييرات الخطط معطلة لهذا النشاط التجاري.
-
SCHEDULED_PLAN_CHANGE_EXISTS- المشغّل: إنشاء تغيير خطة مجدول عند وجود تغيير آخر مسبقًا
- الرسالة: يوجد تغيير خطة مجدول لهذا الاشتراك. ألغِ التغيير المجدول الموجود قبل إنشاء تغيير جديد.
-
SCHEDULED_PLAN_CHANGE_NOT_FOUND- المشغّل: الإشارة إلى تغيير خطة مجدول غير موجود أو إلغاؤه
- الرسالة: لم يتم العثور على تغيير خطة مجدول لهذا الاشتراك.
-
SUBSCRIPTION_EXPIRED- المشغّل: فوترة اشتراك بعد تاريخ
expires_at - الرسالة: انتهت صلاحية الاشتراك، ولا يمكن إنشاء عمليات تحصيل جديدة
- المشغّل: فوترة اشتراك بعد تاريخ
-
SUBSCRIPTION_HAS_NO_PAYMENT_METHOD- المشغّل: إعادة محاولة يدوية لاشتراك لا يملك طريقة دفع محفوظة للتحصيل خارج الجلسة
- الرسالة: لا يملك هذا الاشتراك طريقة دفع محفوظة للتحصيل
-
SUBSCRIPTION_INACTIVE- المشغّل: حالة الاشتراك ليست
active - الرسالة: الاشتراك غير نشط (أو) هذا الاشتراك غير مباشر، لذا لا يمكن جدولة إلغائه
- المشغّل: حالة الاشتراك ليست
-
SUBSCRIPTION_NOT_ON_DEMAND- المشغّل: إجراء عند الطلب على اشتراك تتم فوترته بفاصل زمني ثابت
- الرسالة: الاشتراك ليس عند الطلب بالفعل
-
SUBSCRIPTION_PAYMENT_RETRY_LIMIT_EXCEEDED- المشغّل: تجاوزت إعادة محاولة دفع الاشتراك الحد الأقصى للمحاولات
- الرسالة: تم تجاوز الحد الأقصى لإعادة المحاولة، وهو 10 محاولات لهذا الاشتراك
العملاء وقائمة الحظر
-
CUSTOMER_ALREADY_BLOCKED- المشغّل: حظر عميل موجود مسبقًا في قائمة الحظر ولا يملك اشتراكات مباشرة متبقية لإلغائها (HTTP 409)
- الرسالة: هذا العميل موجود بالفعل في قائمة الحظر
-
PORTAL_ACTION_NOT_PERMITTED- المشغّل: يستدعي عميل محظور مسار كتابة في Customer Portal: الإلغاء أو الإيقاف المؤقت أو الاستئناف أو تغيير الخطة أو تحديث طريقة الدفع (HTTP 403). تبقى مسارات القراءة مفتوحة. يتعمد الرمز والرسالة عدم ذكر السبب.
- الرسالة: هذا الإجراء غير متاح.
المنتجات والسلة والعلامات التجارية
-
BRAND_ALREADY_ARCHIVED- المشغّل: أرشفة علامة تجارية مؤرشفة مسبقًا
- الرسالة: العلامة التجارية مؤرشفة بالفعل
-
BRAND_ARCHIVED- المشغّل: تحديث علامة تجارية مؤرشفة، أو إرسالها للتحقق، أو وضع علامة عليها لمنتج أو مجموعة منتجات أو اشتراك جديد
- الرسالة: العلامة التجارية مؤرشفة (أو) العلامة التجارية مؤرشفة ولا يمكن تحديثها (أو) العلامة التجارية مؤرشفة ولا يمكن إرسالها للتحقق
-
BRAND_ARCHIVE_TARGET_REQUIRED- المشغّل: أرشفة علامة تجارية لا تزال تحتوي على منتجات أو اشتراكات مباشرة أو مجموعات منتجات من دون هدف
move_products_to - الرسالة: تحتوي العلامة التجارية على
{count}منتج/منتجات. عيّن move_products_to إلى علامة تجارية مستهدفة لإعادة وضع العلامة عليها. وتذكر الرسالة الاشتراكات المباشرة أو مجموعات المنتجات بدلًا من ذلك عندما تمنع الأرشفة.
- المشغّل: أرشفة علامة تجارية لا تزال تحتوي على منتجات أو اشتراكات مباشرة أو مجموعات منتجات من دون هدف
-
BRAND_MISMATCH- المشغّل: تنتمي عناصر السلة إلى علامات تجارية مختلفة
- الرسالة: يجب أن تنتمي جميع عناصر سلة المنتجات إلى العلامة التجارية نفسها
-
BRAND_NOT_ENABLED- المشغّل: العلامة التجارية معطلة أو غير نشطة
- الرسالة: العلامة التجارية المقدمة غير مفعّلة
-
BRAND_SUBMISSION_NOT_ENABLED- المشغّل: ميزة إعادة إرسال التحقق من العلامة التجارية غير مفعّلة
- الرسالة:
Brand verificatin resubmission is not enabled(مكتوبة تمامًا كما تُرجعها API)
-
CANNOT_ARCHIVE_PRIMARY_BRAND- المشغّل: أرشفة العلامة التجارية الأساسية التي يساوي معرّفها معرّف النشاط التجاري
- الرسالة: لا يمكن أرشفة العلامة التجارية الأساسية
-
FILE_IN_USE- المشغّل: حذف ملف منتج رقمي لا تزال منح الاستحقاق النشطة تشير إليه
- الرسالة: الملف الرقمي مشار إليه بواسطة منح نشطة
-
INVALID_BRAND_ARCHIVE_TARGET- المشغّل: يشير
move_products_toإلى العلامة التجارية التي تتم أرشفتها، أو إلى علامة تجارية مؤرشفة، أو إلى علامة تجارية تابعة لنشاط تجاري آخر - الرسالة: يجب أن يكون move_products_to علامة تجارية لهذا النشاط التجاري وغير مؤرشفة (أو) لا يمكن أن تكون move_products_to هي العلامة التجارية التي تؤرشفها
- المشغّل: يشير
-
INVALID_SUGGESTED_PRICE- المشغّل: السعر المقترح لمنتج Pay What You Want أقل من السعر الأدنى
- الرسالة: لا يمكن أن يكون السعر المقترح أقل من السعر الأدنى. في حالة pay what you want، يُعد السعر الحد الأدنى للمبلغ المقبول
-
LOCALIZED_PRICE_ALREADY_EXISTS- المشغّل: يوجد سعر محلي لهذا المنتج والبلد أو العملة مسبقًا
- الرسالة: يوجد سعر محلي لهذا المنتج والبلد/العملة مسبقًا
-
LOCALIZED_PRICE_DUPLICATES_BASE- المشغّل: يكرر السعر المحلي العملة الأساسية أو البلد الأساسي للمنتج
- الرسالة: يكرر السعر المحلي العملة/البلد الأساسي للمنتج
-
LOCALIZED_PRICE_SHAPE_MISMATCH- المشغّل: لا يتطابق شكل السعر المحلي مع
pricing_modeالخاص بالمنتج - الرسالة: لا يتطابق شكل السعر المحلي مع pricing_mode الخاص بالمنتج
- المشغّل: لا يتطابق شكل السعر المحلي مع
-
MISSING_PRODUCT_INFORMATION- المشغّل: المنتج موجود، لكن معلومات إلزامية مفقودة
- الرسالة: المنتج
{id}موجود، لكن معلومات إلزامية أخرى مفقودة أو غير صالحة
-
PAY_AS_YOU_WANT_AMOUNT_REQUIRED- المشغّل: المبلغ مفقود لمنتج Pay What You Want
- الرسالة: المبلغ إلزامي لمنتج pay as you want
-
PRODUCT_CART_EMTPY- المشغّل: تم إرسال سلة منتجات فارغة
- الرسالة: product_cart فارغة (كُتب رمز الخطأ عمدًا
EMTPYلمطابقة القيمة الدقيقة التي تُرجعها API)
-
PRODUCT_COLLECTION_IS_DELETED- المشغّل: تنفيذ عملية على مجموعة منتجات تم حذفها
- الرسالة: لا توجد رسالة
-
PRODUCT_COLLECTION_MUST_HAVE_PRODUCTS- المشغّل: إزالة المنتج الأخير، أو المجموعة الأخيرة التي تحتوي على منتجات، من مجموعة
- الرسالة: لا يمكن حذف المنتج الأخير في مجموعة. أرشف المجموعة بدلًا من ذلك. (أو) لا يمكن حذف المجموعة الأخيرة التي تحتوي على منتجات. أرشف المجموعة بدلًا من ذلك.
-
PRODUCT_IS_DELETED- المشغّل: تم حذف المنتج
- الرسالة: لا توجد رسالة
-
PRODUCT_PRICING_MODE_REQUIRED- المشغّل: إضافة أسعار محلية قبل تعيين
pricing_modeللمنتج - الرسالة: يجب تعيين pricing_mode للمنتج قبل إضافة الأسعار المحلية
- المشغّل: إضافة أسعار محلية قبل تعيين
-
SLUG_ALREADY_TAKEN- المشغّل: slug المنتج المطلوب أو عنوان URL المختصر مستخدم مسبقًا
- الرسالة: slug مستخدم بالفعل
-
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- المشغّل: استخدام رمز الخصم بعد بلوغ
usage_limit - الرسالة: لا يمكن أن يكون حد الاستخدام أقل من times_used (أو) بلغ رمز الخصم حد الاستخدام
- ملاحظة: نهائي. استُنفد الرمز، لذلك لا تعاود المحاولة.
- المشغّل: استخدام رمز الخصم بعد بلوغ
-
DISCOUNT_CONCURRENT_REDEMPTION- المشغّل: احتفظ استخدام آخر للرمز نفسه بقفل حد الاستخدام مدة طويلة (HTTP 503)
- الرسالة: يجري استرداد الخصم بالتزامن؛ يُرجى إعادة المحاولة
- ملاحظة: مؤقت. قد تظل سعة الرمز متاحة، لذا من الآمن إعادة محاولة الطلب. لا تعرض هذه الرسالة للعميل على أن الرمز مستنفد.
-
DISCOUNT_CURRENCY_OPTION_INVALID- المشغّل:
currency_optionsغير صالح عند الإنشاء أو التحديث - الرسالة: يتطلب الخصم الثابت خيار عملة واحدًا على الأقل له قيمة افتراضية قابلة للحل (أو) لا يُسمح بتكرار خيارات العملة (أو) يمكن تحديد خيار عملة واحد فقط كافتراضي
- المشغّل:
-
DISCOUNT_CUSTOMER_NOT_ELIGIBLE- المشغّل: لا يستوفي العميل
customer_eligibilityالخاص بالرمز (first_timeأوexistingأو ليس في قائمة السماح لرمزspecific) - الرسالة: العميل غير مؤهل لرمز الخصم هذا
- المشغّل: لا يستوفي العميل
-
DISCOUNT_MINIMUM_SUBTOTAL_NOT_MET- المشغّل: المجموع الفرعي للسلة أقل من
minimum_subtotalالمعيّن لعملة Checkout - الرسالة: المجموع الفرعي للسلة أقل من الحد الأدنى المطلوب للخصم
- المشغّل: المجموع الفرعي للسلة أقل من
-
DISCOUNT_NOT_YET_ACTIVE- المشغّل: استخدام الرمز قبل تاريخ
starts_at - الرسالة: رمز الخصم غير نشط بعد (تاريخ starts_at في المستقبل)
- المشغّل: استخدام الرمز قبل تاريخ
-
DISCOUNT_PER_CUSTOMER_USAGE_LIMIT_EXCEEDED- المشغّل: استرد العميل الرمز
per_customer_usage_limitمرة مسبقًا - الرسالة: تم تجاوز حد الاستخدام لكل عميل لرمز الخصم هذا
- المشغّل: استرد العميل الرمز
-
DISCOUNT_NOT_APPLICABLE_TO_NEW_PRODUCT- المشغّل: تغيير الخطة إلى منتج لا ينطبق عليه الخصم الحالي
- الرسالة: لا ينطبق الخصم على منتج الخطة الجديدة
-
DISCOUNT_NOT_AVAILABLE_FOR_ON_DEMAND- المشغّل: تطبيق الرمز على اشتراك عند الطلب
- الرسالة: قسيمة الخصم غير متاحة للاشتراكات عند الطلب
-
DISCOUNT_NOT_AVAILABLE_FOR_PRODUCT- المشغّل: تطبيق الرمز على منتجات لا يغطيها
- الرسالة: قسيمة الخصم غير متاحة لهذا المنتج
-
INVALID_DISCOUNT_CODE- المشغّل: الرمز غير موجود، أو لا ينطبق على أي منتج في السلة
- الرسالة: رمز خصم غير صالح (أو) لا يمكن تطبيق رمز الخصم على أي منتج في السلة
-
INVALID_PERCENTAGE- المشغّل: النسبة أعلى من 100% (10,000 نقطة أساس)
- الرسالة: لا يمكن أن تتجاوز النسبة 10000 (أو) لا يمكن أن يتجاوز مبلغ رمز الخصم 100%
-
UNSUPPORTED_DISCOUNT_TYPE- المشغّل: نوع خصم غير مدعوم. كل من
percentageوflatمدعومان؛ أما خصومات المبلغ لكل وحدة فغير مدعومة. - الرسالة: لا تُدعم إلا رموز الخصم النسبية والثابتة (أو) رموز الخصم النسبية فقط مدعومة حاليًا
- المشغّل: نوع خصم غير مدعوم. كل من
مفاتيح التراخيص
-
ACTIVATION_LIMIT_LESS_THAN_CURRENT_AMOUNT- المشغّل: حد التفعيل الجديد لمفتاح الترخيص أقل من عدد مثيلاته الحالي
- الرسالة: لا يمكن أن يكون حد التفعيل الجديد أقل من عدد المثيلات الحالي
-
INACTIVE_LICENSE_KEY- المشغّل: حالة مفتاح الترخيص ليست
active - الرسالة: مفتاح الترخيص غير نشط
- المشغّل: حالة مفتاح الترخيص ليست
-
LICENSE_KEY_LIMIT_REACHED- المشغّل: بلغ عدد التفعيلات حد التفعيل
- الرسالة: تم بلوغ حد تفعيل مفتاح الترخيص
-
LICENSE_KEY_NOT_FOUND- المشغّل: معرّف المثيل أو معرّف مفتاح الترخيص غير صالح
- الرسالة: لم يتم العثور على مثيل مفتاح الترخيص أو أنه لا ينتمي إلى مفتاح الترخيص هذا
-
NO_EXPIRY_ON_SUBSCRIPTION_LICENSE_KEYS- المشغّل: محاولة تعيين تاريخ انتهاء صلاحية لمفتاح ترخيص قائم على اشتراك
- الرسالة: لا يمكن تعيين تاريخ انتهاء صلاحية لمفتاح ترخيص قائم على اشتراك
الفوترة حسب الاستخدام والعدادات
-
DUPLICATE_METER_IDS_IN_REQUEST- المشغّل: ظهور معرّف العداد نفسه أكثر من مرة في الطلب
- الرسالة: لا يُسمح بتكرار معرّفات العدادات
-
INVALID_QUANTITY- المشغّل: كمية غير 1 لمنتج ذي تسعير حسب الاستخدام
- الرسالة: يُسمح بكمية 1 فقط في المنتجات ذات الأسعار حسب الاستخدام
-
METER_IS_DELETED- المشغّل: محاولة استخدام عداد محذوف
- الرسالة: تم حذف العداد بالفعل
-
MISSING_METER_IDS- المشغّل: قائمة معرّفات العدادات فارغة أو تتضمن معرّفات غير صالحة
- الرسالة: معرّف عداد واحد أو أكثر غير موجود:
{id}
الفوترة القائمة على الرصيد
-
CREDIT_ENTITLEMENT_IS_DELETED- المشغّل: تنفيذ عملية على استحقاق رصيد تم حذفه
- الرسالة: تم حذف استحقاق الرصيد بالفعل
-
CREDIT_ENTITLEMENT_NAME_ALREADY_EXISTS- المشغّل: إنشاء استحقاق رصيد باسم موجود مسبقًا
- الرسالة: يوجد استحقاق رصيد بهذا الاسم مسبقًا
-
OVERAGE_LIMIT_EXCEEDED- المشغّل: ستتجاوز عملية استخدام أو خصم رصيد حد التجاوز المعيّن
- الرسالة: تم تجاوز حد التجاوز
المحفظة
-
INSUFFICIENT_WALLET_FUNDS- المشغّل: رصيد المحفظة أقل من مبلغ الخصم
- الرسالة: الأموال في المحفظة غير كافية
-
NEGATIVE_BALANCE_ADJUSTMENT- المشغّل: محاولة جعل رصيد المحفظة سالبًا
- الرسالة: لا يُسمح بجعل رصيد المحفظة سالبًا
العملة والضريبة والمنطقة
-
EXCHANGE_RATE_NOT_FOUND- المشغّل: لا يوجد سعر صرف لزوج العملات
- الرسالة: لم يتم العثور على سعر صرف للتحويل من
{currency}إلى{currency}
-
INVALID_TAX_ID- المشغّل: فشل التحقق من VAT أو GST أو TIN
- الرسالة: معرّف الضريبة غير صالح
-
REQUEST_AMOUNT_BELOW_MINIMUM- المشغّل: المبلغ أقل من الحد الأدنى المحدد للمنتج
- الرسالة: لا يمكن أن يقل المبلغ عن الحد الأدنى المحدد للمنتج
-
TOTAL_PAYMENT_AMOUNT_BELOW_MINIMUM_AMOUNT- المشغّل: إجمالي السلة المجمّع أقل من الحد الأدنى المطلوب لمعالجة دفعة
- الرسالة: يلزم حد أدنى قدره
{display_str}لمعالجة الدفعة
-
UNSUPPORTED_BILLING_CURRENCY- المشغّل: عملة الفوترة المطلوبة غير مدعومة لهذا الاشتراك
- الرسالة: عملة فوترة غير USD غير مدعومة للاشتراكات
-
UNSUPPORTED_COUNTRY- المشغّل: البلد غير مدعوم
- الرسالة: البلد
{country_name}غير مدعوم حاليًا
-
UNSUPPORTED_CURRENCY- المشغّل: عملة المنتج أو الإضافة ليست من العملات التي تستطيع Dodo Payments تحصيل الرسوم بها. يمكن تعيين الأسعار الأساسية بأي عملة قابلة للتحصيل، لذا يعني هذا الخطأ عادةً أن رمز العملة غير صالح أو غير مدعوم.
- الرسالة: العملة غير مدعومة حاليًا (أو) المنتجات المدعومة حاليًا هي USD وINR فقط (أو) الإضافات المدعومة حاليًا هي USD وINR فقط (أو) يمكن طلب USD أو INR فقط لـ billing_currency (أو) العملة غير مدعومة (أو) عملة غير متوقعة لاشتراكات البطاقات الهندية
-
UNSUPPORTED_TAX_CATEGORY- المشغّل: فئة الضريبة ليست ضمن القيم المدعومة
- الرسالة: الفئة
{category}غير مدعومة حاليًا
التحقق والطلبات
-
DUPLICATE_LINE_ITEMS_IN_REQUEST- المشغّل: ظهور
item_idنفسه أكثر من مرة فيitems[] - الرسالة: تم تحديد item_ids مكررة في مصفوفة items
- المشغّل: ظهور
-
INVALID_QUERY_PARAMS- المشغّل: معاملات استعلام متعارضة أو مشوهة
- الرسالة: يجب أن تتضمن معاملات الاستعلام إما time_frame أو (start, end) فقط (أو) يجب ألا تكون بداية النطاق بعد نهايته
-
INVALID_REQUEST_BODY- المشغّل: JSON مشوه أو مخالفة للمخطط
- الرسالة: نص طلبك غير صالح. يُرجى التحقق من ترويسات الطلب والكائن.
-
INVALID_REQUEST_PARAMETERS- المشغّل: قيم معاملات صحيحة من حيث التنسيق لكنها غير صحيحة من حيث المعنى، مثل تاريخ في الماضي
- الرسالة: لا يمكن تغيير next_billing_date إلى وقت في الماضي
-
MAXIMUM_KEYS_REACHED- المشغّل: تتجاوز البيانات الوصفية أو الحقول المخصصة 50 زوجًا من المفتاح والقيمة
- الرسالة: تم تجاوز 50 زوجًا من المفتاح والقيمة
عام والنظام
-
INTEGER_CONVERSION_FAILURE- المشغّل: فشل تحويل من جانب الخادم بين عدد صحيح وسلسلة أو عدد عشري، مثلًا عندما يكون إجمالي السلة كبيرًا جدًا للمعالجة
- الرسالة: فشل تحويل العدد الصحيح (أو) إجمالي السلة كبير جدًا للمعالجة. قلّل الكمية أو اختر عملة فوترة مختلفة.
-
INTERNAL_SERVER_ERROR- المشغّل: خطأ غير متوقع في الخادم. سجّل تفاصيل الطلب من جانبك.
- الرسالة: لا توجد رسالة عامة (500 عام، ويكون
messageعادةًnull)
-
NOT_FOUND- المشغّل: 404 عام لأي مورد مفقود
- الرسالة: لم يتم العثور على العنصر (أو رسالة أكثر تحديدًا تذكر العنصر المفقود)
-
TOO_MANY_REQUESTS- المشغّل: تم تجاوز حد المعدل (HTTP 429)
- الرسالة: لا توجد رسالة
-
UNSUPPORTED_ACTION- المشغّل: إجراء لا يدعمه نوع المورد
- الرسالة: لا يُدعم تغيير الخطط للاشتراكات القائمة على الاستخدام
أفضل الممارسات
اتبع هذه الممارسات عند معالجة أخطاء API:- عالج كل رد خطأ في تطبيقك، وأنشئ الفروع بالاعتماد على
codeبدلًا منmessage. - سجّل حالة HTTP و
codeوmessageلكل طلب فاشل. - اعرض للمستخدمين النهائيين رسالة مكتوبة لهم بدلًا من
messageالخام من API. - أعد محاولة الأخطاء المؤقتة فقط، مثل ردود
429و5xxأوDISCOUNT_CONCURRENT_REDEMPTION، بعد فترة انتظار. - تواصل مع الدعم بشأن الأخطاء التي لا يمكنك حلها.