انتقل إلى المحتوى
أسئلة؟PaperOffice AI Phone Agent 24/7+49 69 3487102-0
نظرة عامة نظرة عامة أخبار أخبار
مشاركة

Webhooks والأحداث

أحداث في الوقت الفعلي. تم التسليم بتوقيع HMAC.

PaperOffice يستدعي نقطة النهاية الخاصة بكم فوراً عند حدوث أي تغيير في مستند، أو مهمة، أو Workspace، أو مهمة فرعية. لا حاجة للاستعلام الدوري.

22 نوعًا من الأحداث، توقيع HMAC-SHA256، ثلاث استراتيجيات إعادة محاولة وسجل تسليم لكل محاولة.

HMAC-SHA256 مع كل عملية تسليم حتى 10 تكرارات (الافتراضي 5) متطابق حسب معرّف الحدث
أحداث في الوقت الفعلي. تم التسليم بتوقيع HMAC.

الأحداث المتاحة

22 نوع من الأحداث، مجمعة حسب الكيان

اشتركوا في أحداث فردية أو استخدموا الرمز البرجي * لكل شيء.

المستندات

14
  • document.uploaded مستند جديد مُحمّل في Workspace
  • document.created مُعرّف بديل لحدث document.uploaded (توافق)
  • document.processed اكتمال بناءي لخط أنابيب OCR/AI-IDP
  • document.edited تم تعديل المستند: تم تحديث البيانات الوصفية أو الوسوم أو المحتوى
  • document.deleted تم حذف المستند؛ يعرض delete_mode trash (سلة المحذوفات في Business وCompliance) أو instant (نهائيًا في الإعدادات الافتراضية)
  • document.restored تم استعادة المستند من سلة المحذوفات (Business وCompliance)
  • document.moved نقل مستند بين Workspaces
  • document.version_created إصدار جديد لوثيقة قائمة
  • document.lifecycle_changed تم تغيير حالة الحفظ/الأرشفة
  • document.comment_added تم إنشاء تعليق على مستند
  • document.note_added تم إرفاق ملاحظة داخلية
  • document.tag_added تم تعيين علامة (Tag) لمستند
  • document.legal_hold_placed تم تفعيل الحجز القانوني (غير قابل للتغيير)
  • document.legal_hold_released تم إلغاء الحجز القانوني

المهام

3
  • job.completed اكتمل المهمة غير المتزامنة بنجاح
  • job.failed فشلت المهمة غير المتزامنة بشكل نهائي
  • job.progress تحديث التقدم في المهام الطويلة

Workspaces

2
  • workspace.shared Workspace مُشارك مع مستخدم أو فريق
  • workspace.unshared إلغاء صلاحية الوصول إلى Workspace

المهام

3
  • task.created تم إنشاء مهمة جديدة
  • task.completed تم تحديد المهمة كمكتملة
  • task.overdue تجاوزت المهلة الزمنية للمهمة

الحمولة والرأس

يتبع كل تسليم نفس المخطط

توقعي جسم JSON، رؤوس HTTP ثابتة، طابع زمني ISO-8601 UTC.

جسم الطلب

{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6c9f1d4e7b2a5c8f1",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": {
    "pofid": "doc_01HZY8K3M7P2Q9R5T1V6W4X2Y8",
    "workspace_id": 17,
    "filename": "invoice-2026-04-17.pdf",
    "mime_type": "application/pdf",
    "size_bytes": 284521,
    "processing_result": {
      "ocr_done": true,
      "classification": "invoice",
      "confidence": 0.98
    }
  }
}

رؤوس طلب HTTP

الرأس قيمة مثال المعنى
Content-Type application/json دائماً JSON، مشفر بـ UTF-8
User-Agent PaperOffice-Webhook/1.0 معرف ثابت لقوائم السماح بجدار الحماية
X-PaperOffice-Event document.processed نوع الحدث المُسلَّم
X-PaperOffice-Event-ID a3b7f9c1… معرف فريد بحجم 128 بت. استخدمه كمفتاح لتكرار الطلبات.
X-PaperOffice-Subscription-ID 42 معرف الاشتراك الذي يستقبل الحدث
X-PaperOffice-Signature sha256=… تجزئة HMAC-SHA256 للجسم الخام، مشفرة بنظام الست عشري
cURL
curl -X POST "https://api.paperoffice.ai/latest/webhooks/subscribe" \  -H "Authorization: Bearer po_ut_YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "name": "My Production Webhook",    "url": "https://yourdomain.com/webhooks/paperoffice",    "events": ["document.processed", "job.completed", "job.failed"],    "retry_policy": "exponential",    "max_retries": 5,    "timeout_ms": 10000  }'

التحقق من التوقيع

قم بالتحقق من كل تسليم باستخدام HMAC-SHA256

