# Booking client types

A booking client type is a module and code pair that defines which CRM record can be a client of a booking or of a wait list record: a contact or a company. Use this reference to pass only allowed pairs in booking clients.

Bitrix24 API: `booking.v1.clientType.list`
Scope: `booking`

## Operations

- [List booking client types](./booking-client-types/list.md) — `GET /v1/booking-client-types`

## Key fields

| Field | Description |
|------|----------|
| `module` | Module the client type belongs to, for example `crm` |
| `code` | Client type code, for example `CONTACT` — contact, `COMPANY` — company |

## Before you start

1. **The reference is read-only.** Client types are defined by the Bitrix24 account. They cannot be created, changed or deleted through the API, so the only operation is the list.
2. **Pass the pair as a whole.** For the clients of a booking or a wait list record, the client type is set with the `type.module` and `type.code` fields. A pair that is not in the reference is rejected with `400 INVALID_PARAMS` before anything is written.
3. **Reading works with a read-only key.** The reference changes nothing in the Bitrix24 account.

## Typical scenario

1. Get the allowed pairs: [`GET /v1/booking-client-types`](./booking-client-types/list.md).
2. Find a contact or a company for the booking: [`GET /v1/contacts`](/docs/entities/contacts/list) or [`GET /v1/companies`](/docs/entities/companies/list).
3. Set the booking clients with a type from the reference: [`PUT /v1/bookings/:id/clients`](/docs/entities/bookings/clients-set).

## Limits

| Limit | Value |
|-------|----------|
| Pagination | none, the whole list arrives in one response |
| General API limit | see [Limits and optimization](/docs/optimization) |

## See also

- [Booking clients](/docs/entities/bookings/clients)
- [Booking wait list](/docs/entities/booking-wait-list)
- [Bookings](/docs/entities/bookings)
