# Клиенты листа ожидания

Клиенты записи листа ожидания — контакты и компании CRM, которые ждут свободного времени. Методы подраздела читают клиентов записи, заменяют их набор целиком и снимают всех клиентов одним вызовом.

Битрикс24 API: `booking.v1.waitList.client.list`, `booking.v1.waitList.client.set`, `booking.v1.waitList.client.unset`
Скоуп: `booking`

## Операции

- [Список клиентов записи листа ожидания](./clients-list.md) — `GET /v1/booking-wait-list/:id/clients`
- [Заменить клиентов записи листа ожидания](./clients-set.md) — `PUT /v1/booking-wait-list/:id/clients`
- [Снять клиентов записи листа ожидания](./clients-delete.md) — `DELETE /v1/booking-wait-list/:id/clients`

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

Поля одного клиента. Они приходят в каждом элементе ответа всех трёх методов и передаются в теле замены.

| Поле | Описание |
|------|----------|
| `id` | ID контакта или компании CRM. Списки: [`GET /v1/contacts`](/docs/entities/contacts/list), [`GET /v1/companies`](/docs/entities/companies/list) |
| `type.module` | Модуль типа клиента: `crm` |
| `type.code` | Код типа клиента: `CONTACT` — контакт, `COMPANY` — компания. Справочник: [`GET /v1/booking-client-types`](/docs/entities/booking-client-types) |

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

1. **Тип клиента — из справочника.** Пару `type.module` и `type.code` берите из [`GET /v1/booking-client-types`](/docs/entities/booking-client-types). Пара не из справочника отклоняется кодом `400 INVALID_PARAMS` до записи.
2. **Замена, а не добавление.** Замена записывает переданный набор целиком: клиенты, которых нет в запросе, снимаются с записи. Пустой массив `clients` снимает всех.
3. **Клиенты проверяются до записи.** Для несуществующего контакта или компании приходит `404 ENTITY_NOT_FOUND`, и клиенты записи не меняются.
4. **Ответ записи — перечитанный список.** Замена и снятие после записи заново читают клиентов записи листа ожидания и возвращают их.
5. **Ключ только для чтения читает клиентов.** Замена и снятие с таким ключом отвечают `403 WRITE_BLOCKED_READONLY_KEY`.

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

1. Найти запись листа ожидания: [`GET /v1/booking-wait-list`](/docs/entities/booking-wait-list/list) или создать новую: [`POST /v1/booking-wait-list`](/docs/entities/booking-wait-list/create).
2. Найти контакт или компанию: [`GET /v1/contacts`](/docs/entities/contacts/list), [`GET /v1/companies`](/docs/entities/companies/list).
3. Записать клиентов: [`PUT /v1/booking-wait-list/:id/clients`](./clients-set.md).
4. Проверить клиентов: [`GET /v1/booking-wait-list/:id/clients`](./clients-list.md).

## Лимиты

| Лимит | Значение |
|-------|----------|
| Пагинация списка | Нет: [`GET /v1/booking-wait-list/:id/clients`](./clients-list.md) возвращает всех клиентов записи за один вызов |
| Частота запросов | Общие лимиты API — [Лимиты и оптимизация](/docs/optimization) |
| Время замены | Растёт с числом клиентов: до записи каждый контакт и компания проверяются по одному. Замена 55 контактов занимает около 30 секунд — [Клиентский таймаут](/docs/optimization#клиентский-таймаут) |

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

- [Лист ожидания записи](/docs/entities/booking-wait-list)
- [Типы клиентов записи](/docs/entities/booking-client-types)
- [Клиенты брони](/docs/entities/bookings/clients)
- [Контакты](/docs/entities/contacts)
- [Компании](/docs/entities/companies)
