# Requisites

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

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

## Operations

- [Look up by number](./requisites/lookup.md) — `POST /v1/requisites/lookup`


- [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 — present in the schema, but filled only when the account preset defines them |
| `rqCompanyName` / `rqCompanyFullName` / `rqDirector` / `rqAccountant` | Name and management |
| `rqOkpo` / `rqOkved` / `rqOktmo` / `rqVatPayer` | Classifiers and VAT — likewise part of the schema, filled only when the account preset defines them |

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

## What to know before you start

1. **The preset defines the field set.** On an international Bitrix24 account there are two built-in presets: `Company` (company name, VAT ID, address) and `Person` (an individual). Which presets exist and which fields each one defines depend on the account country.
2. **Creating a requisite requires 4 fields:** `entityTypeId`, `entityId`, `presetId`, `name`. `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. The one exception is ordering by the identifier: it takes the upper-case name `ID`. 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 with requisites end to end (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 presets — `Company` and `Person` on an international account; the exact set depends on the account country. The source of `presetId` for creating a requisite. The preset page describes the preset's field composition. |
| [Bank details](/docs/entities/bank-details) | `GET /v1/bank-details?filter[entityId]=:requisiteId` | Current account, BIC, correspondent account, SWIFT, IBAN. Without them, you cannot issue an invoice. |
| [Addresses](/docs/entities/addresses) | `GET /v1/addresses?filter[entityTypeId]=8&filter[entityId]=:requisiteId` | Legal, actual, postal and delivery addresses. 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 or a quote. Needed by companies with several requisites. |
| 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 |
|-------|----------|
| Maximum records per request | 5000 (`limit ≤ 5000`) |
| Auto-pagination | enabled when `limit > 50` |
| `offset` on large selections | `limit ≤ 500` recommended when `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

- [Company requisites for document generation](/docs/recipes/document-requisites)
- [Entity API](/docs/entity-api)
- [Filtering syntax](/docs/filtering)
- [Batch](/docs/batch)
- [API reference](/docs/api-reference)
