توقيع عقود الموارد البشرية داخل برنامج الموارد البشرية

عروض العمل وعقود التوظيف والملاحق: كيف تدمج توقيع PDF في برنامج الموارد البشرية مع ترتيب الموقّعين وwebhooks وحماية بيانات الموظفين في كل مرحلة.

نُشر في 3 أكتوبر 2026 · 7 دقيقة قراءة

لتوقيع عقود الموارد البشرية داخل برنامجك، أطلِق طلب توقيع انطلاقاً من حدث في البرنامج (اختيار مرشّح، اعتماد ملحق عقد، نشر سياسة جديدة)، وأرسل ملف PDF مع الموقّعين بالترتيب المطلوب، ثم احفظ النسخة الموقّعة في ملف الموظف عند وصول الـ webhook. يوقّع الموظف دون مغادرة منتجك أو إنشاء حساب في مكان آخر، ويتابع فريق الموارد البشرية كل شيء من الشاشات التي يعرفها.

هذا الدليل موجّه إلى ناشري برامج الموارد البشرية والرواتب وإدارة الموظفين وفرق المنتج لديهم. يشرح دورة حياة وثائق الموارد البشرية، وكيف تتحول إلى استدعاءات لواجهة البرمجة، وكيف تُعامَل البيانات الشخصية، وما النقاط القانونية التي يجب مراجعتها مع عملائك.

وثائق الموارد البشرية التي تحتاج إلى توقيع

ينتج برنامج الموارد البشرية وثائق في كل مرحلة من مسار الموظف، ولا تحتاج كلها إلى المسار نفسه. عرض العمل يُوقَّع بسرعة، وعقد العمل يُشرك عدة أشخاص، أما الإقرار بالاطلاع على سياسة داخلية فقد يُرسَل إلى مئات الموظفين في وقت واحد.

الوثيقةالتوقيتالموقّعون المعتادون
عرض العملنهاية التوظيفالمرشّح، ثم مسؤول الموارد البشرية
عقد العملقبل مباشرة العملالموظف، المدير المباشر، مدير الموارد البشرية
ملحق العقد (الراتب، المنصب، ساعات العمل)تغيّر في الوضع الوظيفيالموظف، ثم مدير الموارد البشرية
اتفاقية عدم الإفصاحالالتحاق أو الوصول إلى مشروعالموظف، وأحياناً المستشار القانوني
إقرار بالاطلاع على سياسةميثاق أو لائحة داخلية جديدةالموظف وحده

ابدأ بالوثيقتين أو الثلاث الأكثر تأثيراً في عمل عملائك اليومي. في معظم برامج الموارد البشرية تكون هذه العقود والملاحق، لأن العقد المعلّق يؤخر مباشرة العمل أو صرف الراتب.

من يوقّع وبأي ترتيب

في واجهة البرمجة، لكل موقّع مرجع ثابت `reference` (مثل employee وmanager وhr_director) وقيمة `order`. يتلقى الموقّع صاحب الترتيب 1 الوثيقة أولاً، ثم صاحب الترتيب 2، وهكذا. يقبل الطلب الواحد حتى 10 موقّعين و100 حقل، وهذا يكفي لمسارات الموارد البشرية المعتادة.

  1. يوقّع الموظف أو المرشّح أولاً، فيؤكد الشروط التي تخصه.
  2. يعتمد المدير المباشر بعده، إذا كان عميلك يشترط ذلك لهذا النوع من الوثائق.
  3. يوقّع مدير الموارد البشرية أو الممثل القانوني أخيراً باسم صاحب العمل.

تفضّل بعض الشركات الترتيب المعاكس، حيث يوقّع صاحب العمل أولاً. اجعل الترتيب قابلاً للضبط حسب نوع الوثيقة في منتجك بدل تثبيته في الكود. وعند الرفض، يتيح لك الحدث `signature_request.declined` إعادة الملف إلى المرحلة السابقة.

القوالب واكتشاف الحقول

غالباً ما تتبع عقود العميل الواحد تخطيطاً واحداً. جهّز قالباً مرة واحدة في منصة Khatm، مع الأدوار ومواضع الحقول، ثم أعد استخدامه بتمرير `template_id` عند إنشاء الطلب. يعرض `GET /v1/templates` القوالب المتاحة، ويجب أن تطابق مراجع الموقّعين أدوار القالب.

أما الوثائق التي يتغير تخطيطها، كملحق يصوغه محامٍ، فأنشئ الطلب دون حقول، ثم استدعِ `POST /signature-requests/{id}/detect-fields`، واطلب من مستخدم الموارد البشرية مراجعة الاقتراحات، ثم أكّدها عبر `PUT /signature-requests/{id}/fields`. الاكتشاف يقترح المواضع، وواجهتك هي التي تحصل على الموافقة عليها.

