Watsy
توثيق الـ APIالأخطاء

توثيق الـ API

الأخطاء

شكل الخطأ الموحّد، ورموز الأخطاء الثابتة، ومتى تعيد المحاولة.

كل خطأ يرجع بحالة HTTP مناسبة وبنفس الشكل. اعتمد في برمجتك على code فقط: الرسائل قد تتغير صياغتها.

شكل الخطأ
{
  "error": {
    "code": "validation_failed",
    "message": "The request is invalid. Check the parameters and try again.",
    "message_ar": "الطلب غير صالح. تحقق من المعطيات وأعد المحاولة.",
    "detail": "invalid phone number"
  }
}

حقول الخطأ

  • error.codestringپێویستە

    رمز ثابت من الجدول أدناه.

  • error.messagestringپێویستە

    وصف بالإنگليزية يمكن عرضه للمستخدم.

  • error.message_arstringپێویستە

    نفس الوصف بالعربية.

  • error.detailstring

    اختياري: تلميح تقني بالإنگليزية، مثل اسم الحقل الخاطئ. للتشخيص فقط.

رموز الأخطاء

HTTPcodeالمعنى
400validation_failedمعطيات غير صالحة: رقم، JSON، حقل غير معروف، أو Idempotency-Key غير صالح
401unauthenticatedمفتاح API مفقود أو غير صالح أو ملغى
402insufficient_balanceالرصيد لا يكفي لأول قناة. لم يُرسل شيء
402spend_cap_reachedتم بلوغ حد الصرف الشهري للمشروع
403forbiddenعنوان IP الخادم خارج القائمة المسموحة
403test_number_requiredمفتاح الاختبار يرسل لأرقام الاختبار المسجلة فقط
404not_foundغير موجود، أو يعود لمشروع آخر أو لوضع آخر (test/live)
409idempotency_conflictالمفتاح استُخدم مع طلب مختلف، أو الطلب الأول ما زال قيد التنفيذ
429rate_limitedتجاوز حد الطلبات لنفس الرقم أو الـ IP. يأتي مع Retry-After: 60
500internal_errorخطأ من جهتنا
502delivery_failedفشلت كل القنوات وأُعيد كامل المبلغ
503no_channel_availableلا قناة مفعّلة ومسعّرة لهذا الرقم

متى تعيد المحاولة

  • 429: انتظر المدة في Retry-After (بالثواني) ثم أعد.
  • 500 أو انقطاع الشبكة: أعد بنفس Idempotency-Key، فلن يُرسل الرمز مرتين. انظر Idempotency.
  • 502 delivery_failed و503: لا فائدة من الإعادة الفورية. اعرض للمستخدم خياراً آخر أو أعد لاحقاً.
  • 400 و401 و402 و403 و404: أصلح الطلب أو الإعدادات أولاً.