Для AI-агентов: markdown этой страницы — /docs-content/entities/booking-resources/update.md индекс документации — /llms.txt

Частичная правка: Ресурсы бронирования

PATCH /v1/booking-resources/:id

Изменяет переданные поля ресурса бронирования. Поля, которых нет в теле запроса, сохраняют прежние значения.

Поля передаются в корне JSON, без обёртки fields. Ресурс с заданными часами работы не изменяется — см. «Известные особенности».

Параметры

Параметр Тип Обяз. Описание
id (path) number да Идентификатор ресурса. Список: GET /v1/booking-resources

Поля запроса (body)

Все поля необязательны, но тело не может быть пустым.

Поле Тип Обяз. Описание
name string нет Название ресурса
description string | null нет Описание ресурса
typeId number нет Идентификатор типа ресурса. Список: GET /v1/booking-resource-types
isMain boolean | string нет Основной ресурс. true / false или "Y" / "N"
isInfoNotificationOn boolean | string нет Сообщение клиенту о записи. true / false или "Y" / "N"
isConfirmationNotificationOn boolean | string нет Запрос подтверждения записи
isReminderNotificationOn boolean | string нет Напоминание о записи
isFeedbackNotificationOn boolean | string нет Запрос отзыва
isDelayedNotificationOn boolean | string нет Сообщение клиенту, который опаздывает
isCancellationNotificationOn boolean | string нет Сообщение клиенту об отмене записи
senderCode string | null нет Служба отправки сообщений клиенту, например bitrix24
infoNotificationDelay number | null нет Через сколько секунд после записи отправить сообщение о ней
confirmationNotificationDelay number | null нет За сколько секунд до записи отправить первый запрос подтверждения
confirmationNotificationRepetitions number | null нет Сколько раз повторить запрос подтверждения, не считая первого
confirmationNotificationRepetitionsInterval number | null нет Интервал между повторами запроса подтверждения, в секундах
confirmationCounterDelay number | null нет За сколько секунд до записи неподтверждённая запись попадает в счётчик
reminderNotificationDelay number | null нет За сколько секунд до записи отправить напоминание. -1 — утром в день записи
delayedNotificationDelay number | null нет Через сколько секунд опоздания отправить сообщение клиенту
delayedCounterDelay number | null нет Через сколько секунд опоздания запись попадает в счётчик календаря
cancellationNotificationDelay number | null нет Задержка сообщения об отмене записи, в секундах
templateTypeInfo string нет Шаблон сообщения о записи: inanimate, animate, inanimate_long
templateTypeConfirmation string нет Шаблон запроса подтверждения: inanimate, animate, inanimate_long
templateTypeReminder string нет Шаблон напоминания. Значение одно — base
templateTypeFeedback string нет Шаблон запроса отзыва: inanimate, animate
templateTypeDelayed string нет Шаблон сообщения опоздавшему: inanimate, animate

Примеры

curl — личный ключ

Terminal
curl -X PATCH "https://vibecode.bitrix24.tech/v1/booking-resources/51" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description": "Приём по предварительной записи"}'

curl — OAuth-приложение

Terminal
curl -X PATCH "https://vibecode.bitrix24.tech/v1/booking-resources/51" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"description": "Приём по предварительной записи"}'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/booking-resources/51', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ description: 'Приём по предварительной записи' }),
})

const { data } = await res.json()
console.log(data.description)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/booking-resources/51', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ description: 'Приём по предварительной записи' }),
})

const { data } = await res.json()
console.log(data.description)

Поля ответа

Поле Тип Описание
success boolean true при успехе
data object Карточка ресурса после правки. Поля карточки — в разделе «Поля ответа» страницы Получить ресурс бронирования

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

JSON
{
  "success": true,
  "data": {
    "id": 51,
    "description": "Приём по предварительной записи",
    "typeId": 1,
    "isMain": true,
    "name": "Кабинет 3",
    "senderCode": "bitrix24",
    "isInfoNotificationOn": false,
    "isConfirmationNotificationOn": false,
    "isReminderNotificationOn": false,
    "isFeedbackNotificationOn": false,
    "isDelayedNotificationOn": false,
    "isCancellationNotificationOn": false,
    "infoNotificationDelay": null,
    "confirmationNotificationDelay": 86400,
    "confirmationNotificationRepetitions": null,
    "confirmationNotificationRepetitionsInterval": 10800,
    "confirmationCounterDelay": 10800,
    "reminderNotificationDelay": -1,
    "delayedNotificationDelay": 300,
    "delayedCounterDelay": 300,
    "cancellationNotificationDelay": 600,
    "templateTypeInfo": "inanimate",
    "templateTypeConfirmation": "inanimate",
    "templateTypeReminder": "base",
    "templateTypeFeedback": "inanimate",
    "templateTypeDelayed": "inanimate"
  }
}

Пример ответа при ошибке

422 — у ресурса заданы часы работы:

JSON
{
  "success": false,
  "error": {
    "code": "BOOKING_RESOURCE_SCHEDULE_CONFLICT",
    "message": "Bitrix24 resource.update removes work-hour slots. Explicitly remove the slots before editing this resource, then set the intended schedule again."
  }
}

Ошибки

HTTP Код Описание
404 ENTITY_NOT_FOUND Ресурса с таким id нет. Сообщение Booking record not found
422 BOOKING_RESOURCE_SCHEDULE_CONFLICT У ресурса заданы часы работы. Ресурс не изменён
422 BITRIX_ERROR Типа ресурса с таким typeId нет, b24Code 1013
422 BITRIX_ERROR Недопустимое значение шаблона, например в templateTypeInfo. Сообщение Invalid value of the templateTypeInfo field
400 INVALID_PARAMS id — не целое положительное число. Сообщение id must be a positive safe integer
400 INVALID_PARAMS Пустое тело. Сообщение Provide a non-empty object of fields
400 INVALID_PARAMS Поле не из таблицы «Поля запроса (body)». Сообщение Unknown booking field
400 INVALID_PARAMS Значение поля — объект или массив. Сообщение Fields must contain scalar values
400 READONLY_FIELD В теле передан id. Сообщение id is read-only
401 MISSING_API_KEY Не передан X-Api-Key
401 TOKEN_MISSING У ключа нет токенов Битрикс24
403 SCOPE_DENIED У ключа нет скоупа booking
403 WRITE_BLOCKED_READONLY_KEY Ключ в режиме «Только чтение»
429 RATE_LIMITED Превышена частота запросов. Действующий потолок — в заголовке x-ratelimit-limit
502 BITRIX_RESPONSE_INVALID Битрикс24 вернул ответ неожиданной формы. Если это случилось при перечитывании карточки после записи, изменения уже сохранены — проверьте ресурс через получение перед повтором

Полный список общих ошибок API — Ошибки.

Известные особенности

Ресурс с часами работы сначала освобождают от расписания. Правка ресурса стирает его часы работы, поэтому при заданных часах запрос отклоняется с 422 BOOKING_RESOURCE_SCHEDULE_CONFLICT и ресурс не меняется. Порядок такой: снимите часы через DELETE /v1/booking-resources/:id/slots, измените ресурс, затем задайте часы заново через PUT /v1/booking-resources/:id/slots. Наличие часов проверяется отдельным запросом перед правкой. Если часы задали параллельным запросом в промежутке между проверкой и правкой, правка их сотрёт, а оба запроса ответят успехом. Не задавайте часы одновременно с правкой ресурса и после правки сверяйте расписание через GET /v1/booking-resources/:id/slots.

Смотрите также