For AI agents: markdown of this page — /docs-content-en/entities/requisites/update.md documentation index — /llms.txt
Update requisite
PATCH /v1/requisites/:id
Updates fields of an existing requisite. Pass only the fields you need to change. Full list — GET /v1/requisites/fields.
Frequently updated fields
| Parameter | Type | Description |
|---|---|---|
name |
string | Requisite name in the Bitrix24 interface |
active |
boolean | Whether the requisite is active |
sort |
number | Sort order |
rqName |
string | Full name |
rqInn |
string | INN |
rqKpp |
string | KPP |
rqOgrn |
string | OGRN |
rqCompanyName |
string | Short legal-entity name |
rqDirector |
string | Director's full name |
rqAccountant |
string | Chief accountant's full name |
rqVatPayer |
boolean | VAT payer |
All fields are in camelCase, including international preset fields — rqEdrpou, rqKbe, rqRegon, rqSiret, rqCnpj.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id (path) |
number | yes | Requisite ID |
Examples
curl — personal key
curl -X PATCH "https://vibecode.bitrix24.com/v1/requisites/42" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rqInn": "1234567890",
"rqKpp": "123456789",
"rqDirector": "John Smith"
}'
curl — OAuth app
curl -X PATCH "https://vibecode.bitrix24.com/v1/requisites/42" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"rqInn": "1234567890",
"rqKpp": "123456789"
}'
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/requisites/42', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
rqInn: '1234567890',
rqKpp: '123456789',
rqDirector: 'John Smith',
}),
})
const { success, data } = await res.json()
JavaScript — OAuth app
const res = await fetch('https://vibecode.bitrix24.com/v1/requisites/42', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
rqInn: '1234567890',
rqKpp: '123456789',
}),
})
const { success, data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | Always true on success |
data |
object | The updated requisite with current field values |
data.id |
number | Requisite identifier |
data.updatedAt |
datetime | New modification date |
data.modifyBy |
number | ID of the user who performed the update |
The object contains all preset fields in camelCase — including unchanged ones. Unfilled fields — null. Full list — Requisite fields.
Response example
{
"success": true,
"data": {
"id": 42,
"entityTypeId": 4,
"entityId": 15,
"presetId": 1,
"name": "Primary requisite",
"active": true,
"sort": 500,
"rqName": "Acme LLC",
"rqInn": "1234567890",
"rqKpp": "123456789",
"rqOgrn": "1234567890123",
"rqDirector": "John Smith",
"updatedAt": "2026-04-19T15:00:00+00:00",
"modifyBy": 1
}
}
Error response example
404 — requisite not found:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "The Requisite with ID '999999999' is not found"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 404 | ENTITY_NOT_FOUND |
No requisite found with this ID |
| 403 | BITRIX_ACCESS_DENIED |
No access to the parent entity |
| 400 | INVALID_REQUEST |
Invalid fields |
| 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
You cannot change the preset. The presetId field is set at creation and cannot be changed by an update. If you need a different preset — create a new requisite and delete the old one.
You cannot move a requisite to another entity. entityTypeId and entityId are also immutable: the requisite stays bound to the contact or company it was created for.
Fields outside the preset are ignored. Values of fields that are not in the requisite preset are discarded. No error is raised, but the data is not saved either. To check the result — GET /v1/requisites/:id.
An empty value clears the field. To clear a field, pass an empty string "". This works only for the requisite's STRING fields — name, code, xmlId, originatorId and every rq* field except the ones listed below. For the numeric fields (entityTypeId, entityId, presetId, sort) and the boolean ones (active, addressOnly, rqVatPayer, rqStampPresent), an empty string does not clear the value — it is refused with 400 INVALID_PARAMS as a type mismatch: send null, or omit the field instead. For the date fields (rqCompanyRegDate, rqVatCertDate, rqBaseDocDate, rqRegCertDate, rqIdentDocDate), an empty string is not refused and still clears the field: Vibecode converts it to null before sending it to Bitrix24. In responses, Vibecode converts cleared strings to null so that empty values have a uniform format.