# Типы ресурсов бронирования

Тип ресурса бронирования — категория ресурсов онлайн-записи, например специалисты, оборудование или помещения. Тип хранит настройки сообщений клиентам о записи: какие сообщения отправлять, когда и по какому шаблону.

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

## Операции

- [Создать тип ресурса](./booking-resource-types/create.md) — `POST /v1/booking-resource-types`
- [Список типов ресурсов](./booking-resource-types/list.md) — `GET /v1/booking-resource-types`
- [Получить тип ресурса](./booking-resource-types/get.md) — `GET /v1/booking-resource-types/:id`
- [Обновить тип ресурса](./booking-resource-types/update.md) — `PATCH /v1/booking-resource-types/:id`
- [Удалить тип ресурса](./booking-resource-types/delete.md) — `DELETE /v1/booking-resource-types/:id`

## Ключевые поля

| Поле | Описание |
|------|----------|
| `id` | Идентификатор типа. Список: [`GET /v1/booking-resource-types`](./booking-resource-types/list.md). Его передают в `typeId` при [создании ресурса бронирования](/docs/entities/booking-resources/create) |
| `code` | Символьный код, уникален среди типов портала. Обязателен при создании и в каждом обновлении |
| `name` | Название типа. Обязательно при создании |
| `is*NotificationOn` | Шесть переключателей сообщений клиенту: о записи, запрос подтверждения, напоминание, запрос отзыва, сообщение опоздавшему, сообщение об отмене |
| `senderCode` | Служба отправки сообщений клиенту, например `bitrix24` |

Полный список полей — [Получить тип ресурса](./booking-resource-types/get.md).

## Что нужно знать перед работой

1. **Сообщения клиентам включены по умолчанию.** Тип, созданный без переключателей `is*NotificationOn`, получает все шесть со значением `true`. Чтобы выключить сообщения клиентам, передайте при создании все шесть со значением `false`.
2. **Тело запроса плоское.** Поля передаются в корне JSON, без обёртки `fields`. Переключатели принимают `true` / `false` или строки `"Y"` / `"N"`, в ответе всегда приходит `true` или `false`.
3. **Обновление требует нового `code`.** `PATCH` без `code` или с текущим кодом отклоняется с `422 BITRIX_ERROR`. Чтобы сохранить код, меняйте поля двумя запросами: сначала с временным `code`, затем с прежним.
4. **Тип, к которому привязывали ресурс, не удаляется.** Отказ `422 BITRIX_ERROR` остаётся и после удаления всех ресурсов этого типа.
5. **Список возвращается целиком.** У списка нет постраничного вывода: все типы портала, до 500, приходят одним ответом. Фильтр по `id` не отбирает записи — для одного типа используйте [получение по `id`](./booking-resource-types/get.md).

## Типичный сценарий

1. Найдите подходящий тип: [`GET /v1/booking-resource-types`](./booking-resource-types/list.md). На портале уже есть встроенные типы, например `equipment` и `room`.
2. Если подходящего нет, создайте свой: [`POST /v1/booking-resource-types`](./booking-resource-types/create.md).
3. Создайте ресурс этого типа, передав `id` типа в `typeId`: [`POST /v1/booking-resources`](/docs/entities/booking-resources/create).
4. Задайте ресурсу рабочие часы: [`PUT /v1/booking-resources/:id/slots`](/docs/entities/booking-resources/slots).
5. Записывайте клиентов: [`POST /v1/bookings`](/docs/entities/bookings/create).

## Лимиты

| Лимит | Значение |
|-------|----------|
| Типов в ответе списка | до 500. Если на портале больше, список отвечает `502 BITRIX_RESPONSE_INVALID` |
| Постраничный вывод | нет, `limit` и `offset` не принимаются |
| Частота запросов | список — до 20 запросов в минуту на портал, остальные операции — до 60. Потолок делится между репликами платформы, действующее значение для ключа — в заголовке `x-ratelimit-limit` |
| Общий лимит API | см. [Лимиты и оптимизация](/docs/optimization) |

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

- [Ресурсы бронирования](/docs/entities/booking-resources)
- [Бронирования](/docs/entities/bookings)
- [Ошибки](/docs/errors)
