
## Requisite fields

`GET /v1/requisites/fields`

Returns the full list of requisite fields. Vibecode schema fields are returned in camelCase; custom `UF_CRM_*` fields keep the original Bitrix24 case. Each requisite stores values only for the fields that exist in its preset.

## Parameters

| Parameter | Type | Description |
|----------|-----|---------|
| `presetId` (query) | number | Keep only the country-specific `rq*` fields of the given preset. Service fields, common-part fields, and `UF_CRM_*` are always returned. Preset ID — from [`GET /v1/requisite-presets`](/docs/entities/requisite-presets) |

## Examples

### curl — personal key

```bash
curl "https://vibecode.bitrix24.com/v1/requisites/fields" \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth application

```bash
curl "https://vibecode.bitrix24.com/v1/requisites/fields" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

### JavaScript — personal key

```javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/requisites/fields', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { success, data } = await res.json()
console.log('Total fields:', Object.keys(data.fields).length)
```

### JavaScript — OAuth application

```javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/requisites/fields', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { success, data } = await res.json()
```

## Response fields

| Field | Type | Description |
|------|-----|---------|
| `success` | boolean | Always `true` on success |
| `data` | object | Requisite schema and available operations |
| `data.fields` | object | Dictionary of requisite fields: each key is a field name and each value is an object describing it. Vibecode schema fields and custom fields are listed below |
| `data.relations` | object | Requisite relations. The `preset` relation describes the requisite preset and can be included in the response |
| `data.aggregatable` | array | Fields allowed in `groupBy` for requisite aggregation |
| `data.batch` | array | Write operations available in [batch calls](/docs/batch): `create`, `update`, `delete` |
| `data.include` | array | Relation names accepted by the `include` parameter: `preset` |

Each field in the `data.fields` dictionary is described by an object:

- **Vibecode schema fields** in camelCase: `{ type, readonly, label, description }`, where `label` and `description` are returned in English. Request headers do not switch the language. In the `list`, `get`, `create`, `update` and `search` responses the fields are returned under the camelCase name. Filtering and sorting use the same name, including `id`; the `ID` variant is accepted too.
- **Custom `UF_CRM_*` fields** in the original case: `{ type, readonly, label }`, where `label` is the field name in the language of the Bitrix24 account.

## Vibecode schema fields

Fields of requisite presets across countries. An international Bitrix24 account has two built-in presets, `Company` and `Person`; fields that belong to another country's preset — `rqInn`, `rqKpp`, `rqOgrn` and the like — stay in the schema and come back as `null`.

### Service

| Vibecode name | Bitrix24 | Type | RO | Description |
|----------|----------|-----|:--:|---------|
| `id` | `ID` | number | yes | Requisite ID |
| `entityTypeId` | `ENTITY_TYPE_ID` | number | | `3` — contact, `4` — company |
| `entityId` | `ENTITY_ID` | number | | Parent entity ID |
| `presetId` | `PRESET_ID` | number | | ID of the [requisite preset](/docs/entities/requisite-presets). Immutable after creation |
| `name` | `NAME` | string | | Name in the Bitrix24 interface |
| `code` | `CODE` | string | | Symbolic code for external integrations |
| `xmlId` | `XML_ID` | string | | External identifier for synchronization |
| `originatorId` | `ORIGINATOR_ID` | string | | Source system ID |
| `active` | `ACTIVE` | boolean | | Whether the requisite is active |
| `sort` | `SORT` | number | | Sort order. A lower value places the requisite higher |
| `createdAt` | `DATE_CREATE` | datetime | yes | Creation date |
| `updatedAt` | `DATE_MODIFY` | datetime | yes | Date of last modification |
| `createdBy` | `CREATED_BY_ID` | number | yes | Creator ID |
| `modifyBy` | `MODIFY_BY_ID` | number | yes | Last editor ID |
| `addressOnly` | `ADDRESS_ONLY` | boolean | | "Address only" flag |

### Legal entities

