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

Ресурсы бронирования

Ресурс бронирования — специалист, помещение или оборудование, на которое клиенты записываются онлайн. Каждый ресурс относится к одному типу, а бронирование резервирует один или несколько ресурсов.

Битрикс24 API: booking.v1.resource.* Скоуп: booking

Создание: Ресурсы бронирования

POST /v1/booking-resources

Создаёт ресурс бронирования — специалиста, помещение или оборудование, на которое клиенты записываются онлайн.

Поля передаются в корне JSON, без обёртки fields.

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

Минимум для создания — name и typeId.

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

Все шесть сообщений клиентам по умолчанию включены. Чтобы ресурс их не отправлял, передайте false в каждом из шести полей is…NotificationOn, как в примерах ниже.

Примеры

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/booking-resources" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Кабинет 3",
    "description": "Приём по записи",
    "typeId": 1,
    "isInfoNotificationOn": false,
    "isConfirmationNotificationOn": false,
    "isReminderNotificationOn": false,
    "isFeedbackNotificationOn": false,
    "isDelayedNotificationOn": false,
    "isCancellationNotificationOn": false
  }'

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/booking-resources" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Кабинет 3",
    "description": "Приём по записи",
    "typeId": 1,
    "isInfoNotificationOn": false,
    "isConfirmationNotificationOn": false,
    "isReminderNotificationOn": false,
    "isFeedbackNotificationOn": false,
    "isDelayedNotificationOn": false,
    "isCancellationNotificationOn": false
  }'

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/booking-resources', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Кабинет 3',
    description: 'Приём по записи',
    typeId: 1,
    isInfoNotificationOn: false,
    isConfirmationNotificationOn: false,
    isReminderNotificationOn: false,
    isFeedbackNotificationOn: false,
    isDelayedNotificationOn: false,
    isCancellationNotificationOn: false,
  }),
})

const { data } = await res.json()
console.log('Resource ID:', data.id)

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/booking-resources', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Кабинет 3',
    description: 'Приём по записи',
    typeId: 1,
    isInfoNotificationOn: false,
    isConfirmationNotificationOn: false,
    isReminderNotificationOn: false,
    isFeedbackNotificationOn: false,
    isDelayedNotificationOn: false,
    isCancellationNotificationOn: false,
  }),
})

const { data } = await res.json()
console.log('Resource ID:', data.id)

Поля ответа

При успехе возвращается HTTP-статус 201 Created.

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

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

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 — типа ресурса с таким typeId нет:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Resource type with id 999999 does not exist",
    "b24Code": "1013"
  }
}

Ошибки

HTTP Код Описание
HTTP400 КодMISSING_REQUIRED_FIELDS ОписаниеНе передан name. Сообщение name is required
HTTP400 КодREADONLY_FIELD ОписаниеВ теле передан id. Сообщение id is read-only
HTTP400 КодINVALID_PARAMS ОписаниеПустое тело. Сообщение Provide a non-empty object of fields
HTTP400 КодINVALID_PARAMS ОписаниеПоле не из таблицы «Поля запроса (body)». Сообщение Unknown booking field
HTTP400 КодINVALID_PARAMS ОписаниеЗначение поля — объект или массив. Сообщение Fields must contain scalar values
HTTP422 КодBITRIX_ERROR ОписаниеТипа ресурса с таким typeId нет, b24Code 1013
HTTP422 КодBITRIX_ERROR ОписаниеНе передан typeId. Сообщение ResourceType not found, b24Code 1006
HTTP422 КодBITRIX_ERROR ОписаниеНедопустимое значение шаблона, например в templateTypeInfo. Сообщение Invalid value of the templateTypeInfo field
HTTP401 КодMISSING_API_KEY ОписаниеНе передан X-Api-Key
HTTP401 КодTOKEN_MISSING ОписаниеУ ключа нет токенов Битрикс24
HTTP403 КодSCOPE_DENIED ОписаниеУ ключа нет скоупа booking
HTTP403 КодWRITE_BLOCKED_READONLY_KEY ОписаниеКлюч в режиме «Только чтение»
HTTP429 КодRATE_LIMITED ОписаниеПревышена частота запросов. Действующий потолок — в заголовке x-ratelimit-limit
HTTP502 КодBITRIX_RESPONSE_INVALID ОписаниеБитрикс24 вернул ответ неожиданной формы. Если это случилось при перечитывании карточки после записи, ресурс уже создан — найдите его в списке перед повтором

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

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