احسبوا HMAC-SHA256 على جسم الطلب الخام باستخدام سر المشترك الخاص بكم وقارنوا النتيجة مع X-PaperOffice-Signature — دائماً بمقارنة ذات وقت ثابت.

  • مقارنة ذات زمن تشغيل ثابت

    hash_equals، hmac.compare_digest أو crypto.timingSafeEqual: لا ينبغي أن تكشف المقارنة عن أي فروق في زمن التشغيل.

  • توقيع جسم الطلب الخام

    تنطبق التوقيع على جسم الطلب دون تغيير. قم بتحليل بيانات JSON بعد التحقق فقط، وإلا سيختلف التجزئة.

  • الاشتراك عبر API

    POST /latest/webhooks/subscribe مع name, url و events. إذا تركت secret فارغًا، سيقوم PaperOffice بإنشائه وإرجاعه مرة واحدة فقط.

إعادة المحاولة والتوصيل

ثلاث استراتيجيات إعادة محاولة، حتى 10 تكرارات

اختر السياسة لكل اشتراك. يتم تسجيل كل محاولة مع رمز الحالة، جسم الاستجابة وقياس الوقت.

  • الافتراضي exponential

    أسي (افتراضي)

    يتضاعف الفاصل الزمني بين المحاولات بعد كل محاولة فاشلة.

  • linear

    خطي

    يزيد الفاصل الزمني بين المحاولات بخطوة ثابتة.

  • none

    بدون

    لا إعادة محاولة، حتى في حالة أخطاء 5xx (إرسال ونسيان). مفيد لخطافات الاختبار.

  • نجاح HTTP 2xx ضمن نافذة المهلة الزمنية
  • الحد الأقصى لإعادة المحاولات حتى 10 إعادة محاولة (الافتراضي 5)
  • مهلة زمنية 1,000–30,000 مللي ثانية لكل محاولة (الافتراضي 10,000). يتم تقييد أول محاولة توصيل بـ 2 أو 5 ثوانٍ حسب الحدث، بينما تستخدم المحاولات اللاحقة القيمة الكاملة.
  • سجل التسليم يتم تسجيل كل محاولة؛ ويبقى السجل محفوظًا حتى بعد حذف الاشتراك.

إدارة-API

خمسة نقاط نهاية تحت /latest/webhooks/

إنشاء الاشتراكات وعرضها وتحديثها وحذفها — بالإضافة إلى نقطة نهاية للاختبار. كل استدعاء يحمل رمز حامل (Bearer Token).

  • POST /webhooks/subscribe إنشاء اشتراك؛ يتم توقيع حمولات البيانات باستخدام HMAC-SHA256 أداة MCPpo-webhooks-subscribe
  • GET /webhooks/list عرض جميع اشتراكات الويب هوك الخاصة بالحساب أداة MCPpo-webhooks-list
  • POST /webhooks/update تحديث عنوان URL، الأحداث، الرؤوس، سياسة إعادة المحاولة أو الحالة النشطة أداة MCPpo-webhooks-update
  • POST /webhooks/delete حذف الاشتراك؛ ويبقى سجل التسليم محفوظاً أداة MCPpo-webhooks-delete
  • POST /webhooks/test إرسال حدث اختبار إلى اشتراك والتحقق من التسليم أداة MCPpo-webhooks-test

الأمان

مصمم من الأساس ليكون آمنًا

ستة آليات تدخل حيز التنفيذ مع كل تسليم — عند جانب PaperOffice وعند جانبكم.

  • HMAC-SHA256

    يتم توقيع كل تسليم بسركم. يجب أن تعمل المقارنة في وقت ثابت.

  • حماية SSRF

    يتم حظر عناوين IP الخاصة والداخلية، والخوادم المحلية، ونقاط نهاية بيانات السحابة عند الاشتراك وعند الإرسال.

  • آمن ضد إعادة ربط DNS

    يتم التحقق من عنوان الوجهة مرة أخرى عند وقت التسليم.

  • يوصى بـ HTTPS

    يتم قبول http و https. نوصي بـ HTTPS للعمليات الإنتاجية.

  • التكرار عبر معرف الحدث

    يحمل كل تسليم معرف حدث فريد X-PaperOffice-Event-ID. تجنبوا التكرار من جانبكم.

  • سجل تسليم كامل

    يتم تسجيل جميع المحاولات: رمز الحالة، جسم الاستجابة، قياس الوقت، رسالة الخطأ.

الحدود

يمكن تكوين سلوك التسليم لكل اشتراك

تعيين جميع القيم عند الإنشاء أو لاحقًا عبر /webhooks/update — لكل اشتراك، وليس لكل حساب.

  • 0–10 إعادة المحاولة لكل تسليم (الافتراضي 5)
  • 1,000–30,000 مللي ثانية مهلة زمنية لكل محاولة (الافتراضي 10,000، المحاولة الأولى 2-5 ثوانٍ)
  • 3 سياسات إعادة المحاولة: none، linear، exponential
  • HMAC-SHA256 توقيع مع كل تسليم

واجهات الويب التمهيدية متاحة من خطة Professional فصاعداً. يعرض ملخص التسعير الخطة المناسبة لإعدادكم.

أسئلة

الأسئلة الشائعة حول Webhooks

كيف أتحقق من التسليم؟

