Сценарий записи
Ниже приведён сценарий, проверенный на тестовом аккаунте 26.09.2026 (версия v12.113.0). Все запросы содержат заголовки Authorization: Bearer … и Workspace: …, базовый адрес https://my.booknow.ru/api/public/v2.
1. Справочники
GET /locations → филиалы (uuid, название, адрес, часовой пояс). Дальше по локации: GET /locations/{locationUuid}/services и GET /locations/{locationUuid}/staffers. Услуга требуется для запроса слотов и создания записи, сотрудник — если не используется автоматическое распределение.
2. Свободные слоты
GET /locations/{locationUuid}/time-slots?service_uuid=…&range_start=2026-09-29&range_end=2026-10-03 (не больше 90 дней). Ответ по дням:
{ "today": "2026-09-26", "timezone": "Europe/Moscow", "currency": "RUB",
"dates": [ { "date": "2026-09-29",
"slots": [ { "start": "09:00", "start_formatted": 32400, "end": "12:30", "end_formatted": 45000, "quantity": 1, "price": 0, "price_formatted": "0,00 ₽" } ],
"intervals": [ { "start": "09:00", "start_formatted": 32400, "end": "18:00", "end_formatted": 64800 } ] } ] }
start и end — местное время локации (или timezone из запроса), *_formatted — то же в секундах от начала суток. GET …/time-slots/next возвращает ближайшие дни со свободным временем без указания диапазона.
3. Создание записи
POST /bookings. Время передаётся в UTC: слот 09:00 по Москве это "reserved_on": "2026-09-29T06:00:00Z".
{ "reserved_on": "2026-09-29T06:00:00Z",
"location_uuid": "28929ff4-…", "service_uuid": "ebc2b7ab-…", "staffer_uuid": "e4cba138-…",
"customer_phone": "+79990000001", "customer_first_name": "Тест",
"booking_comment": "Комментарий клиента", "booking_callback": false, "source": "site" }
Ответ 201 с полной записью: uuid, start_time (UTC), start_time_local, status, customer, order. Клиент определяется по номеру телефона; если такого клиента нет, он создаётся.
booking_callback. В этом случае возвращается ответ 422 с именем поля в errors.4. Изменения
PUT /bookings/{uuid}/rescheduleс{ "reserved_on": "2026-09-30T06:00:00Z" }— перенос; вебхукиbooking-updatedиbooking-rescheduled.PUT /bookings/{uuid}/statusс{ "status_uuid": "…" }— один из статусовGET /bookings/statuses.POST /bookings/{uuid}/public_notesс{ "value": "текст" }— публичная заметка; вебхук при этом не отправляется.PUT /bookings/{uuid}/staffer,PUT /bookings/{uuid}/services— смена сотрудника и услуги.
5. Завершение или отмена
PUT /bookings/{uuid}/status/complete с { "account_uuid": "…", "paid_amount": 0 } — визит состоялся, оплата зачисляется на счёт из GET /locations/{locationUuid}/accounts; вебхук booking-succeeded.
PUT /bookings/{uuid}/status/cancel с необязательной причиной { "cancel_reason": "canceled" } — допустимые значения canceled, didnt_come, postponed, wrong_order, spam, other, abandoned, rescheduled, not_confirmed; вебхук booking-canceled.
Полные схемы запросов и ответов — в API reference.