# Requisites

CRM requisite management: create, get, update, delete, filter. Requisites are always tied to a contact or company and hold legal information (name, INN/KPP/OGRN, director, accountant, etc.).

Bitrix24 API: `crm.requisite.*`
Scope: `crm`

## Operations

- [Create requisite](./requisites/create.md) — `POST /v1/requisites`
- [List requisites](./requisites/list.md) — `GET /v1/requisites`
- [Get requisite](./requisites/get.md) — `GET /v1/requisites/:id`
- [Update requisite](./requisites/update.md) — `PATCH /v1/requisites/:id`
- [Delete requisite](./requisites/delete.md) — `DELETE /v1/requisites/:id`
- [Search requisites](./requisites/search.md) — `POST /v1/requisites/search`
- [Requisite fields](./requisites/fields.md) — `GET /v1/requisites/fields`
- [Aggregate requisites](./requisites/aggregate.md) — `POST /v1/requisites/aggregate`

## Key fields

| Field | Description |
|------|---------|
| `entityTypeId` | Parent entity type: `3` — contact, `4` — company |
| `entityId` | ID of the contact or company the requisite belongs to |
| `presetId` | ID of the [requisite preset](/docs/entities/requisite-presets) (defines the set of available fields, immutable after creation) |
| `rqName` / `rqInn` / `rqKpp` / `rqOgrn` | Core legal-entity requisites |
| `rqCompanyName` / `rqCompanyFullName` / `rqDirector` / `rqAccountant` | Name and management |
| `rqOkpo` / `rqOkved` / `rqOktmo` / `rqVatPayer` | Classifiers and VAT |

Full field list — [`GET /v1/requisites/fields`](./requisites/fields.md).

## What to know before you start

1. **The preset defines the field set.** The "LLC" preset has one set of fields (INN, KPP, OGRN, director), the "Individual" preset has another (full name, passport, date of birth).
2. **Creation needs 3 fields:** `entityTypeId`, `entityId`, `presetId`. `presetId` comes from [`GET /v1/requisite-presets`](/docs/entities/requisite-presets) — programmatically creating a requisite no longer requires copying an ID from the Bitrix24 UI.
3. **Schema fields are returned in camelCase.** This includes international preset fields — `rqEdrpou`, `rqKbe`, `rqRegon`, `rqSiret`, `rqCnpj`. Filtering and sorting use the camelCase name. Custom `UF_CRM_*` fields are returned in the original Bitrix24 case. See [Requisite fields](./requisites/fields.md). To get only the fields of your preset — add `?presetId=N` to `GET /v1/requisites/fields`.

## Related entities

Working fully with requisites (invoices, contracts, print forms) requires companion entities — all wrapped in the Vibecode API:

| Entity | Endpoint | Purpose |
|----------|----------|-----------|
| [Requisite presets](/docs/entities/requisite-presets) | `GET /v1/requisite-presets` | Requisite templates ("LLC", "Sole proprietor", "Individual", "Foreign legal entity"). The source of `presetId` for creating a requisite. The preset page lists its fields. |
| [Bank details](/docs/entities/bank-details) | `GET /v1/bank-details?entityTypeId=8&entityId=:requisiteId` | Account number, BIC, correspondent account, SWIFT, IBAN. Without them you cannot issue a payment invoice. |
| [Addresses](/docs/entities/addresses) | `GET /v1/addresses?entityTypeId=8&entityId=:requisiteId` | Legal, actual, postal, delivery. Composite key `(typeId, entityTypeId, entityId)`. |
| [Requisite links](/docs/entities/requisite-links) | `POST /v1/requisite-links` | Binding a specific requisite (and optionally a bank) to an invoice/quote. Needed by multi-requisite companies. |
| Custom UF fields | `POST /v1/userfields/requisites` | UF_CRM_* fields on requisites — add, change, delete. |

## Typical scenario

1. Find a contact or company: [`GET /v1/contacts`](/docs/entities/contacts) / [`GET /v1/companies`](/docs/entities/companies).
2. View its requisites: [`GET /v1/requisites?filter[entityTypeId]=4&filter[entityId]=15`](./requisites/list.md).
3. Create a new one or update an existing one: [`POST /v1/requisites`](./requisites/create.md) / [`PATCH /v1/requisites/:id`](./requisites/update.md).

## Limits

| Limit | Value |
|-------|----------|
| Max records per request | 5000 (`limit ≤ 5000`) |
| Auto-pagination | enabled at `limit > 50` |
| `offset` on large result sets | `limit ≤ 500` recommended at `offset ≥ 2500` |
| Batch requests | up to 50 operations in [`POST /v1/batch`](/docs/batch) |
| Rate limit | shared across the Vibecode API — see [Limits and optimization](/docs/optimization) |

## See also

- [Entity API](/docs/entity-api) — general principles of working with entities
- [Filtering syntax](/docs/filtering)
- [Batch](/docs/batch) — bulk operations
- [Entities reference](/docs/entities-index)
