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:
| Параметр | Опис |
|---|---|
view | active (за замовчуванням) - ліди, закріплені за вами; 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 | id і етап |
clientType | buyer або seller |
country, objectId, objectIds | країна і об'єкти, яких стосується запит |
budget | min, max, currency |
answers | відповіді клієнта: budget, timeline, payment |
qualScore, qualBand | оцінка якості ліда |
clientInitial | перша літера імені клієнта |
offer | ваша відкрита пропозиція: id, wave, offeredAt, deadline |
contactDeadline, meetingDeadline | до коли зв'язатися і зустрітися |
deal, reservation, dealObjects | дані угоди і бронювання |
client | name і 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_CONTACT | channel: phone (за замовчуванням) або messenger | ви зв'язалися з клієнтом |
RESERVATION | amount, currency (3 літери), date; documentFileId - за бажанням | клієнт вніс бронювання |
STAGE_ROLLBACK | reasonCode: client_withdrew, seller_withdrew, financing_failed, documents, other; text - до 500 | повернути лід на попередній етап |
LEAD_LOST | reasonCode: client_refused, client_unreachable, bought_elsewhere, not_target, other; text. Інша причина - 400 | лід втрачено |
DEAL_CLOSED | objectId, amount, currency, date, documentFileId; commissionReceived, commissionCurrency - за бажанням | угоду закрито |
documentFileId - id файлу, завантаженого через 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 - див. Вебхуки. Контактів клієнта в подіях немає ніколи.