# Requisite links

A requisite link specifies which company requisite and which bank account to use in an invoice, a quote or a deal. Needed by companies that have several requisites. A link has no separate numeric `id`: it is defined by a pair of values — the owner type `entityTypeId` and its ID `entityId`.

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

## Operations

- [Register a link](./requisite-links/register.md) — `POST /v1/requisite-links`
- [List links](./requisite-links/list.md) — `GET /v1/requisite-links`
- [Get a link](./requisite-links/get.md) — `GET /v1/requisite-links/:entityTypeId/:entityId`
- [Update a link](./requisite-links/update.md) — `PATCH /v1/requisite-links/:entityTypeId/:entityId`
- [Delete a link](./requisite-links/unregister.md) — `DELETE /v1/requisite-links/:entityTypeId/:entityId`
- [Search links](./requisite-links/search.md) — `POST /v1/requisite-links/search`
- [Link fields](./requisite-links/fields.md) — `GET /v1/requisite-links/fields`

## Key fields

| Field | Type | Description |
|------|-----|---------|
| `entityTypeId` | number | Link owner type — deal, invoice, quote, smart process item. For the list of values, see [Link fields](./requisite-links/fields.md) |
| `entityId` | number | Owner ID |
| `requisiteId` | number | ID of the client requisite to link, `0` — do not link |
| `bankDetailId` | number | ID of the client bank detail to link, `0` — do not link |
| `mcRequisiteId` | number | ID of your company's requisite, `0` — do not link |
| `mcBankDetailId` | number | ID of your company's bank detail, `0` — do not link |

Full list of fields — [`GET /v1/requisite-links/fields`](./requisite-links/fields.md).

## What to know before you start

1. **A link has no separate numeric `id`.** A link is defined by the owner pair — `entityTypeId` and `entityId`. The get, update and delete operations use them in the path, while the register operation passes them in the body.
2. **Registration requires all six fields.** `entityTypeId`, `entityId`, `requisiteId`, `bankDetailId`, `mcRequisiteId`, `mcBankDetailId` — pass `0` for the ones you do not want to link.
3. **`0` means no binding, not an object with ID zero.** A link whose four identifiers are all `0` is a registered link with no bindings at all. It differs from a missing link: a get request for a missing pair returns `404`.
4. **The owner is not limited to a deal or an invoice.** The same field set works for quotes and smart process items. For the list of `entityTypeId` values, see [Link fields](./requisite-links/fields.md).
5. **The client requisite must belong to the deal's client.** You can link `requisiteId` to a deal only if the deal's selected contact or company owns this requisite. Your own company requisites do not depend on the deal's client.
6. **Links are accessed through their own routes.** The owner pair instead of a numeric `id` does not fit the common Entity API shape, so the operations go through the `/v1/requisite-links/...` paths — one call per link. The `requisite-links` entity does not participate in the combined [`POST /v1/batch`](/docs/batch): such a call is rejected before it reaches Bitrix24, with the `UNKNOWN_ENTITY` code in `data.errors` under the call identifier. If the batch contains other working calls, the response stays `200`, and `400` is returned only when all of them are rejected.

## Related entities

| Entity | Endpoint | Purpose |
|----------|----------|-----------|
| Requisites | `GET /v1/requisites` | Source of `requisiteId` for the link. |
| Bank details | `GET /v1/bank-details` | Source of `bankDetailId` for the link. |
| Requisite presets | `GET /v1/requisite-presets` | Field-set template for a requisite. |

## Typical scenario

1. Get the requisite of the client company: [`GET /v1/requisites?filter[entityTypeId]=4&filter[entityId]=15`](./requisites/list.md).
2. Get its bank detail: [`GET /v1/bank-details`](./bank-details/list.md).
3. Register a link for an invoice or a deal: [`POST /v1/requisite-links`](./requisite-links/register.md) with `requisiteId` and `bankDetailId`.

## Limits

| Limit | Value |
|-------|----------|
| Maximum records per request | 5000 (`limit ≤ 5000`) |
| Auto-pagination | enabled when `limit > 50` |
| 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)
