المطوّرون
مكتبك
كله،
على
واجهة
API
واحدة.
كل اللي يديره مكتبك على شركتي — الخدمات والطلبات والعملاء والفوترة — توصله من واجهة REST واحدة. اربط الـ ERP عندك، وزامن الـ CRM، أو أنشئ الطلبات مباشرة من أنظمتك. نفس المحرّك، ونفس سجل التدقيق… وكودك أنت.
- البروتوكول
- REST + JSON عبر
/api/v1 - المفاتيح
- مفاتيح محدودة الصلاحيات وقابلة للتقييد بعناوين IP
- إعادة المحاولة
- إعادة محاولات آمنة دون تكرار
curl https://api.shrkity.com/api/v1/orders \ -X POST \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: order-7f3a" \ -d '{ "service_definition_id": 18, "company_id": 42 }' # 201 Created { "id": 1208, "status": "pending", "steps": [ … ] }
طلب حقيقي أُنشئ عبر المحرّك نفسه الذي يستخدمه تطبيق سطح المكتب، بخطواته وعدّادات SLA وسجل التدقيق.
الدليل
من مفتاح API إلى أول طلب في دقائق.
الوصول عبر API جزء من باقتَي التوسّع والمؤسسات. يُنشئ مالك المنشأة مفاتيح API من تطبيق سطح المكتب، بصلاحيات محددة لما يحتاجه تكاملك بالضبط، ويظهر المفتاح مرة واحدة فقط.
أنشئ مفتاحًا
في تطبيق شركتي للأعمال افتح الإعدادات · المنشأة · الوصول عبر API وأنشئ مفتاحًا. اختر صلاحياته، وقيّده اختياريًا بعناوين IP لخوادمك، وانسخ السر — يظهر مرة واحدة فقط.
صادِق طلباتك
أرسل المفتاح مع كل طلب في الترويسة Authorization: Bearer shk_live_… أو في X-Api-Key. من خادم إلى خادم فقط — لا من متصفح أو تطبيق جوال أبدًا.
نفّذ أول استدعاء
اعرض خدماتك المنشورة عبر GET /services ثم أنشئ طلبًا على إحداها. كل استجابة تطابق ما يراه فريقك على سطح المكتب.
انطلق بأمان
أرسل Idempotency-Key مع عمليات الكتابة فلا تتكرر الأعمال عند إعادة المحاولة، وراقب ترويسات حدود المعدّل، وبدّل المفاتيح بإنشاء مفتاح جديد وإلغاء القديم.
https://api.shrkity.com/api/v1
رابطك الأساسي الدقيق يظهر في تبويب الوصول عبر API.
المصادقة
مفتاح API بيانات اعتماد،
لا كلمة مرور تُعاد استخدامها.
يعمل مفتاح API باسم منشأتك كاملة ضمن الصلاحيات التي تمنحها له. شركتي تخزّن بصمته فقط — إن فُقد فألغِه وأنشئ غيره.
صلاحيات بحسب المورد. orders:write ينشئ الطلبات ولا يلمس الكوبونات. امنح ما يحتاجه التكامل فقط.
قابل للتقييد بعناوين IP. قيّد المفتاح بعناوين خوادمك أو نطاقات CIDR، وتُرفض الاستدعاءات من أي مكان آخر.
مرتبط بالباقة وقابل للإلغاء فورًا. يُتحقق من الوصول مع كل طلب، والمفتاح الملغى يتوقف خلال دقيقة في كل مكان.
# bearer token (recommended) curl https://api.shrkity.com/api/v1/services \ -H "Authorization: Bearer shk_live_…" # or the X-Api-Key header curl https://api.shrkity.com/api/v1/services \ -H "X-Api-Key: shk_live_…"
يبدأ المفتاح بـ shk_live_ يليه 40 حرفًا. أي شكل آخر يُرفض قبل أن يلمس بياناتك.
الأخطاء
كل خطأ يأتي بصيغة JSON مع رسالة مفهومة، وعند الحاجة رمز آلي تتفرّع عليه برمجيتك. إخفاقات المصادقة والتفويض تسمّي سببها دائمًا.
invalid_api_keyالمفتاح غير معروف أو غير صالح أو ملغى (revoked_api_key) أو منتهٍ (expired_api_key).
plan_requiredباقة المنشأة الحالية لا تتضمن الوصول عبر API.
ip_not_allowedالمفتاح مقيّد بعناوين مصدر محددة وجاء هذا الاستدعاء من غيرها.
insufficient_scopeالمفتاح يفتقد الصلاحية المطلوبة؛ تسمّيها الاستجابة في required_scope.
422جسم الطلب لم يجتز التحقق؛ تخبرك الرسالة بما يجب إصلاحه بالضبط.
429طلبات كثيرة جدًا؛ انتظر عدد الثواني في Retry-After.
{
"message": "The API key does not have the required scope.",
"code": "insufficient_scope",
"required_scope": "orders:write"
}
تقسيم الصفحات
كل قائمة تقبل page (الافتراضي 1) وper_page (الافتراضي 10 وبحد أقصى 200) وتعيد كائن meta إلى جانب البيانات. تابع الصفحات حتى تصبح has_next خاطئة.
{
"data": [ … ],
"meta": {
"total": 412,
"per_page": 50,
"current_page": 2,
"last_page": 9,
"has_next": true,
"has_previous": true
}
}
أمان إعادة المحاولة
الشبكات تنقطع في منتصف الطلب. أرسل ترويسة Idempotency-Key مع أي POST فتُحفظ أول استجابة ناجحة لمدة 24 ساعة؛ وإعادة المحاولة المطابقة تستلم الاستجابة المحفوظة نفسها — معلَّمة بـ Idempotency-Replayed: true — بدل إنشاء نسخة مكررة.
استخدم قيمة ثابتة لكل إجراء منطقي، مثل مرجع الطلب في نظامك. إجراء جديد يعني مفتاحًا جديدًا.
curl https://api.shrkity.com/api/v1/orders \ -X POST \ -H "Authorization: Bearer shk_live_…" \ -H "Idempotency-Key: erp-po-10422" \ -d '{ "service_definition_id": 18, "company_id": 42 }' # run it twice — one order exists.
حدود المعدّل
لكل مفتاح 120 طلبًا في الدقيقة. كل استجابة تحمل رصيدك المتبقي، واستجابة 429 تخبرك كم تنتظر بالضبط. إنشاء الطلبات يخضع إضافيًا لحصة الطلبات الشهرية في باقتك.
X-RateLimit-Limit: 120 X-RateLimit-Remaining: 117 # on 429 only: Retry-After: 21
الإصدارات
العقد هو الرابط. الاستجابات تحت /api/v1 لا تتغير إلا بالإضافة؛ لا يُعاد تسمية حقل ولا يُحذف ضمن v1. التغيير الكاسر يعني /api/v2 موازيًا مع فترة إيقاف تدريجي، لا تعديلًا صامتًا. ابنِ على الحقول التي تستخدمها وتجاهل الباقي.
المرجع
كل نقطة وصول، بحسب المورد.
يُولَّد هذا المرجع من وثيقة OpenAPI نفسها التي تقدّمها المنصة عبر /api/v1/openapi.json — فما تقرؤه هنا هو ما يفرضه الخادم. وتبقى المسارات وأسماء الحقول والأنواع بالإنجليزية كما يفرضها العقد.
الخدمات
كتالوج الخدمات المنشورة (للقراءة فقط).
عرض الخدمات المنشورة
المعاملات
search
يطابق الاسم أو الاسم العربي أو الرمز
curl https://api.shrkity.com/api/v1/services \ -H "Authorization: Bearer shk_live_…"
حقول القائمة إضافةً إلى starts_at_price (هل يعتمد السعر على خيارات تُحدَّد وقت التنفيذ) وفحوصات الأهلية التي ستحكم إنشاء طلب لهذه الخدمة.
المعاملات
id
curl https://api.shrkity.com/api/v1/services/{id} \ -H "Authorization: Bearer shk_live_…"
مجمّعة عبر خطوات المستندات في سير العمل، وفق ترتيب التنفيذ. استخدمها لتجميع الملفات من جانبك قبل تنفيذ الطلب أو أثناءه.
المعاملات
id
curl https://api.shrkity.com/api/v1/services/{id}/required-documents \ -H "Authorization: Bearer shk_live_…"
الطلبات
طلبات الخدمة.
عرض الطلبات
المعاملات
status
company_id
service_definition_id
priority
search
created_from
created_to
curl https://api.shrkity.com/api/v1/orders \ -H "Authorization: Bearer shk_live_…"
ينشئ طلب خدمة لخدمة منشورة. يخضع للحد الشهري للطلبات في الباقة (يُعاد 422 عند بلوغه). يدعم Idempotency-Key.
حقول الطلب
service_definition_id
خدمة منشورة (راجع GET /services)
company_id
مطلوب عندما تتطلب الخدمة سياق منشأة
company_employee_id
الموظف المقصود بالطلب، عندما تتطلب الخدمة موظفًا
priority
curl https://api.shrkity.com/api/v1/orders \ -X POST \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ "service_definition_id": 42, "company_id": 42, "company_employee_id": 42, "priority": "low" }'
عرض طلب مع خطواته وتفصيل سعره
المعاملات
id
curl https://api.shrkity.com/api/v1/orders/{id} \ -H "Authorization: Bearer shk_live_…"
تعديل طلب
المعاملات
id
حقول الطلب
priority
curl https://api.shrkity.com/api/v1/orders/{id} \ -X PATCH \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ "priority": "low" }'
عرض خطوة واحدة من الطلب
المعاملات
id
step_key
curl https://api.shrkity.com/api/v1/orders/{id}/steps/{step_key} \ -H "Authorization: Bearer shk_live_…"
إلغاء طلب
المعاملات
id
curl https://api.shrkity.com/api/v1/orders/{id}/cancel \ -X POST \ -H "Authorization: Bearer shk_live_…"
تطبيق كوبون على الطلب
المعاملات
id
حقول الطلب
code
curl https://api.shrkity.com/api/v1/orders/{id}/apply-coupon \ -X POST \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ "code": "WELCOME10" }'
إزالة الكوبون المطبّق من الطلب
المعاملات
id
curl https://api.shrkity.com/api/v1/orders/{id}/coupon \ -X DELETE \ -H "Authorization: Bearer shk_live_…"
العملاء
عملاء المنشأة.
عرض العملاء
curl https://api.shrkity.com/api/v1/clients \ -H "Authorization: Bearer shk_live_…"
إنشاء عميل
حقول الطلب
name
email
phone_number
curl https://api.shrkity.com/api/v1/clients \ -X POST \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ "name": "Acme Trading Co.", "email": "[email protected]", "phone_number": "…" }'
تعديل عميل
المعاملات
client_id
حقول الطلب
name
email
phone_number
curl https://api.shrkity.com/api/v1/clients/{client_id} \ -X PUT \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ "name": "Acme Trading Co.", "email": "[email protected]", "phone_number": "…" }'
الشركات
منشآت العملاء وموظفوها.
عرض المنشآت
curl https://api.shrkity.com/api/v1/companies \ -H "Authorization: Bearer shk_live_…"
إنشاء منشأة
حقول الطلب
حمولة المنشأة — legal_name وtype وحقول السجل؛ راجع نموذج «إضافة منشأة» في البوابة لمعرفة مجموعة الحقول.
curl https://api.shrkity.com/api/v1/companies \ -X POST \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ …see field reference… }'
تعديل منشأة
المعاملات
id
curl https://api.shrkity.com/api/v1/companies/{id} \ -X PUT \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ …see field reference… }'
عرض موظفي المنشأة
المعاملات
company_id
curl https://api.shrkity.com/api/v1/companies/{company_id}/workers \ -H "Authorization: Bearer shk_live_…"
ينشئ موظف منشأة — وهو الشخص المقصود بالطلب المرتبط بموظف. مجموعة الحقول تطابق نموذج «إضافة موظف» في البوابة.
المعاملات
company_id
curl https://api.shrkity.com/api/v1/companies/{company_id}/workers \ -X POST \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ …see field reference… }'
تعديل موظف
المعاملات
company_id
id
curl https://api.shrkity.com/api/v1/companies/{company_id}/workers/{id} \ -X PATCH \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ …see field reference… }'
إزالة موظف
المعاملات
company_id
id
curl https://api.shrkity.com/api/v1/companies/{company_id}/workers/{id} \ -X DELETE \ -H "Authorization: Bearer shk_live_…"
الباقات
الباقات التي تنشئها المنشأة (للقراءة فقط).
عرض الباقات
curl https://api.shrkity.com/api/v1/packages \ -H "Authorization: Bearer shk_live_…"
عرض باقة
المعاملات
id
curl https://api.shrkity.com/api/v1/packages/{id} \ -H "Authorization: Bearer shk_live_…"
الاشتراكات
اشتراكات الباقات.
عرض اشتراكات الباقات
curl https://api.shrkity.com/api/v1/subscriptions \ -H "Authorization: Bearer shk_live_…"
إسناد اشتراك باقة
حقول الطلب
package_id إضافةً إلى المالك (company_id أو مستخدم العميل)، بما يطابق مسار «الإسناد» في البوابة.
curl https://api.shrkity.com/api/v1/subscriptions \ -X POST \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ …see field reference… }'
عرض اشتراك مع مخصصاته
المعاملات
id
curl https://api.shrkity.com/api/v1/subscriptions/{id} \ -H "Authorization: Bearer shk_live_…"
إيقاف اشتراك نشط مؤقتًا
المعاملات
id
curl https://api.shrkity.com/api/v1/subscriptions/{id}/pause \ -X POST \ -H "Authorization: Bearer shk_live_…"
استئناف اشتراك موقوف
المعاملات
id
curl https://api.shrkity.com/api/v1/subscriptions/{id}/resume \ -X POST \ -H "Authorization: Bearer shk_live_…"
إلغاء اشتراك
المعاملات
id
curl https://api.shrkity.com/api/v1/subscriptions/{id}/cancel \ -X POST \ -H "Authorization: Bearer shk_live_…"
تجديد اشتراك منتهٍ قابل للتجديد
المعاملات
id
curl https://api.shrkity.com/api/v1/subscriptions/{id}/renew \ -X POST \ -H "Authorization: Bearer shk_live_…"
الكوبونات
كوبونات الخصم.
عرض الكوبونات
curl https://api.shrkity.com/api/v1/coupons \ -H "Authorization: Bearer shk_live_…"
إنشاء كوبون
حقول الطلب
code
name
description
discount_type
discount_value
max_discount_amount
min_order_amount
valid_from
valid_until
usage_limit_total
usage_limit_per_subject
is_active
curl https://api.shrkity.com/api/v1/coupons \ -X POST \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ "code": "WELCOME10", "name": "Acme Trading Co.", "discount_type": "fixed", "discount_value": 250, "description": "…" }'
عرض كوبون
المعاملات
id
curl https://api.shrkity.com/api/v1/coupons/{id} \ -H "Authorization: Bearer shk_live_…"
تعديل كوبون
المعاملات
id
حقول الطلب
code
name
description
discount_type
discount_value
max_discount_amount
min_order_amount
valid_from
valid_until
usage_limit_total
usage_limit_per_subject
is_active
curl https://api.shrkity.com/api/v1/coupons/{id} \ -X PATCH \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ "code": "WELCOME10", "name": "Acme Trading Co.", "discount_type": "fixed", "discount_value": 250, "description": "…" }'
حذف كوبون
المعاملات
id
curl https://api.shrkity.com/api/v1/coupons/{id} \ -X DELETE \ -H "Authorization: Bearer shk_live_…"
عرض عمليات استخدام الكوبون
المعاملات
id
curl https://api.shrkity.com/api/v1/coupons/{id}/redemptions \ -H "Authorization: Bearer shk_live_…"
عروض الأسعار
عروض أسعار مخصّصة.
عرض عروض الأسعار
curl https://api.shrkity.com/api/v1/quotations \ -H "Authorization: Bearer shk_live_…"
إنشاء عرض سعر
حقول الطلب
المستلم + بنود العرض، بما يطابق نموذج «عرض سعر جديد» في البوابة.
curl https://api.shrkity.com/api/v1/quotations \ -X POST \ -H "Authorization: Bearer shk_live_…" \ -H "Content-Type: application/json" \ -d '{ …see field reference… }'
استعراض عرض السعر
المعاملات
id
curl https://api.shrkity.com/api/v1/quotations/{id} \ -H "Authorization: Bearer shk_live_…"
إرسال عرض السعر إلى المستلم
المعاملات
id
curl https://api.shrkity.com/api/v1/quotations/{id}/send \ -X POST \ -H "Authorization: Bearer shk_live_…"
سحب عرض سعر مُرسَل
المعاملات
id
curl https://api.shrkity.com/api/v1/quotations/{id}/withdraw \ -X POST \ -H "Authorization: Bearer shk_live_…"
الفواتير
فواتير صادرة عن النظام (للقراءة فقط).
عرض الفواتير
curl https://api.shrkity.com/api/v1/invoices \ -H "Authorization: Bearer shk_live_…"
عرض فاتورة
المعاملات
id
curl https://api.shrkity.com/api/v1/invoices/{id} \ -H "Authorization: Bearer shk_live_…"
عرض ملف الفاتورة PDF (تحويل 302 إلى الملف)
المعاملات
id
curl https://api.shrkity.com/api/v1/invoices/{id}/pdf \ -H "Authorization: Bearer shk_live_…"
الاتصالات
طلبات الاتصال من العميل إلى المنشأة.
عرض طلبات الاتصال والاتصالات النشطة
المعاملات
status
مثل pending، active، rejected، revoked
curl https://api.shrkity.com/api/v1/connections \ -H "Authorization: Bearer shk_live_…"
يحصل العميل على صلاحية الوصول إلى السجل المشترك، وتبدأ الطلبات والمستندات بالتدفّق.
المعاملات
id
curl https://api.shrkity.com/api/v1/connections/{id}/approve \ -X POST \ -H "Authorization: Bearer shk_live_…"
يمكن اختياريًا تمرير {"reason": "…"}.
المعاملات
id
curl https://api.shrkity.com/api/v1/connections/{id}/reject \ -X POST \ -H "Authorization: Bearer shk_live_…"
ينهي العلاقة، ويمكن اختياريًا تمرير {"reason": "…"}.
المعاملات
id
curl https://api.shrkity.com/api/v1/connections/{id}/revoke \ -X POST \ -H "Authorization: Bearer shk_live_…"
المستندات
سجلات مستندات التزام العملاء (للقراءة فقط).
سجلات المستندات عبر المنشآت التي تخدمها: السجل التجاري والتراخيص والإقامة وغيرها من عناصر الالتزام، مع الحالة وتاريخ الانتهاء. اجمع company_id مع expiring_soon=true (أو expires_from/expires_to) لتغذية مسار التجديد.
المعاملات
company_id
company_employee_id
document_type_id
status
expiring_soon
المستندات داخل نافذة التجديد فقط
expires_from
expires_to
search
curl https://api.shrkity.com/api/v1/documents \ -H "Authorization: Bearer shk_live_…"
عرض سجل مستند
المعاملات
id
curl https://api.shrkity.com/api/v1/documents/{id} \ -H "Authorization: Bearer shk_live_…"
جاهز للبناء على شركتي؟
الوصول عبر API يأتي مع باقتَي التوسّع والمؤسسات. أنشئ أول مفتاح API لك من تطبيق سطح المكتب وستتحدث أنظمتك مع مكتبك الخلفي اليوم.