Docs

Swipe Match

Последнее обновление: 2026-10-034 мин чтения

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, stageid и этап
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 - 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
модуль еще не открыт для APInot_available

События

match.lead.offered, match.lead.offer_closed, match.lead.matched, match.lead.updated, match.lead.unassigned - см. Вебхуки. Контактов клиента в событиях нет никогда.

Связанные статьи

Эта статья была полезной?