يجب حساب HMAC-SHA256 على نص الطلب الخام باستخدام سر اشتراككم، ومقارنة الناتج برأس X-PaperOffice-Signature بزمن ثابت (الصيغة sha256=<hex>). إذا لم يتطابق التوقيع، فيُرد برمز HTTP 401 دون معالجة النص.

من أين يأتي السر؟

عند إنشاء الاشتراك عبر POST /latest/webhooks/subscribe. اترك حقل السر فارغًا، وسيقوم PaperOffice بتوليد سر وإرجاعه مرة واحدة في الاستجابة. يمكنك استبداله في أي وقت عبر POST /latest/webhooks/update.

ماذا يحدث إذا لم يستجيب نقطة النهاية الخاصة بي؟

تُعتبر أي استجابة خارج نطاق HTTP 2xx أو انتهاء المهلة (Timeout) محاولة فاشلة. تقوم PaperOffice بإعادة المحاولة وفقاً لسياسة إعادة المحاولة (أسي، خطي، لا شيء) حتى يصل عدد المحاولات إلى العدد المحدد (0-10، والافتراضي هو 5). يتم تسجيل كل محاولة مع رمز الحالة والاستجابة وقياس الوقت في سجل التسليم.

هل يمكن أن تصل نفس التسليم مرتين؟

نعم، هذا ممكن عند إعادة محاولة التسليم بعد انتهاء المهلة الزمنية. تجنب التكرار عبر X-PaperOffice-Event-ID: المعرف فريد لكل حدث ويعمل كمفتاح لتطابق العمليات في قاعدة بياناتكم.

ما هي الأحداث التي يمكنني الاشتراك فيها؟

22 نوعاً من الأحداث في أربع مجموعات: المستندات، والوظائف، ومساحات العمل، والمهام. يمكنكم الاشتراك في أحداث فردية، أو في جميعها باستخدام الرمز البديل *. وباستخدام عوامل التصفية (مثل workspace_id أو pofid) يمكنكم تضييق نطاق الاشتراك أكثر.

في أي خطة تتضمن Webhooks؟

تتوفر Webhooks بدءاً من خطة Professional فما فوق. يعرض جدول التسعير الخطة المناسبة لإعدادكم.

كيف تصل الجداول إلى الويب هوك؟

بالنسبة لحقول الجداول (مثل قيم الفحص أو البنود)، يحمل document.processed أيضًا data.extracted_tables. تحتوي القائمة tables على إدخال واحد لكل حقل جدول مع key، وlabel، وcolumns، وrows؛ وتحتوي كل خلية على value (رقم فقط إذا قرأ PaperOffice قيمة رقمية، وإلا فإن النص كما هو مطبوع) وvalue_raw (النص كما هو مطبوع، أو null إذا لم يكن معروفًا). يبقى extracted_fields دون تغيير. تحمل كل عملية تسليم ما لا يزيد عن 50 جدولًا، بحد أقصى 1,000 صف و40 عمودًا لكل جدول، و2,000 حرف لكل خلية، و512 كيلوبايت لجميع الجداول معًا؛ وإذا تم اقتطاع أي جزء، يكون truncated هو true ويوضح row_count العدد الكامل للصفوف. يغطي التوقيع جسم الطلب بأكمله، بما في ذلك extracted_tables.

ما الجديد في حدث document.processed؟

جديد: يحمل key_fields الآن أيضًا document_number (مثل رقم الفاتورة) وpublisher (صادر الوثيقة)، إذا كانت PaperOffice قد قرأتها. تصل البنود التفصيلية كجدول في data.extracted_tables: يحتوي الجدول على key __document__content__extraction__line_items (لمجالات الوكيل: _line_items)، حيث يمثل كل صف بندًا تفصيليًا واحدًا.

PaperOffice AI · Problem Solver

أخبرنا, ما الذي يستهلك وقتك يومياً.

صفوه فقط. لا حاجة لمصطلحات تقنية.

أو ابدأ بمثال

كيف ترغبون في استخدام PaperOffice؟

تم ربط الكمبيوتر والهاتف الذكي: مساحة العمل على جهاز الحاسوب، والالتقاط عبر الهاتف.

من أين ترغبون في البدء؟

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

التسجيل مجاناً app.paperoffice.ai

البدء على الكمبيوتر

سنرسل رابط الدخول الشخصي الخاص بك إلى بريدك الإلكتروني.

يعمل في Claude · تم التحقق منه بواسطة Anthropic Claude ومساعدو الذكاء الاصطناعي ابحثوا في المستندات وحلّلوها في Claude — جرّبوا دون حساب. متاح أيضًا في ChatGPT أو Grok. استخدمه في Claude
فتح الأدوات أدوات مجانية تحرير ملفات PDF، والتحقق من الفواتير الإلكترونية وإنشاؤها، واستخراج النصوص من الصور، وحساب المواعيد النهائية – فورًا ودون تسجيل. لا حاجة لحساب، مباشرة في المتصفح

غير متأكدون بعد؟ وصفا مشكلتكم وسيعرض لكم Problem Solver المكان المناسب للبدء.