| Vibecode name | Bitrix24 | Type | Description |
|----------|----------|-----|---------|
| `rqName` | `RQ_NAME` | string | Full name |
| `rqCompanyName` | `RQ_COMPANY_NAME` | string | Short company name |
| `rqCompanyFullName` | `RQ_COMPANY_FULL_NAME` | string | Full company name |
| `rqCompanyId` | `RQ_COMPANY_ID` | string | Company identifier |
| `rqCompanyRegDate` | `RQ_COMPANY_REG_DATE` | date | Registration date |
| `rqDirector` | `RQ_DIRECTOR` | string | Director's full name |
| `rqAccountant` | `RQ_ACCOUNTANT` | string | Chief accountant's full name |
| `rqCeoName` | `RQ_CEO_NAME` | string | CEO's full name |
| `rqCeoWorkPos` | `RQ_CEO_WORK_POS` | string | CEO's position |
| `rqContact` | `RQ_CONTACT` | string | Contact person |
| `rqEmail` | `RQ_EMAIL` | string | Organization email |
| `rqPhone` | `RQ_PHONE` | string | Organization phone |
| `rqFax` | `RQ_FAX` | string | Fax |
| `rqInn` | `RQ_INN` | string | INN |
| `rqKpp` | `RQ_KPP` | string | KPP |
| `rqUsn` | `RQ_USN` | string | USN |
| `rqOgrn` | `RQ_OGRN` | string | OGRN |
| `rqOgrnip` | `RQ_OGRNIP` | string | OGRNIP (for sole proprietors) |
| `rqOkpo` | `RQ_OKPO` | string | OKPO |
| `rqOkved` | `RQ_OKVED` | string | OKVED |
| `rqOktmo` | `RQ_OKTMO` | string | OKTMO |
| `rqIfns` | `RQ_IFNS` | string | IFNS |
| `rqUsrle` | `RQ_USRLE` | string | Registration details in the register of legal entities |
| `rqTaxRegime` | `RQ_TAX_REGIME` | string | Tax regime. A value from a directory in the Bitrix24 account |
| `rqVatPayer` | `RQ_VAT_PAYER` | boolean | VAT payer |
| `rqVatId` | `RQ_VAT_ID` | string | VAT ID |
| `rqVatCertSer` | `RQ_VAT_CERT_SER` | string | VAT certificate series |
| `rqVatCertNum` | `RQ_VAT_CERT_NUM` | string | VAT certificate number |
| `rqVatCertDate` | `RQ_VAT_CERT_DATE` | date | VAT certificate date |
| `rqResidenceCountry` | `RQ_RESIDENCE_COUNTRY` | string | Country of registration |
| `rqBaseDoc` | `RQ_BASE_DOC` | string | Basis document |
| `rqBaseDocDate` | `RQ_BASE_DOC_DATE` | date | Basis document date |
| `rqBaseDocNum` | `RQ_BASE_DOC_NUM` | string | Basis document number |
| `rqRegCertNum` | `RQ_REG_CERT_NUM` | string | Registration certificate — number |
| `rqRegCertDate` | `RQ_REG_CERT_DATE` | date | Registration certificate — date |
| `rqStCertSer` | `RQ_ST_CERT_SER` | string | State registration certificate — series |
| `rqStCertNum` | `RQ_ST_CERT_NUM` | string | State registration certificate — number |
| `rqStCertDate` | `RQ_ST_CERT_DATE` | string | State registration certificate — date |
| `rqRegOrganization` | `RQ_REG_ORGANIZATION` | string | Registering authority |
| `rqStateReg` | `RQ_STATE_REG` | string | State registration |
| `rqMnplReg` | `RQ_MNPL_REG` | string | Municipal registration |
| `rqStampPresent` | `RQ_STAMP_PRESENT` | boolean | Stamp present |

### Individuals

| Vibecode name | Bitrix24 | Type | Description |
|----------|----------|-----|---------|
| `rqFirstName` | `RQ_FIRST_NAME` | string | First name |
| `rqLastName` | `RQ_LAST_NAME` | string | Last name |
| `rqSecondName` | `RQ_SECOND_NAME` | string | Middle name |
| `rqIdentType` | `RQ_IDENT_TYPE` | string | Identity document type. A value from a directory in the Bitrix24 account |
| `rqIdentDocType` | `RQ_IDENT_DOC` | string | Identity document name |
| `rqIdentDocSer` | `RQ_IDENT_DOC_SER` | string | Document series |
| `rqIdentDocNum` | `RQ_IDENT_DOC_NUM` | string | Document number |
| `rqIdentDocPersNum` | `RQ_IDENT_DOC_PERS_NUM` | string | Document personal number |
| `rqIdentDocDate` | `RQ_IDENT_DOC_DATE` | date | Issue date |
| `rqIdentDocIssuedBy` | `RQ_IDENT_DOC_ISSUED_BY` | string | Issued by |
| `rqIdentDocDepCode` | `RQ_IDENT_DOC_DEP_CODE` | string | Department code |

### International presets

Fields of country-specific presets. They are populated only on requisites that use the corresponding country preset — on all other requisites they are returned as `null`.

