Набор методов для интеграций с агрегаторами и партнёрскими системами. Они могут не только отправить заявку покупателя, но и передать в MACRO полную структуру партнёрского канала.
Такая схема уменьшает ручной разбор заявок. Вашим сотрудникам проще увидеть источник партнёрского обращения, администраторам системы — выдать доступ только к нужным действиям API, а разработчикам агрегаторов — построить единый сценарий интеграции для разных застройщиков.
#Кому будут полезны API-методы?
#Сотрудники застройщика, ответственные за посредников
Заявки от агрегаторов можно учитывать через связи с контактами агрегатора, агентства и агента, а не только через рекламные метки или текст в комментарии. Это помогает контролировать партнёрский канал, разбирать спорные обращения и готовить актуальную аналитику по посредникам.
#Администраторы MACRO
Для каждого агрегатора можно создать отдельное API-приложение, выдать ему только нужные права и при необходимости быстро отключить доступ. В правах приложения предусмотрены действия для создания контактов, создания заявок, поиска агента и управления аккредитацией агента или агентства.
#Разработчики сайта застройщика и внутренних интеграций
API позволяет принимать партнёрские заявки напрямую: найти или создать контакт агента/агентства, проверить его роль, затем создать заявку с корректными связями в системе MACRO.
#Разработчики ПО агрегаторов
Агрегатор может хранить для каждого застройщика отдельные реквизиты API-приложения, команды API в зависимости от сервера MACRO и свой ID (contacts_aggregator_id) в базе этого застройщика. Один и тот же внешний сервис сможет работать по общей логике, но с раздельными доступами и идентификаторами для каждой компании.
#Как выглядит процесс интеграции
- Вы запрашиваете в поддержке MACRO API-ключ для агрегатора.
- Вы сообщаете агрегатору реквизиты подключения (адрес API системы MACRO и API-ключ) и его
contacts_aggregator_id— ID контакта юридического лица с ролью «Агрегатор» - Перед отправкой агентской заявки агрегатор проверяет API-запросом
/contacts/findAgent, есть ли в MACRO нужный агент или агентство недвижимости, за которым он хочет зафиксировать заявку:- Если контакта нет, агрегатор создаёт его через API с помощью специализированных методов
/contacts/createAgentи/contacts/createAgency, которые создадут контакт с нужно ролью «Агент» и «Агентство недвижимости» соответственно - При необходимости отдельным запросом
/contacts/accreditateAgentможно установить аккредитацию агента или агентства, чтобы в будущем они самостоятельно могли зайти в личный кабинет агента
- Если контакта нет, агрегатор создаёт его через API с помощью специализированных методов
- При создании заявки с помощью метода API
estateBuy/createагрегатор указывает свой IDcontacts_aggregator_id, ID агентства недвижимостиcontacts_agency_id(опционально) и агентаcontacts_mediator_id - Заявка создаётся в системе MACRO уже с проставленной связью с агрегатором, агентством и агентом
В результате в систему MACRO попадает не просто обращение с внешнего источника, а заявка с понятной структурой партнёрского участия.
#Технические уточнения по методам API
При отправке заявки агрегатор должен использовать нижеперечисленные методы API, чтобы получить исчерпывающую информацию об агенте и агентстве недвижимости и верно учесть её в заявке. Ссылки приведены на примере macroserver.ru. Если Ваша система располагается на другом сервере, то или подставьте адрес своего сервера, или запросите ссылку MACRO API в поддержке.
#contacts/findAgent
Метод поиска агентов и агентств недвижимостиПереход на внешний сайтhttps://api.macroserver.ru/docs/api/v2/#tag/Contacts/operation/contacts/findAgent поможет агрегатору проверить контакт до создания заявки.
В запросе обязательно передаётся roles — строка с одним из допустимых значений:
agent— для поиск агентаagent_org— для поиска агентства недвижимости
Дополнительно можно передать поисковые параметры:
phone— телефон, который будет нормализован перед поиском. Обязателен, если не переданcommInncommInn— ИНН для поиска юридического лица. Обязателен, если не переданphone.
#contacts/createAgent
Метод создания агентаПереход на внешний сайтhttps://api.macroserver.ru/docs/api/v2/#tag/Contacts/operation/contacts/createAgent используется, когда агрегатору нужно завести агента перед созданием заявки, а метод /contacts/findAgent контакт не нашёл. Создаёт контакт физического лица, роль agent проставляется автоматически — передавать её не нужно.
Обязательные поля:
name— ФИО агентаphones— непустой массив телефонов (в каждом номере минимум 3 цифры)
Дополнительно можно передать:
roles— массив дополнительных ролей:buyer(покупатель),partnyor(партнёр),uchastnik_tenderov(участник тендеров). Основную рольagentпередавать не нужно.emails— массив адресов эл. почтыnameFull— ассоциации (ключевые слова для поиска, показываются в скобках после имени)nameFirst,nameLast,nameMiddle— имя, фамилия, отчествоdob— дата рождения (форматГГГГ-ММ-ДДилиДД.ММ.ГГГГ)sex— пол (1— мужской,2— женский)flInn— ИНН физлица (12 цифр)snils— СНИЛСpassportType— тип документа (пусто — паспорт РФ,foreign— паспорт иностранца,birth— свидетельство о рождении,residency— вид на жительство,idcard— удостоверение личности),passportNum,passportDate,passportOrgan,passportOrganCode,passportBirthplace,passportAddressdescription— заметка
#contacts/createAgency
Метод создания агентстваПереход на внешний сайтhttps://api.macroserver.ru/docs/api/v2/#tag/Contacts/operation/contacts/createAgency используйте, когда нужно завести агентство недвижимости, а метод /contacts/findAgent контакт не нашёл. Создаёт только контакт юридического лица, роль agent_org (агентство недвижимости) проставляется автоматически.
Обязательные поля:
name— название агентстваphones— непустой массив телефонов (в каждом номере минимум 3 цифры)
Дополнительно можно передать:
roles— массив дополнительных ролей:buyer,partnyor,uchastnik_tenderov. Основную рольagent_orgпередавать не нужно.emails— массив адресов эл. почтыnameFull— ассоциации (ключевые слова для поиска)commFullTitle— краткое название организацииcommInn— ИНН (10 цифр)commOgrn— ОГРН (13 цифр)commKpp— КПП (9 цифр)commAddress— юридический адресdescription— заметка
#contacts/create
Использовать для создания контактов допустимо и более универсальный методПереход на внешний сайтhttps://api.macroserver.ru/docs/api/v2/#tag/Contacts/operation/contacts/create, если агрегатору выданы соответствующие права. Если в методе /contacts/findAgent не был найден контакт агента или агентства недвижимости, используйте /contacts/create.
В запрос можно передать roles — непустой массив ролей. Допустимые значения:
agent— агентagent_org— агентство недвижимостиbuyer— покупательpartnyor— партнёрuchastnik_tenderov— участник тендеров
Для юридических лиц добавлены поля:
comm_full_title— полное или официальное названиеcomm_inn— ИННcomm_ogrn— ОГРНcomm_kpp— КППcomm_address— юридический адрес
Метод ищет или создаёт контакт в пределах доступных компаний застройщика и его партнёров. Если переданы роли, API валидирует их и записывает в контакт только разрешённые значения.
#estateBuy/create
При создании заявки укажите в её методеПереход на внешний сайтhttps://api.macroserver.ru/docs/api/v2/#tag/EstateBuy/operation/estateBuy/create поля:
contacts_aggregator_id— ID контакта юридического лица с ролью «Агрегатор», который инициирует создание заявкиcontacts_agency_id— ID контакта юридического лица с ролью «Агентство недвижимости»contacts_mediator_id— ID контакта физического лица с ролью «Агент»
Если одно из этих полей передано, система MACRO проверяет, что контакт существует в компании застройщика, не удалён, имеет подходящий тип и нужную роль. Так агент не попадёт в поле агентства, агентство — в поле агрегатора, а неверный или удалённый контакт не создаст некорректную связь в заявке.
#contacts/accreditateAgent
Метод для управления аккредитацией агента или агентства. Используйте опционально, если
В запрос передаются:
id— ID контакта с рольюagentилиagent_orgaccreditation—true, чтобы аккредитовать контакт, илиfalse, чтобы снять аккредитацию
Контакт должен быть найден в компании застройщика или среди связанных партнёрских компаний и должен иметь агентскую роль. Если контакт не найден или не подходит по роли, API вернёт ошибку.