تسجيل محاولة وصول أو رفض
يسجّل محاولة وصول أو رفضًا قرّره نظامك مسبقًا. لا يتم الاتصال بوحدة التحكم في الباب/البوابة، ولا يُفتح قفل الباب.
استخدم هذا الاستدعاء عندما يرفض نظامك الدخول، أو عندما ينبغي أن تظهر محاولة في سجلات الوصول ضمن Door & Gate Access دون فتح القفل. لا يقيّم Performance Hub حالة العضوية أو ساعات الوصول أو قواعد الوصول الأخرى.
يظهر حدث الرفض في سجلات الوصول ضمن Door & Gate Access بالنتيجة Denied، مع اسم الشريك الخاص بك، والباب، ومعرّف العضو عند إرساله، ورمز السبب بصيغة مقروءة. على سبيل المثال، يظهر membership_expired بالصيغة "Membership Expired". ويُخزَّن reason_display_text وuser_email مع الحدث.
المعلمات
-
door_id
stringمطلوبمعرّف وحدة التحكم في الباب/البوابة الذي تُرجعه نقطة نهاية القائمة.
-
facility_id
stringأحدهماقدّم نوع معرّف المنشأة المهيّأ لتكاملك: استخدم facility_id لتكاملات الربط المباشر، أو linking_identifier لتكاملات معرّف الربط. لا ترسل كليهما؛ إذ تستخدم API نوع المعرّف المهيّأ لحساب الشريك الخاص بك وتتجاهل الآخر. اعرف المزيدمعرّف المنشأة في Performance Hub. مطلوب لتكاملات الربط المباشر.
-
linking_identifier
stringأحدهماقدّم نوع معرّف المنشأة المهيّأ لتكاملك: استخدم facility_id لتكاملات الربط المباشر، أو linking_identifier لتكاملات معرّف الربط. لا ترسل كليهما؛ إذ تستخدم API نوع المعرّف المهيّأ لحساب الشريك الخاص بك وتتجاهل الآخر. اعرف المزيدمعرّف المنشأة لدى الشريك. مطلوب لتكاملات معرّف الربط.
-
outcome
stringمطلوبdeniedأوattempted. -
reason
stringاختياريرمز السبب بصيغة snake_case وبأحرف صغيرة، بحد أقصى 64 حرفًا. مطلوب عندما تكون قيمة
outcomeهيdenied. مثال:membership_expired. -
reason_display_text
stringاختياريسبب بصيغة يقرؤها الإنسان، بحد أقصى 256 حرفًا. مثال:
Membership expired on 2026-04-01. -
member_id
stringاختياريمعرّف العضو لدى الشريك. احذفه عندما لا تتطابق بيانات الاعتماد مع أي عضو، مثل بطاقة غير معروفة.
-
user_email
stringاختياريالبريد الإلكتروني للشخص الذي حاول الوصول.
-
timestamp
stringاختياريوقت حدوث المحاولة، بتنسيق ISO 8601 مع منطقة زمنية. مثال:
2026-05-18T10:15:30Z. القيمة الافتراضية هي وقت استلام الطلب. يجب ألا يتجاوز 5 دقائق في المستقبل وألا يكون أقدم من 30 يومًا. -
idempotency_key
stringاختياريمفتاح الحماية من إعادة الإرسال، بحد أقصى 128 حرفًا. تؤدي إعادة استخدام المفتاح نفسه للشريك والمنشأة والباب أنفسهم إلى إرجاع النتيجة الأصلية.
القيم المُرجعة
يُرجع 201 عند تسجيل الحدث. وتؤدي إعادة إرسال idempotency_key نفسه إلى إرجاع 200 مع تعيين idempotent على true، ولا يُنشأ حدث آخر.
يُرجع مفتاح التشغيل التجريبي (dry-run) القيمة 200 مع تعيين dry_run على true. ولا يُسجَّل أي شيء.
حالات الإخفاق الشائعة:
400- نص الطلب غير صالح، أو الرفض بلاreason، أو الطابع الزمني خارج النطاق المسموح، أوfacility_id/linking_identifierلا يطابق منشأة مرتبطة.403- المفتاح للقراءة فقط.403 integration_not_enabled- تكاملك غير مفعّل للمنشأة. ويوضحmessageالسبب.404- لم يُعثر على وحدة التحكم في الباب/البوابة للمنشأة المرتبطة.
الطلب
curl -X POST https://partner-api.performancehub.co/partner/v1/access-control/doors/00000000000000000000000000000007/access-events \
-u sk_live_YOUR_PARTNER_SECRET_KEY: \
-H "Content-Type: application/json" \
-d '{
"facility_id": "550e8400-e29b-41d4-a716-446655440000",
"outcome": "denied",
"reason": "membership_expired",
"reason_display_text": "Membership expired on 2026-04-01",
"member_id": "mem_12345",
"user_email": "member@example.com",
"timestamp": "2026-05-18T10:15:30Z",
"idempotency_key": "evt_abc12345"
}'
الاستجابة
{
"status": "recorded",
"event_id": "00000000-0000-0000-0000-000000000045",
"outcome": "denied",
"door_id": "00000000000000000000000000000007",
"facility_id": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-05-18T10:15:30.000Z"
}
إعادة الإرسال المتكررة الآمنة (Idempotent replay)
{
"status": "recorded",
"event_id": "00000000-0000-0000-0000-000000000045",
"outcome": "denied",
"door_id": "00000000000000000000000000000007",
"facility_id": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-05-18T10:15:30.000Z",
"idempotent": true
}