Документация MACRO

API Передача ключей

Для получения возможности использовать функционал API по передаче ключей предварительно необходимо настроить интеграцию Вашего сайта с MACRO.

#Бизнес-процесс по передаче квартир

Происходит в 3 этапа:

  1. Ваш сервис запрашивает список объектов, которые готовы к передаче. API в ответ возвращает список из номеров объектов, сгруппированный по домам. В выборку попадают объекты в статусе Сделка проведена с указанной фактической датой готовности к передаче.
  2. Пользователь выбирает интересующий его дом и удобную дату. Сервис отправляет эти данные в API и в ответ получает список свободных временных промежутков для записи на передачу.
  3. Сервис отправляет в API запрос на бронирование времени под передачу.

#API 2.0

С выпуском версии MacroAPI v2 для работы с функционалом передачи ключей обязательным требованием стало использование API-ключей для аутентификации и авторизации запросов. Подробнее о там как добавить API-ключ Вы можете ознакомится в статье.

О том какие параметры запросов используются в функционале API по передаче ключей, Вы можете узнать в разделе EstateTransferПереход на внешний сайтhttps://api.macroserver.ru/docs/api/v2/#tag/EstateTransfer документации.

#API 1.0

#Получение списка объектов готовых к передаче

#Параметры запроса

https://api.macrocrm.ru/estate/transfer/getReadyFlats/Переход на внешний сайтhttps://api.macrocrm.ru/estate/transfer/getReadyFlats/

Метод: GET или POST

ПараметрОбяз.ПримерОписание
timeДа1234567890Unix timestamp запроса
domainДа"вашсайт.рф"Домен, зарегистрированный в системе MACRO
tokenДаmd5(domain+time+app_secret)

Пример на PHP:

$token = md5($domain . time() . $app_secret)

categoryДаstorageroomОграничивает выборку объектов с учётом указанной категории недвижимости:
— квартиры: flat
— машино-места: garage
— кладовые: storageroom
— коммерческие помещения: comm

#Пример запроса

{
"domain": "вашсайт.рф",
"time": "1623717393",
"token": "4ad523e0f803420bc52062a3b76658d0"
}

#Пример ответа

{
    "status_code": 200,
    "data": {
        "houses": [
            {
                "id": "123",
                "title": "3 очередь бизнес-класс",
                "flats": [
                    "1.8-12-1",
                    "1.8-13-2",  
                ]
            },
            {
                "id": "124",
                "title": "Бизнес-класс 2 очередь",
                "flats": [
                    "К-1.4-7-1"
                ]
            },  ….             
        ]
    },
    "message": "Выполнено"
}
ПараметрОписание
status_codeКод ответа сервера
messageВ случае ошибки содержит её описание
data.housesМассив со списком домов
data.houses[].idID дома в системе MACRO
data.houses[].titleНазвание дома в системе MACRO
data.houses[].flatsМассив с номерами квартир, готовых к передаче

#Получение списка доступных временных промежутков для записи на передачу квартир

#Параметры запроса

https://api.macrocrm.ru/estate/transfer/getFreeTimes/Переход на внешний сайтhttps://api.macrocrm.ru/estate/transfer/getReadyFlats/

Метод: GET

ПараметрОбяз.ПримерОписание
timeДа1234567890Unix timestamp запроса
domainДа"вашсайт.рф"Домен, зарегистрированный в системе MACRO
tokenДаmd5(domain+time+app_secret)

Пример на PHP:

$token = md5($domain . time() . $app_secret)

transfer_dateДа"2020-06-11T00:00:00+05:00"Дата, для которой нужно вернуть список доступных временных промежутков для записи на передачу квартир. Должна быть в формате ISO 8601 (DATE_ATOM).
house_idДа123ID дома в системе MACRO, по которому нужно вернуть список. Параметр обязательный, если Вы для каждого дома используете отдельный график передачи квартир

#Пример тела запроса

{
    "domain": "вашсайт.рф",
    "time": "1623095129",
    "token": "0e8e424732fccbe827ca486feb925c47",
    "transfer_date": "2020-06-11T00:00:00+05:00",
    "house_id": "123"
}

#Пример ответа от сервера

{
    "status_code": 200,
    "data": {
        "08:30",
        "09:00",
        "13:00",
        "17": "13:30",
    },
    "message": "Выполнено"
}
ПараметрОписание
status_codeКод ответа сервера
messageВ случае ошибки содержит её описание
dataМассив со списком доступных временных промежутков

#Резервирование времени для осмотра и передачи ключей

⚠️ Важно! Убедитесь что в настройке компании «Передача ключей: Сотрудники компании, ответственные за передачу квартир» указан хотя бы один ответственный менеджер.

