For AI agents: markdown of this page — /docs-content-en/entities/requisites.md documentation index — /llms.txt
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
Create requisite
POST /v1/requisites
Creates a new requisite and binds it to a CRM contact or company.
Required fields
Bitrix24 requires four fields to create a requisite:
| Field | Type | Allowed values | Description |
|---|---|---|---|
entityTypeId |
number | 3 (contact), 4 (company) |
Parent entity type |
entityId |
number | any existing ID | Parent entity ID. Lookup: GET /v1/contacts or GET /v1/companies |
presetId |
number | any existing preset ID | ID of the requisite preset (defines the field set). Source: GET /v1/requisite-presets |
name |
string | non-empty string | Requisite name. Without it Bitrix24 rejects the creation: 422 BITRIX_ERROR "Required field "Name" is not filled" |
Popular fields
All fields in camelCase. Full list — GET /v1/requisites/fields.
Common
| Parameter | Type | Default | Description |
|---|---|---|---|
active |
boolean | true |
Whether the requisite is active |
sort |
number | 500 |
Sort order (lower values come first) |
code / xmlId / originatorId |
string | — | External identifiers for synchronization |
addressOnly |
boolean | false |
"Address only" flag (for address directories) |
Legal entities
| Parameter | Type | Description |
|---|---|---|
rqName |
string | Full name |
rqCompanyName |
string | Short name |
rqCompanyFullName |
string | Full legal-entity name |
rqCompanyRegDate |
date | Registration date |
rqInn |
string | INN |
rqKpp |
string | KPP |
rqOgrn |
string | OGRN |
rqOgrnip |
string | OGRNIP (for sole proprietors) |
rqOkpo / rqOkved / rqOktmo |
string | Classifiers |
rqDirector |
string | Director's full name |
rqAccountant |
string | Chief accountant's full name |
rqCeoName / rqCeoWorkPos |
string | Head's full name and position |
rqContact / rqEmail / rqPhone / rqFax |
string | Organization contacts |
rqVatPayer |
boolean | VAT payer |
rqVatId |
string | VAT ID (foreign) |
rqBaseDoc |
string | Document the activity is based on (for example, "Charter") |
rqResidenceCountry |
string | Country of registration |
Individuals
| Parameter | Type | Description |
|---|---|---|
rqFirstName / rqLastName / rqSecondName |
string | First name / Last name / Patronymic |
rqIdentDocType |
string | Identity document name |
rqIdentDocSer / rqIdentDocNum |
string | Document series / number |
rqIdentDocDate |
date | Issue date |
rqIdentDocIssuedBy |
string | Issued by |
rqIdentDocDepCode |
string | Department code |
International presets
Fields of other countries' presets — rqEdrpou, rqKbe, rqRegon, rqSiret, rqCnpj — are passed in camelCase, like the other schema fields. Fill them on requisites of the corresponding country preset.
Examples
curl — personal key
curl -X POST "https://vibecode.bitrix24.com/v1/requisites" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"entityTypeId": 4,
"entityId": 15,
"presetId": 1,
"name": "Primary",
"rqName": "Acme LLC",
"rqInn": "1234567890",
"rqKpp": "123456789",
"rqOgrn": "1234567890123",
"rqCompanyName": "Acme",
"rqDirector": "John Smith",
"rqVatPayer": true
}'
curl — OAuth app
curl -X POST "https://vibecode.bitrix24.com/v1/requisites" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"entityTypeId": 4,
"entityId": 15,
"presetId": 1,
"name": "Primary",
"rqName": "Acme LLC",
"rqInn": "1234567890"
}'
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/requisites', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
entityTypeId: 4,
entityId: 15,
presetId: 1,
name: 'Primary',
rqName: 'Acme LLC',
rqInn: '1234567890',
rqKpp: '123456789',
rqOgrn: '1234567890123',
rqCompanyName: 'Acme',
rqDirector: 'John Smith',
rqVatPayer: true,
}),
})
const { success, data } = await res.json()
console.log('Created requisite ID:', data.id)
JavaScript — OAuth app
const res = await fetch('https://vibecode.bitrix24.com/v1/requisites', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
entityTypeId: 4,
entityId: 15,
presetId: 1,
name: 'Primary',
rqName: 'Acme LLC',
rqInn: '1234567890',
}),
})
const { success, data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | Always true on success |
data |
object | The created requisite |
data.id |
number | New record identifier |
data.entityTypeId / data.entityId / data.presetId |
number | Passed values |
data.name |
string | null | Requisite name |
data.active |
boolean | Whether the requisite is active (true by default) |
data.sort |
number | Sort order (500 by default) |
data.createdAt / data.updatedAt |
datetime | Equal at creation |
data.createdBy |
number | Creator ID |
data.modifyBy |
number | null | null right after creation |
The response contains all requisite preset fields in camelCase. Unfilled fields — null. Full field list — Requisite fields.
Response example
HTTP status: 201 Created
{
"success": true,
"data": {
"id": 42,
"entityTypeId": 4,
"entityId": 15,
"presetId": 1,
"name": "Primary",
"active": true,
"sort": 500,
"createdAt": "2026-04-19T14:30:00+00:00",
"updatedAt": "2026-04-19T14:30:00+00:00",
"createdBy": 1,
"modifyBy": null,
"rqName": "Acme LLC",
"rqInn": "1234567890",
"rqKpp": "123456789",
"rqOgrn": "1234567890123",
"rqCompanyName": "Acme",
"rqDirector": "John Smith",
"rqVatPayer": true,
"rqAccountant": null,
"rqCeoName": null,
"rqOkpo": null,
"rqOkved": null
}
}
Error response example
400 — presetId not specified:
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "PRESET_ID field value is not specified"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 422 | BITRIX_ERROR |
A required field is not specified — Bitrix24 responds with text like PRESET_ID is not defined or invalid / "Required field "Name" is not filled" |
| 422 | BITRIX_ERROR |
Bitrix24 rejected the value of one of the fields (for example, a nonexistent presetId) |
| 403 | ACCESS_DENIED |
No access to the parent company/contact |
| 403 | SCOPE_DENIED |
API key does not have the crm scope |
| 401 | TOKEN_MISSING |
API key has no configured tokens |
Full list of common API errors — Errors.
Known specifics
Fields not in the preset are ignored. If you pass a field that is not in the chosen preset, Bitrix24 silently ignores it — no error is raised, but the value is not saved either.
See also
- List requisites — get existing ones
- Requisite fields — full list
- Update requisite — change after creation
- Filtering syntax
- Batch — bulk creation
- Limits and optimization — rate limits