# CRM field values and primary contact

Change one value without replacing the whole list, or choose an existing bound contact as primary.

Bitrix24 API: `crm.<entity>.addfieldvalue`, `crm.<entity>.deletefieldvalue`, `crm.<entity>.setprimarycontact`
Scope: `crm`

> These operations require the `crm-rest-v3` flag and a Bitrix24 update after `crm 26.2200.0` with `RestV3CrudDeal` enabled. Until available, calls return `422 METHOD_NOT_YET_AVAILABLE` with `error.release`.

## Operations

- [Add one value](./crm-field-values/add.md) — `POST /v1/deals/:id/fields/:field/values`
- [Remove one value](./crm-field-values/delete.md) — `DELETE /v1/deals/:id/fields/:field/values`
- [Set primary contact](./crm-field-values/primary-contact.md) — `PUT /v1/deals/:id/primary-contact`

## Resources

| Resource | Value changes | Primary contact |
|---|---|---|
| `/v1/deals` | POST / DELETE | PUT |
| `/v1/leads` | POST / DELETE | PUT |
| `/v1/contacts` | POST / DELETE | — |
| `/v1/companies` | POST / DELETE | — |
| `/v1/quotes` | POST / DELETE | PUT |
| `/v1/invoices` | POST / DELETE | PUT |
| `/v1/items/:entityTypeId` | POST / DELETE | PUT |

## Before you start

All operations require a READWRITE key. Record IDs come from the corresponding list resource; contact IDs come from [List contacts](/docs/entities/contacts/list), and smart-process type IDs from [List smart process types](/docs/entities/smart-processes/list).

For your own company use the companies resource with `?isMyCompany=true`. The default is `false`. This selects own-company permissions without changing the record type. Smart invoices and smart processes publish primary-contact operations only when contact bindings are supported.

The field name uses native REST v3 spelling: `phone`, `email`, `web`, `im`, `contactsId`, `companiesId`, `observersId`, or the exact `UF_CRM_*` name. Multifields use `{valueTypeId,value}`, relations use an integer, and a custom field uses one value of its native type. File additions accept a file ID or an upload object; deletion identifies the stored value. Bitrix24 decides whether the field and value are supported.

After a timeout or ambiguous failure, read the record before retrying.

## See also

- [CRM](/docs/entity-api)
- [Errors](/docs/errors)
