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

Terminal
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

Terminal
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

javascript
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

javascript
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

JSON
{
  "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:

JSON
{
  "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.

See also