ربط أحداث برنامج الموارد البشرية بواجهة البرمجة

أبسط تكامل ينطلق من الأحداث التي يعرفها برنامجك أصلاً. كل حدث يقابله استدعاء أو استدعاءان.

الحدث في برنامج الموارد البشريةاستدعاء Khatmالنتيجة
اختيار مرشّح وإنشاء العرضPOST /v1/signature-requests ثم POST …/activateيتلقى المرشّح رابط التوقيع
اعتماد العقد من الموارد البشريةPOST /v1/signature-requests مع template_id ثم …/activateمسار الموظف ثم المدير ثم مدير الموارد البشرية
طلب تذكير من موظف الموارد البشريةPOST …/remindersرابط جديد للموقّع المنتظر
سحب العرض أو استبدال العقدPOST …/cancelإبطال الروابط غير الموقّعة
فتح ملف الموظفGET /v1/signature-requests/{id}الحالة الحالية لكل موقّع
وصول webhook signature_request.completedGET …/artifacts/{type}حفظ PDF الموقّع والأدلة في الملف

كوّن `client_reference` من معرّفاتك الخاصة، مثل رقم الموظف ونوع الوثيقة وإصدارها. إنشاء الطلب idempotent على هذه القيمة: إذا أعيد تشغيل مهمة أو نقر المستخدم مرتين، لا يُنشأ طلب مكرر.

curl -sS https://<khatm-host>/v1/signature-requests \
  -H "Authorization: Bearer $KHATM_API_KEY" \
  -F "document=@contrat-cdi-0042.pdf;type=application/pdf" \
  -F 'request={
    "client_reference": "hris-contract-emp-0042-v1",
    "template_id": "<template-id>",
    "signers": [
      {"reference": "employee", "name": "Salma B.", "email": "salma@example.com", "order": 1},
      {"reference": "manager", "name": "Karim A.", "email": "karim@example.com", "order": 2},
      {"reference": "hr_director", "name": "Nadia R.", "email": "nadia@example.com", "order": 3}
    ],
    "callback_url": "https://hris.example.com/webhooks/khatm"
  }'

إنشاء طلب توقيع لعقد عمل بثلاثة موقّعين بالترتيب (sandbox)

تحديث ملف الموظف

عندما يوقّع آخر موقّع، يرسل Khatm الحدث `signature_request.completed` إلى `callback_url`. الـ webhook موقّع بـ HMAC-SHA256 باستخدام سرّك `whsec_…` (الترويسة `webhook-signature`)، ويحمل `client_reference`، فتجد الموظف المعني دون جدول ربط إضافي.

{
  "id": "evt_…",
  "type": "signature_request.completed",
  "data": {
    "signature_request_id": "<request-id>",
    "client_reference": "hris-contract-emp-0042-v1",
    "status": "completed"
  },
  "created_at": "2026-10-03T09:12:00Z"
}

الحقول المفيدة في حدث اكتمال التوقيع (صيغة مبسطة)

  • تحقّق من توقيع الـ webhook على المحتوى الخام وتجاهل الأحداث التي عالجتها سابقاً.
  • نزّل ملف PDF الموقّع وتقرير الأدلة بصيغة PDF والأدلة بصيغة JSON، واحفظها في ملف الموظف.
  • غيّر حالة العقد إلى «موقّع» وافتح الخطوات التالية، مثل إنشاء الحساب وإعداد الراتب.
  • عالج أيضاً `signature_request.declined` و`signature_request.cancelled` حتى لا يبقى أي ملف في حالة غامضة.

حماية بيانات الموارد البشرية

يتضمن عقد العمل الراتب والعنوان وأحياناً رقم الهوية. أرسل إلى Khatm ما يحتاجه التوقيع فقط: ملف PDF واسم كل موقّع وبريده الإلكتروني. أما بقية ملف الموظف فتبقى في برنامجك.

  • ملفات PDF مشفّرة أثناء التخزين (AES-GCM)، وكل وثيقة مرتبطة ببصمة SHA-256.
  • لا تتضمن أدلة JSON عنوان IP ولا بيانات user-agent.
  • في sandbox وفي العرض التجريبي يُحذف المحتوى بعد 10 أيام من رفع ملف PDF، حتى الطلبات غير المكتملة، فاسترجع الملفات الموقّعة قبل ذلك.
  • في الإنتاج تُحدَّد مدة الاحتفاظ مع عميلك، ويبقى برنامجك هو مرجع حفظ ملف الموظف.
  • قيّد الوصول إلى الوثائق الموقّعة وفق أدوار برنامجك: لا يحتاج المدير دائماً إلى رؤية عقود فريقه كلها.

العربية والفرنسية والإنجليزية

