Что такое Вебхук
Вебхук — канал доставки уведомлений прямо в вашу CRM. Простометр отправляет HTTP POST-запрос с данными о площадях на указанный вами URL в момент изменения статусов.
Ваш сервер должен принять запрос и ответить {"status":"ok"} с HTTP 200 в течение 5 секунд. При ошибке доставки повтор произойдёт автоматически на следующем цикле.
Уведомление об изменениях площадей
Отправляется при активации, изменении или снятии площади с рынка.
{
"event": "batch_notification",
"timestamp": "2026-04-29T15:30:00+03:00",
"count": 3,
"owners": [
{
"owner_id": 1234,
"owner_name": "ООО Ромашка",
"owner_url": "https://prostometr.ru/abc12345",
"spaces": [
{
"event": "activated",
"id": 567,
"service_type": "rent",
"photos": ["https://prostometr.ru/foto/1234/567/f/maxi/photo1.jpg"],
"plans": [],
"data": {
"address_id": 42,
"address": "Москва, ул. Ленина 10 к2",
"city": "Москва",
"str_type": "ул.",
"street": "Ленина",
"dom": "10",
"korp": "2",
"str": null,
"floor": 3,
"floor_max": null,
"area": 85.5,
"rate": 120000,
"commission": 50,
"vat": "не облагается",
"lease_type": "прямая аренда",
"finishing": "с отделкой"
}
}
]
},
{
"owner_id": 5678,
"owner_name": "ИП Петров",
"owner_url": "https://prostometr.ru/xyz67890",
"spaces": [
{
"event": "deactivated",
"id": 568,
"service_type": "sale",
"data": { "address_id": 43, "address": "Москва, пр-т Мира 5", ... }
}
]
}
]
}
Поля корневого объекта
| Поле | Тип | Описание |
event | string | Всегда batch_notification |
timestamp | string | Время события в формате ISO 8601 |
count | int | Суммарное количество площадей по всем собственникам |
owners | array | Массив собственников (см. ниже) |
Поля объекта в owners[]
| Поле | Тип | Описание |
owner_id | int | ID собственника |
owner_name | string | Название организации |
owner_url | string | Ссылка на страницу собственника |
spaces | array | Площади этого собственника (см. ниже) |
Поля объекта в spaces[]
| Поле | Тип | Описание |
event | string | activated / changed / deactivated |
id | int | ID площади |
service_type | string | rent — аренда, sale — продажа |
photos | array | URL фотографий. Отсутствует при deactivated |
plans | array | URL планировок. Отсутствует при deactivated |
data.address_id | int | ID адреса — для группировки нескольких площадей одного здания |
data.address | string | Полный адрес одной строкой |
data.city | string|null | Город |
data.str_type | string|null | Тип улицы (ул., пр-т, пер. и т.д.) |
data.street | string|null | Улица |
data.dom | string|null | Номер дома |
data.korp | string|null | Корпус |
data.str | string|null | Строение |
data.floor | int|null | Этаж. Отрицательные: -1 = цоколь, -2 = подвал |
data.floor_max | int|null | Верхний этаж диапазона. Если не null — площадь занимает этажи от floor до floor_max |
data.area | float|null | Площадь, м² |
data.rate | float|null | Ставка: ₽/м²/г. для аренды, ₽ для продажи |
data.commission | float|null | Комиссия агента, % |
data.vat | string|null | НДС: "не облагается" / "5%" / "7%" / "22%" / "не включён". null если не задан |
data.lease_type | string|null | Тип договора: "прямая аренда" / "субаренда". Только для service_type: rent, иначе null |
data.finishing | string|null | Отделка: "с отделкой" / "без отделки". null если не задана |
Информационные уведомления
Отправляются при системных событиях (нехватка средств, предупреждения).
{
"event": "low_balance_subscription",
"timestamp": "2026-04-29T15:30:00+03:00"
}
Типы событий
| event | Когда отправляется |
low_balance_subscription | Не хватает средств на отправку уведомления |
low_balance_sub_alert | Средств на балансе может не хватить на следующую отправку уведомлений |
Минимальный обработчик (PHP)
<?php
$data = json_decode(file_get_contents('php://input'), true);
// обработка $data...
http_response_code(200);
header('Content-Type: application/json');
echo json_encode(['status' => 'ok']);