Skip to main content
تتيح لك نقطة نهاية تحديث الطلب تعديل طلب (مشروع) موجود في AgencyHandy — تغيير اسمه وحالته وميزانيته والجدول الزمني والمديرين المعيّنين والمزيد — كل ذلك من نظام خارجي أو سكريبت أتمتة. تدعم النقطة النهائية أيضًا مرفقات الملفات، التي تُضاف إلى مجلد النظام الخاص بالطلب.
قبل استخدام هذه النقطة النهائية، أكمل دليل البدء السريع للحصول على مفتاح API ومعرّف الشركة.
تستخدم هذه النقطة النهائية Authorization: Bearer <token> (رمز وصول عضو مسجّل) بدلًا من ترويسة x-api-key فحسب. تأكد من أن المُستدعي مُصادَق عليه كـ عضو معتمد في الشركة المستهدفة. يتلقى المُستدعيون غير المصرح لهم خطأ 403 PermissionError.

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

  • رمز Bearer صالح لعضو مساحة عمل معتمد
  • معرّف الشركة المسترد من GET {{URL}}/accounts/companies
  • معرّف الطلب (معرّف المشروع، pid) للطلب الذي تريد تحديثه

النقطة النهائية

Content-Type: multipart/form-data — استخدم هذا حتى عند عدم إرفاق ملفات لإرضاء محلل multipart الخاص بالخادم.

الترويسات

معاملات الاستعلام

string
مطلوب
معرّف الطلب / المشروع المراد تحديثه. مرر هذا كمعامل سلسلة استعلام.

حقول نص الطلب

string
يُحدِّث عنوان الطلب. الحد الأدنى حرفان.
string
الحالة الجديدة للطلب. يجب أن تكون إحدى: Pending، Ongoing، Review، Completed، Cancelled.الانتقالات المسموح بها:
  • Review لا يمكن أن يتبع إلا Ongoing أو Review أخرى. الانتقال من Pending مباشرةً إلى Review يُعيد 400 ValidationError.
  • الطلبات التي حالتها Completed أو Cancelled بالفعل لا يمكن تحديثها.
  • لا يمكن للعملاء إلغاء طلب تجاوز مرحلة Pending.
number
رقم الميزانية الإجمالية. يجب أن يكون ≥ 0. يستخدم العملة الحالية للطلب ما لم يتم توفير currency أيضًا.
string
رمز العملة للميزانية. أمثلة: USD، CAD، EUR.
number
عدد الوحدات المشتراة للحزمة. يجب أن يكون ≥ 1.
string
سلسلة تاريخ ISO 8601 لتاريخ استحقاق الطلب. مثال: "2025-12-31T00:00:00.000Z".
string
سلسلة تاريخ ISO 8601 لتاريخ بدء المشروع.
string
ملاحظات داخلية مرئية لفريقك.
string
موجز العميل أو ملخص المشروع.
array
القائمة الكاملة لمعرّفات أعضاء مديري المشاريع المراد تعيينهم لهذا الطلب. تُضاف المعرّفات الجديدة إلى الفريق؛ وتُحذف المعرّفات المُزالة. يجب أن ينتمي كل معرّف إلى عضو له دور projectManager داخل نفس الشركة.
boolean
مطلوب عندما تكون status هي Completed أو Cancelled. عند تعيينه على true، تُحدَّث حالة جميع المهام في الطلب إلى منجزة بعد تغيير الحالة. عند false، تبقى المهام في حالتها الحالية.
boolean
مسموح به فقط عندما تكون status هي Completed أو Cancelled. عند تعيينه على true، تُرفض جميع مهام العملاء المعلقة بعد تحديث الحالة.
number
مطلوب فقط لطلبات الاشتراك عند تغيير تكرار التكرار. اقرنه بـ repeatDuration.
string
مطلوب جنبًا إلى جنب مع repeatCount لطلبات الاشتراك. إحدى: day، week، month، year.
number
حد اختياري لدورات الفوترة المتكررة. الإعداد الافتراضي 0 (بلا حد).
string
كيفية التعامل مع كل دورة فوترة. إحدى: createOrderWithTask، noChange.
file
صفر أو أكثر من مرفقات الملفات. تُضاف الملفات إلى مجلد النظام الخاص بالطلب؛ ولا تُستبدل الملفات الموجودة أبدًا. استخدم ترميز multipart/form-data وأرفق كل ملف تحت حقل files.

مثال على الطلب

حمولة JSON المكافئة (حوّلها إلى إدخالات نموذج multipart عند إرسال الملفات):

الاستجابات

استجابة النجاح


قواعد العمل والتأثيرات الجانبية

  • انتقالات الحالة مقيّدة. Review لا يمكن أن يتبع إلا Ongoing أو Review أخرى. محاولة Pending → Review تُعيد 400 ValidationError.
  • نقل الحالة من Pending إلى Ongoing أو Review أو Completed يُفعِّل مجلد ملفات الطلب حتى تصبح الملفات المرفوعة متاحة لفريق المشروع.
  • تعيين status إلى Completed أو Cancelled يتطلب تعيين markTasksAsDone صراحةً إلى true أو false.
  • تغييرات الحالة إلى Review أو Completed أو Cancelled تُشغّل تلقائيًا إشعارات العميل:
    • Review — يُخطر العميل بأن المراجعة مطلوبة.
    • Completed — يرسل إشعار orderCompletion للعميل.
    • Cancelled — يرسل إشعار orderCancellation للعميل.
  • كل تحديث ناجح يُشغّل حدث webhook ORDER.UPDATED مع وثيقة الطلب المحدّثة وبيانات تعريف المرفق، إذا كان لديك webhook نشط مشترك في ذلك الحدث.