Inspector Toolbelt Help Center
المراجع

أحداث الويب هوك

كل حدث ويب هوك، وموعد إطلاقه، والحمولة الدقيقة التي يرسلها.

للمستخدمين المتقدمين

هذه الصفحة مرجع تقني للمطورين الذين يبنون تكاملات مع ويب هوكس ITB. إذا كنت تريد فقط إعداد نقطة نهاية ويب هوك، ابدأ من دليل الويب هوكس.

غلاف الحدث

كل تسليم ويب هوك هو طلب HTTP بنوع POST وجسم JSON. تشترك جميع الأحداث في نفس الغلاف العلوي:

الحقلالنوعالوصف
idنصمعرّف فريد للحدث، يبدأ بـevt_ (32 حرفًا سداسيًا عشريًا). استخدمه كمفتاح عدم تكرار — قد يُسلَّم الحدث نفسه أكثر من مرة
typeنصاسم الحدث، مثل order.approved
apiVersionنصإصدار الحمولة المؤرَّخ. حاليًا 2026-07-01
createdAtنصوقت حدوث الحدث (بصيغة ISO 8601)
account.uidنصمعرّف الحساب (المالك) الذي ينتمي إليه الحدث
account.companyNameنصاسم شركتك، إن وُجد
dataكائنلقطة للمورد الذي يتعلق به الحدث (راجع أقسام كل حدث أدناه)
changesكائنفقط في بعض الأحداث — لقطتا previous وcurrent للحقول التي تغيّرت
{
  "id": "evt_9f2c4b7a1d3e5f60718293a4b5c6d7e8",   // مفتاح عدم التكرار
  "type": "order.approved",                        // اسم الحدث
  "apiVersion": "2026-07-01",
  "createdAt": "2026-07-28T14:30:00.000Z",
  "account": {
    "uid": "abc123",
    "companyName": "Acme Home Services"
  },
  "data": { /* لقطة المورد — راجع أدناه */ },
  "changes": {                                     // فقط في *.approved، و*.completed،
    "previous": { "status": "new" },               // *.status_changed، و*.rescheduled
    "current": { "status": "approved" }
  }
}

يحمل كل تسليم أيضًا اسم الحدث في ترويسة الطلب webhook-event، إلى جانب ترويسات التوقيع (webhook-id، وwebhook-timestamp، وwebhook-signature) الموصوفة في دليل الويب هوكس.

فهرس الأحداث

الحدثيُطلَق عندماحقل changes
order.createdيُنشأ Order جديد — من لوحة التحكم، أو تطبيق الموبايل، أو صفحة الجدولة عبر الإنترنت
order.approvedتصبح حالة Order معتمد (بما في ذلك ما يُنشأ معتمدًا)status
order.completedتصبح حالة Order مكتملstatus
order.rescheduledيتغيّر تاريخ/وقت الموعد على Order معتمدappointmentDateTime
order.status_changedيُطلَق مع order.approved وorder.completed، وأيضًا عندما ينتقل Order معتمد إلى حالة سابقةstatus
invoice.paidيُعلَّم Order كمدفوع (تصبح علامة paid فيه true لأول مرة)
report.publishedيصبح Order لأول مرة مدفوعًا وموقَّع الاتفاقية معًا — اللحظة التي يُطلَق فيها Report الخاص به

قيم الحالة في الحمولات هي القيم المخزَّنة الخام (draft، new، read، approved، complete، archived) — راجع حالات الطلبات.

أسماء الحقول لا تتغير حسب المجال

أسماء حقول الحمولة متطابقة عبر جميع المجالات. مثلًا، تُرسل Inspection Type دائمًا في حقل باسم inspectionType، بغض النظر عن الاسم الذي يستخدمه مجالك على الشاشة.

أحداث الطلبات — حمولة data

order.created، وorder.approved، وorder.completed، وorder.rescheduled، وorder.status_changed ترسل جميعها نفس لقطة Order في data:

{
  "id": "req_abc123",                              // معرّف الطلب
  "status": "approved",                            // راجع مرجع حالات الطلبات
  "appointmentDateTime": "2026-08-01T13:00:00.000Z",
  "inspectionType": "Buyer Inspection",            // اسم فئة الخدمة عندك
  "streetAddress": "123 Main St",
  "city": "Springfield",
  "region": "IL",
  "postalCode": "62701",
  "country": "US",
  "timezone": "America/Chicago",
  "contactName": "Jane Buyer",
  "contactEmail": "jane@example.com",
  "contactPhone": "(555) 123-4567",
  "contactType": "client",
  "totalPrice": 450,
  "totalTime": 120,                                // المدة بالدقائق
  "paid": false,
  "agreementSigned": true,
  "assignedInspectors": ["uid1", "uid2"],          // معرّفات أعضاء الفريق المعيَّنين
  "requestDateTime": "2026-07-20T09:15:00.000Z",   // وقت إنشاء الطلب
  "approvedDateTime": "2026-07-21T10:00:00.000Z",
  "completedDateTime": "2026-08-01T16:30:00.000Z"
}

