
## Requisite fields

`GET /v1/requisites/fields`

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

## Examples

### curl — personal key

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

### curl — OAuth app

```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 app

```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 format

The response is an object `{ success, data: { fields: {...} } }`. Each field is described by an object:

- **Vibecode schema fields** in camelCase: `{ type, readonly }`. In `list`, `get`, `create`, `update`, `search` responses they are returned under the camelCase name. Filtering and sorting use the same name.
- **Custom `UF_CRM_*` fields** in the original case: `{ type, readonly, label }`, where `label` is the field name in the Bitrix24 account language.

## Vibecode schema fields

Fields of the Russian and international requisite presets.

### 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. Lower is 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 name |
| `rqCompanyFullName` | `RQ_COMPANY_FULL_NAME` | string | Full 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 | Head's full name |
| `rqCeoWorkPos` | `RQ_CEO_WORK_POS` | string | Head'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 | Record in the register of legal entities |
| `rqTaxRegime` | `RQ_TAX_REGIME` | string | Tax regime. A value from an account directory |
| `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 | Patronymic |
| `rqIdentType` | `RQ_IDENT_TYPE` | string | Identity document type. A value from an account directory |
| `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 other countries' presets. Filled only on requisites of the corresponding country preset — on Russian 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-entity form |

## Custom fields

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

## 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" }
    }
  }
}
```

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 |
|------|-----|---------|
| 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](/docs/errors).

## Known specifics

**All active presets in one response.** 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/datetime fields Vibecode converts `""` to `null` in `list/get/create/update/search` responses. This does not affect the `fields` method — it returns only field metadata.

**Label (`label`) for custom fields.** For `UF_CRM_*` fields a `label` is returned with the field name in the Bitrix24 account language. Vibecode schema fields have no `label` — their purpose is described in the tables above.

## See also

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