Docs

Swipe Match

آخر تحديث: 2026-10-033 دقيقة قراءة

يبحث Swipe Match عن وسيط للعميل ويعرض العميل المحتمل على الوسطاء بالتناوب. عبر API يرى الوسيط الشريك (أو الوكالة) العملاء المعروضين عليه والمسندين إليه، ويبلغ عن خطواته مع العميل. القراءة تتطلب النطاق leads:read، والأحداث تتطلب leads:write. لا تُخصم.

العملاء المحتملون

curl "https://developers.grem.capital/api/v1/match/leads?view=active&limit=20" \
  -H "Authorization: Bearer gsk_live_xxx"

GET /match/leads:

المعاملالوصف
viewactive (افتراضي): العملاء المسندون إليك؛ inbox: العروض المفتوحة لك. مفتاح الوكالة يرى عملاء وعروض وكلاء الوكالة
stageتصفية حسب المرحلة
page، limitالصفحة؛ limit حتى 50، والافتراضي 20؛ وlimit أو page أقل من 1، أو limit أكبر من 50، أو page أكبر من 1000 يعطي 400

GET /match/leads/{id}: عميل واحد، وGET /match/leads/{id}/events: سجله (أحداثك والعروض؛ دون أحداث مالية أو خدمية ودون تقييمات العميل). العميل الذي لا يخصك: 404.

إلى أن يُفتح Swipe Match للوصول عبر API في حسابك، تجيب هذه الطلبات بـ 409 مع code: not_available.

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

الحقلالوصف
id، stageالمعرّف والمرحلة
clientTypebuyer أو seller
country، objectId، objectIdsالبلد والعقارات التي يخصها الطلب
budgetmin، max، currency
answersإجابات العميل: budget، timeline، payment
qualScore، qualBandتقييم جودة العميل
clientInitialالحرف الأول من اسم العميل
offerعرضك المفتوح: id، wave، offeredAt، deadline
contactDeadline، meetingDeadlineموعد التواصل والاجتماع
deal، reservation، dealObjectsبيانات الصفقة والحجز
clientname وphone للعميل: فقط بعد إسناد العميل إليك وكشف جهة الاتصال
brokerIdالوسيط الذي يُعرض منظوره
feeرسوم المنصة على هذا العميل المحتمل بالنسبة لك: none أو percent (هذه النسبة من العمولة التي تتلقاها، في percent) أو contract (حسب الاتفاق)؛ دون مبالغ أبدا

المراحل (stage): new، offered، intro، match، contact، meeting_scheduled، meeting_held، contract، deal، closed، lost.

خطواتك مع العميل المحتمل

POST /match/leads/{id}/events: فقط لعميل مسند إليك. تتحقق الوحدة من أن الخطوة مسموحة في المرحلة الحالية.

eventالحقولالمعنى
FIRST_CONTACTchannel: phone (افتراضي) أو messengerتواصلت مع العميل
RESERVATIONamount، currency (3 أحرف)، date؛ documentFileId اختياريدفع العميل حجزا
STAGE_ROLLBACKreasonCode: client_withdrew، seller_withdrew، financing_failed، documents، other؛ text حتى 500إعادة العميل مرحلة إلى الوراء
LEAD_LOSTreasonCode: client_refused، client_unreachable، bought_elsewhere، not_target، other؛ text. وأي سبب آخر يعطي 400فُقد العميل
DEAL_CLOSEDobjectId، amount، currency، date، documentFileId؛ commissionReceived، commissionCurrency اختياريانأُغلقت الصفقة

documentFileId: معرّف ملف مرفوع عبر POST /uploads (الملفات). وreasonCode خارج قائمته يعطي 400؛ ومع LEAD_LOST والسبب other يكون text إلزاميا (ودونه 400)؛ أما مع STAGE_ROLLBACK فلا يُحفظ text إلا مع other.

curl -X POST https://developers.grem.capital/api/v1/match/leads/LEAD_ID/events \
  -H "Authorization: Bearer gsk_live_xxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: fc-LEAD_ID-1" \
  -d '{"event":"FIRST_CONTACT","channel":"phone"}'

الرد: lead العميل بعد الانتقال، وreplay: true إذا كانت إعادة بالمفتاح Idempotency-Key نفسه. خطوات العميل لا تُرسل عبر API. يتكون Idempotency-Key هنا من 8 إلى 128 حرفا: حروف وأرقام و_ . : -؛ وأي صيغة أخرى تعطي 400 validation.

تصل حالات الرفض بـ 409 مع title: business_rule والسبب في code:

السببcode
الخطوة غير متاحة في المرحلة الحاليةinvalid_transition
حدث خاص بالعميل لا يرسله الوسطاءclient_event_rejected
الوحدة غير مفتوحة لـ API بعدnot_available

الأحداث

match.lead.offered، match.lead.offer_closed، match.lead.matched، match.lead.updated، match.lead.unassigned: انظر Webhooks. لا تحتوي الأحداث أبدا على جهات اتصال العميل.

مقالات ذات صلة

هل كانت هذه المقالة مفيدة؟