حقول التاريخ هي نصوص بصيغة ISO 8601. أي حقل بلا قيمة يُحذف من الحمولة بدلًا من إرساله كـnull.

changes لكل حدث طلب

  • order.approvedchanges.previous.status / changes.current.status (القيمة الحالية دائمًا "approved")
  • order.completedchanges.previous.status / changes.current.status (القيمة الحالية دائمًا "complete")
  • order.status_changedchanges.previous.status / changes.current.status
  • order.rescheduledchanges.previous.appointmentDateTime / changes.current.appointmentDateTime (نصوص ISO 8601)
  • order.created — لا يوجد حقل changes

الاعتماد يُطلق حدثين

اعتماد Order يُرسل كلًا من order.approved وorder.status_changed؛ وإكماله يُرسل كلًا من order.completed وorder.status_changed. اشترك في أحدهما فقط إلا إذا كنت تريد كلا التسليمين.

invoice.paid — حمولة data

يُطلَق أول مرة تصبح فيها علامة paid لـOrder هي true. حمولة data هي نفس لقطة Order المعروضة أعلاه — ليست كائن فاتورة. لا توجد حقول خاصة بالفاتورة (لا رقم فاتورة، ولا مبلغ مدفوع، ولا طريقة دفع)؛ استخدم totalPrice وعلامة paid: true، أو استرجع تفاصيل الفاتورة من الـ API. لا يُرسل حقل changes.

report.published — حمولة data

يُطلَق عندما يصبح Order لأول مرة مدفوعًا وموقَّع الاتفاقية معًا — اللحظة التي يُطلَق فيها Report المنشور للعميل. حمولة data هي لقطة Order المعروضة أعلاه، بالإضافة إلى حقل واحد إضافي:

{
  "orderId": "req_abc123",   // نفس data.id — الطلب الذي ينتمي إليه هذا التقرير
  "id": "req_abc123",
  "status": "complete"
  // …بقية حقول لقطة الطلب
}

لا يُرسل حقل changes. لا تتضمن الحمولة روابط التقرير.

أحداث يمكنك الاشتراك فيها لكنها لا تُرسل بعد

يسرد محرر نقطة النهاية أيضًا order.updated، وinvoice.created، وcontact.created، وcontact.updated. أسماء هذه الأحداث محجوزة ويمكن اختيارها، لكن لا يوجد نشاط حالي في الحساب يولّدها — نقاط النهاية المشتركة فقط في هذه الأحداث لن تستقبل أي تسليمات. إذا أُطلقت في المستقبل، ستستخدم الغلاف القياسي؛ حقول data الخاصة بها غير محدَّدة بعد.

أحداث الاختبار — webhook.test

النقر على اختبار على نقطة نهاية يرسل حدث webhook.test:

{
  "id": "evt_test_5f0e…",        // يبدأ بـevt_test_
  "type": "webhook.test",
  "apiVersion": "2026-07-01",
  "createdAt": "2026-07-28T14:30:00.000Z",
  "account": { "uid": "abc123" },
  "data": {
    "message": "This is a test webhook event.",
    "timestamp": "2026-07-28T14:30:00.000Z"
  }
}

أحداث الاختبار غير موقَّعة — تحمل ترويسة X-Webhook-Test: true بدلًا من ترويسات التوقيع. يجب أن يقبلها المستقبِل دون التحقق من التوقيع (أو أن يتعرّف على الترويسة ويتجاوز التحقق للاختبارات فقط).

الاستجابة للتسليمات

  • استجب بأي حالة 2xx خلال 10 ثوانٍ لتأكيد استلام التسليم.
  • استجابات 5xx وانتهاء المهلة تُعامَل كمؤقتة — تُعاد محاولة التسليم.
  • استجابات 4xx الأخرى تُعامَل كنهائية — لا تُعاد محاولة ذلك التسليم.
  • الاستجابة بـ410 Gone تُخبر ITB بالتوقف عن الإرسال: تُعطَّل نقطة النهاية فورًا.

حدود نقاط النهاية، والتعطيل التلقائي بعد فشل متكرر، وسجل التسليم، والتحقق من التوقيع، كل ذلك موضّح في دليل الويب هوكس.

ذات صلة

On this page