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

Записать из листа ожидания

POST /v1/booking-wait-list/:id/booking

Создаёт бронь по записи листа ожидания: клиенты записи переходят в новую бронь, а сама запись удаляется из листа.

Поля передаются в корне JSON, без обёртки fields. Сообщения клиенту о записи зависят от переключателей is*NotificationOn ресурса бронирования.

Параметры

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

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

Поле Тип Обяз. Описание
resourceIds number[] да Идентификаторы ресурсов, которые резервирует бронь. Массив не может быть пустым. Список: GET /v1/booking-resources
datePeriod.from.timestamp number да Начало брони, Unix-время в секундах
datePeriod.from.timezone string да Часовой пояс начала в формате IANA, например Europe/Moscow
datePeriod.to.timestamp number да Окончание брони, Unix-время в секундах. Должно быть позже начала
datePeriod.to.timezone string да Часовой пояс окончания в формате IANA

Других полей тело не принимает. Название и описание брони задаёт изменение бронирования.

Примеры

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/booking-wait-list/27/booking" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "resourceIds": [49],
    "datePeriod": {
      "from": { "timestamp": 1795158000, "timezone": "Europe/Moscow" },
      "to": { "timestamp": 1795161600, "timezone": "Europe/Moscow" }
    }
  }'

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/booking-wait-list/27/booking" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "resourceIds": [49],
    "datePeriod": {
      "from": { "timestamp": 1795158000, "timezone": "Europe/Moscow" },
      "to": { "timestamp": 1795161600, "timezone": "Europe/Moscow" }
    }
  }'

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/booking-wait-list/27/booking', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    resourceIds: [49],
    datePeriod: {
      from: { timestamp: 1795158000, timezone: 'Europe/Moscow' },
      to: { timestamp: 1795161600, timezone: 'Europe/Moscow' },
    },
  }),
})

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

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/booking-wait-list/27/booking', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    resourceIds: [49],
    datePeriod: {
      from: { timestamp: 1795158000, timezone: 'Europe/Moscow' },
      to: { timestamp: 1795161600, timezone: 'Europe/Moscow' },
    },
  }),
})

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

Поля ответа

При успехе возвращается HTTP-статус 201 Created и карточка новой брони — та же, что у GET /v1/bookings/:id.

Поле Тип Описание
success boolean true при успехе
data.id number Идентификатор брони. Клиентов брони возвращает GET /v1/bookings/:id/clients
data.name string | null Название брони
data.description string | null Описание брони
data.resourceIds number[] Идентификаторы зарезервированных ресурсов
data.datePeriod object Период брони: from и to, у каждого timestamp и timezone

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

JSON
{
  "success": true,
  "data": {
    "datePeriod": {
      "from": {
        "timestamp": 1795158000,
        "timezone": "Europe/Moscow"
      },
      "to": {
        "timestamp": 1795161600,
        "timezone": "Europe/Moscow"
      }
    },
    "description": null,
    "id": 49,
    "name": null,
    "resourceIds": [
      49
    ]
  }
}

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

404 — записи листа ожидания с таким id нет, например она уже перенесена в бронь:

JSON
{
  "success": false,
  "error": {
    "code": "ENTITY_NOT_FOUND",
    "message": "Booking record not found"
  }
}

Ошибки

HTTP Код Описание
404 ENTITY_NOT_FOUND Записи листа ожидания с таким id нет, в том числе уже перенесённой в бронь. Сообщение Booking record not found
400 MISSING_REQUIRED_FIELDS Нет resourceIds или datePeriod, либо resourceIds — пустой массив. Сообщение resourceIds and datePeriod are required
400 INVALID_PARAMS В теле поле, кроме resourceIds и datePeriod. Сообщение Only resourceIds and datePeriod can be written
400 INVALID_PARAMS В resourceIds не целое положительное число. Сообщение resourceIds must contain positive integers
400 INVALID_PARAMS У from или to нет timestamp или timezone. Сообщение datePeriod requires from/to with a finite timestamp and timezone
400 INVALID_PARAMS Часовой пояс не в формате IANA. Сообщение timezone must be an IANA timezone
400 INVALID_PARAMS Тело — не JSON-объект. Сообщение Body must contain resourceIds and datePeriod
400 INVALID_PARAMS id — не целое положительное число. Сообщение id must be a canonical positive safe integer
422 BITRIX_ERROR Ресурса из resourceIds нет. Сообщение Some resources were not found с номерами ресурсов, b24Code 1038
422 BITRIX_ERROR Окончание брони раньше начала. Сообщение Invalid date period
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 — Ошибки.

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

Отклонённый запрос запись не удаляет. При ответе 400 или 422 запись остаётся в листе ожидания, перенос можно повторить.

Заметка в карточке брони не возвращается. Заметка записи переходит в бронь, но в карточке брони для неё нет поля, а description остаётся null. При обратном переносе брони в лист ожидания заметка возвращается в новую запись листа.

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