| Vibecode name | Bitrix24 | Country | Description |
|----------|----------|--------|---------|
| `rqEdrpou` | `RQ_EDRPOU` | 🇺🇦 Ukraine | EDRPOU |
| `rqDrfo` | `RQ_DRFO` | 🇺🇦 Ukraine | DRFO |
| `rqKbe` | `RQ_KBE` | 🇰🇿 Kazakhstan | KBe |
| `rqIin` | `RQ_IIN` | 🇰🇿 Kazakhstan | IIN |
| `rqBin` | `RQ_BIN` | 🇰🇿 Kazakhstan | BIN |
| `rqRegon` | `RQ_REGON` | 🇵🇱 Poland | REGON |
| `rqKrs` | `RQ_KRS` | 🇵🇱 Poland | KRS |
| `rqPesel` | `RQ_PESEL` | 🇵🇱 Poland | PESEL |
| `rqSiret` | `RQ_SIRET` | 🇫🇷 France | SIRET |
| `rqSiren` | `RQ_SIREN` | 🇫🇷 France | SIREN |
| `rqRcs` | `RQ_RCS` | 🇫🇷 France | RCS |
| `rqCapital` | `RQ_CAPITAL` | 🇫🇷 France | Capital |
| `rqCnpj` | `RQ_CNPJ` | 🇧🇷 Brazil | CNPJ — legal entities |
| `rqCpf` | `RQ_CPF` | 🇧🇷 Brazil | CPF — individuals |
| `rqLegalForm` | `RQ_LEGAL_FORM` | general | Legal form |

## Custom fields

`UF_CRM_*` — fields configured in the Bitrix24 account interface. Returned in the original case with an additional `label`.

## Available includes

The `GET /v1/requisites/fields` endpoint returns the list of available includes: `preset`.

Usage example: [Get requisite](/docs/entities/requisites/get#related-data).

More on includes: [Related data](/docs/includes).

## Response example

```json
{
  "success": true,
  "data": {
    "fields": {
      "id": { "type": "number", "readonly": true },
      "entityTypeId": { "type": "number", "readonly": false },
      "presetId": { "type": "number", "readonly": false },
      "rqInn": { "type": "string", "readonly": false },
      "rqKpp": { "type": "string", "readonly": false },
      "rqCompanyName": { "type": "string", "readonly": false },
      "rqDirector": { "type": "string", "readonly": false },
      "rqEdrpou": { "type": "string", "readonly": false },
      "rqRegon": { "type": "string", "readonly": false },
      "createdAt": { "type": "datetime", "readonly": true },
      "createdBy": { "type": "number", "readonly": true },

      "UF_CRM_1698325419": { "type": "string", "readonly": false, "label": "Internal code" }
    },
    "relations": {
      "preset": { "type": "one", "entity": "requisite-presets", "includable": true }
    },
    "aggregatable": ["rqInn", "rqKpp", "rqOgrn", "rqOgrnip", "rqOkpo", "rqVatId", "rqResidenceCountry", "rqCompanyName", "presetId", "entityTypeId", "active"],
    "batch": ["create", "update", "delete"],
    "include": ["preset"]
  }
}
```

A small subset of fields is shown. The full set depends on the presets and custom fields configured in the Bitrix24 account.

## Error response example

401 — no tokens:

```json
{
  "success": false,
  "error": {
    "code": "TOKEN_MISSING",
    "message": "API key has no OAuth tokens configured"
  }
}
```

## Errors

| HTTP | Code | Description |
|------|-----|---------|
| 400 | `INVALID_PRESET_ID` | The provided `presetId` is not a positive integer |
| 403 | `SCOPE_DENIED` | API key does not have the `crm` scope |
| 401 | `TOKEN_MISSING` | API key has no configured tokens |
| 429 | `RATE_LIMITED` | Rate limit exceeded: 300 requests per minute per portal. All API keys of the portal share one limit. The current limit is returned in the `x-ratelimit-limit` header. Retry after the delay in the `Retry-After` header |

For the full list of common API errors, see [Errors](/docs/errors).

## Known specifics

**All active presets in one response.** Without the `presetId` parameter, the method returns fields from all active presets of the Bitrix24 account, including country presets. On an individual requisite only the fields of its preset are filled; the rest are returned as `null`.

**Empty values are normalized.** For string, number, date and datetime fields Vibecode converts `""` to `null` in the `list`, `get`, `create`, `update` and `search` responses. This does not affect the `fields` method — it returns only field metadata.

**The `label` on custom fields.** For `UF_CRM_*` fields a `label` is returned with the field name in the language of the Bitrix24 account. For Vibecode schema fields `label` and `description` are returned in English.

## See also

- [Create requisite](/docs/entities/requisites/create)
- [List requisites](/docs/entities/requisites/list)
- [Entity API](/docs/entity-api)
- [Limits and optimization](/docs/optimization)