#Параметры запроса

https://api.macrocrm.ru/estate/transfer/add/Переход на внешний сайтhttps://api.macrocrm.ru/estate/transfer/add/

Метод: POST

Заголовок: Content-Type: application/json

Формат данных: JSON

ПараметрТипОбяз.ПримерОписание
domainstringДа"вашсайт.рф"Домен, зарегистрированный в системе MACRO
transfer_datestringДа"2025-08-27T10:00:00+03:00"Планируемая дата и время осмотра. Должна быть в формате ISO 8601 (DATE_ATOM).
phonestringДа"+7 (900) 000-000"Контактный номер телефона покупателя. Номер будет приведен к формату +7.XXXXXXXXXX для поиска в системе MACRO.
namestringДа"Иванов Иван Иванович"Полное имя покупателя. Используется для более точного поиска контакта в системе MACRO.
flat_numstring/integerДа"1.9-7-4"Номер объекта недвижимости (квартиры, машино-места, кладовой и т.д.)
house_idintegerДа8561992ID дома в системе MACRO, в котором находится объект недвижимости
categorystringДа"flat"

Категория объекта недвижимости, в который требуется добавить запись на осмотр:

— квартиры: flat
— машино-места: garage
— кладовые: storageroom
— коммерческие помещения: comm

Если категория не будет передана, то запись на осмотр добавится в первый найденный объект с совпадающим номером.

manager_idintegerДа"86998"ID менеджера в системе MACRO, которого Вы хотите назначить ответственным за передачу ключей в объекте недвижимости. Должен быть указан в настройке компании «Передача ключей: Сотрудники компании, ответственные за передачу квартир».
tokenintegerДа"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"

Пример на PHP:

$token = md5($domain . time() . $app_secret)

timeintegeДа1704076800Unix timestamp запроса

#Пример запроса

{
    "domain": "вашсайт.рф",
    "transfer_date": "2025-08-27T10:00:00+03:00",
    "phone": "+7 (900) 000-000",
    "name": "Иванов Иван  Иванович",
    "flat_num": "1.9-7-4",
    "house_id": 8561992,
    "category": "flat",
    "manager_id": 86998,
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ",
    "time": 1704076800,
}

#Пример успешного ответа от сервера

{
    "status_code": 200,
    "data": {
        "message": "Дата осмотра зарезервирована"
    },
    "message": "Спасибо! Мы записали Вас на указанное время",
    "success": true
}

#Пример ответа от сервера с ошибкой

{
    "status_code": 609,
    "error": true,
    "message": "Выбранная дата недоступна для записи"
}
ПараметрОписание
status_codeКод ответа сервера
errorУказание на наличие ошибки
successУказание на успешное выполнение запроса
messageОписание ошибки или сообщение об успешном выполнении запроса

#Описание возможных ошибок

КодСообщениеПричина
-Метод не поддерживаетсяИспользован метод, отличный от POST
603Укажите номер телефонаПоле phone отсутствует или имеет неверный формат
604Для резервирования времени нужно указать номер квартирыВ запросе отсутствуют и поле name, и поле flat_num
604Для резервирования времени нужно указать домПоле house_id отсутствует или равно нулю
606Не удалось найти покупателя по указанным даннымВ базе данных не найден активный контакт с указанным телефоном и (если передано) ФИО
607Не переданы дата и время осмотраПоле transfer_date отсутствует в запросе
607Не распознаны дата и время осмотраЗначение поля transfer_date не соответствует формату ISO 8601
608Запись в этот объект недоступна через API «Передача ключей»В указанном доме (поле house_id) включена настройка "Не выгружать объекты этого дома в API «Передача ключей»"
609Выбранная дата недоступна для записиУказанное время в указанном доме уже занято
610Указанный менеджер не найденУказанный менеджер не указан в настройке компании «Передача ключей: Сотрудники компании, ответственные за передачу квартир»
611Дата осмотра не может быть раньше даты готовностиУказанная дата для записи на осмотр является более ранней по отношению к указанной в системе MACRO дате готовности объекта к передаче (плановой или фактической)
612В указанное время все сотрудники занятыВсе менеджеры компании, ответственные за передачу ключей, заняты в указанное время указанной даты
613В указанное время менеджер занятУказанный менеджер занят в указанное время указанной даты
614Не удалось найти сделку по указанным даннымВ базе данных системы MACRO в указанном доме не найден объект в статусе «Сделка проведена» с номером и указанной категорией
501Не удалось зарезервировать указанную датуВнутренняя ошибка сервиса ReserveTransferTime при попытке зарезервировать время