في المغرب ودول الخليج، توظّف الشركة الواحدة غالباً أشخاصاً يقرؤون العربية أو الفرنسية أو الإنجليزية. مسار التوقيع في Khatm متاح أصلاً باللغات الثلاث، مع واجهة من اليمين إلى اليسار بالعربية. ويبقى العقد نفسه ملف PDF الذي ينتجه عميلك؛ فإن كان ثنائي اللغة، شمل التوقيع الوثيقة كاملة.

احفظ اللغة المفضلة لكل موظف في ملفه واستخدمها في رسائلك وإشعاراتك، ليبقى المسار كله متسقاً.

نقاط قانونية يجب التحقق منها في كل بلد

  • هل يقبل القانون المحلي الشكل الإلكتروني لهذا النوع من العقود، أم يشترط نسخة ورقية أصلية أو تأشيرة إدارية أو تسجيلاً؟
  • هل تتبع عقود الموظفين الأجانب مساراً خاصاً، كالتأشيرة أو التسجيل لدى جهة حكومية؟
  • ما مستوى التحقق من هوية الموقّع المطلوب، وأي شهادة تُستخدم في الإنتاج؟
  • ما مدة الاحتفاظ المطبّقة على العقد وأدلته؟

في المغرب كما في السعودية والإمارات وقطر وعُمان، قد تختلف الإجابات من وثيقة إلى أخرى. Khatm ليس مزوّد خدمات ثقة مؤهلاً ولا يُصدر شهادات، ولا تتضمن الخدمة افتراضياً أي هوية وطنية مثل نفاذ أو UAE Pass. في الإنتاج، تأتي هوية الموقّع من مزوّد الهوية لدى عميلك، وتأتي الشهادة من بنيته PKI أو HSM أو من مزوّد الثقة الذي يعتمده. التوقيع الإلكتروني في المغرب

التطبيق العملي مع Khatm

توقيع PDF مدمج في برنامجك، تحت علامتك، بالعربية والفرنسية والإنجليزية. جرّب في sandbox، ونرافقك حتى الإنتاج.

  1. جرّب العرض التجريبي: ارفع عقداً تجريبياً، وأضف موظفاً ومدير موارد بشرية، واحصل على PDF موقّع بصيغة PAdES. تحذير «هوية غير معروفة» في قارئ PDF متوقع، لأن العرض التجريبي يستخدم شهادة اختبار ذاتية التوقيع.
  2. ابنِ في sandbox: احصل على مفتاح sandbox (`khatm_test_…`)، واربط حدثاً واحداً من برنامجك بإنشاء الطلب، ثم عالج webhook اكتمال التوقيع.
  3. جهّز الإنتاج مع Khatm: تحديد النطاق، وتكييف المسار مع علامتك، وربط هوية الموقّعين وشهادة عميلك، والطابع الزمني RFC 3161 عندما يوفّره المزوّد، ومدة احتفاظ تُحدَّد معك.

للمزيد، اطّلع على توثيق واجهة البرمجة وصفحة المرافقة. جرّب العرض التجريبي توثيق واجهة البرمجة المرافقة

معلومات عامة وليست استشارة قانونية. تحقق من متطلبات معاملتك مع المستشار المناسب أو الجهة المستقبلة.

هل يحتاج الموظف إلى حساب ليوقّع عقده؟

لا. يتلقى كل موقّع رابط توقيع خاصاً به ويوقّع في مسار بالعربية أو الفرنسية أو الإنجليزية، ويبقى برنامجك هو صاحب العلاقة مع الموظف.

هل يمكن اشتراط أن يوقّع الموظف قبل مدير الموارد البشرية؟

نعم. امنح الموظف `order: 1` وامنح مدير الموارد البشرية ترتيباً أعلى، فلا تصله الوثيقة إلا بعد توقيع من يسبقه.

كيف نتجنب إنشاء طلبين للعقد نفسه؟

استخدم `client_reference` ثابتاً مكوّناً من رقم الموظف ونوع الوثيقة وإصدارها. تكرار الإنشاء بالقيمة نفسها يعيد الطلب الموجود.

كم مدة احتفاظ Khatm بالعقود؟

في sandbox والعرض التجريبي يُحذف المحتوى بعد 10 أيام من رفع ملف PDF. في الإنتاج تُحدَّد مدة الاحتفاظ مع عميلك، ويبقى ملف الموظف محفوظاً في برنامجك.

هل عقد العمل الموقّع عبر Khatm صالح في المغرب أو دول الخليج؟

يعتمد ذلك على البلد ونوع العقد وطريقة التحقق من هوية الموقّع والشهادة المستخدمة. لا يقدّم Khatm استشارة قانونية، لذا اعرض كل حالة على مستشار محلي قبل الإطلاق.