[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fdeals\u002Ffields":3,"docs-tabs-entities\u002Fdeals\u002Ffields":6},{"content":4,"lastmod":5},"\n## Поля сделки\n\n`GET \u002Fv1\u002Fdeals\u002Ffields`\n\nВозвращает полный список доступных полей, включая пользовательские (`ufCrm_*`).\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdeals\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdeals\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdeals\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Полей:', Object.keys(data).length)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdeals\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Битрикс24 | Тип | RO | Описание |\n|------|----------|-----|:--:|---------|\n| `id` | `id` | number | да | ID сделки |\n| `title` | `title` | string | | Название |\n| `amount` | `opportunity` | number | | Сумма |\n| `currency` | `currencyId` | string | | Валюта. Список: `GET \u002Fv1\u002Fcurrencies` |\n| `stageId` | `stageId` | string | | Стадия воронки. Набор стадий и их идентификаторы настраиваются на стороне портала и отличаются между воронками. Актуальный список — `GET \u002Fv1\u002Fstatuses?filter[entityId]=DEAL_STAGE` для основной воронки, `GET \u002Fv1\u002Fstatuses?filter[entityId]=DEAL_STAGE_{N}` для воронки с `categoryId={N}` (значение `categoryId` берётся из `GET \u002Fv1\u002Fdeal-categories`) |\n| `categoryId` | `categoryId` | number | | ID воронки (0 = основная). Список: `GET \u002Fv1\u002Fdeal-categories` |\n| `companyId` | `companyId` | number | | ID компании. Поиск: `GET \u002Fv1\u002Fcompanies` |\n| `contactId` | `contactId` | number | | ID основного контакта. Поиск: `GET \u002Fv1\u002Fcontacts` |\n| `contactIds` | `contactIds` | number[] | да | Все привязанные контакты. Поиск: `GET \u002Fv1\u002Fcontacts` |\n| `assignedById` | `assignedById` | number | | Ответственный. Список: `GET \u002Fv1\u002Fusers` |\n| `createdBy` | `createdBy` | number | да | Создатель. Поиск: `GET \u002Fv1\u002Fusers` |\n| `updatedBy` | `updatedBy` | number | да | Кто изменил. Поиск: `GET \u002Fv1\u002Fusers` |\n| `createdAt` | `createdTime` | datetime | да | Дата создания |\n| `updatedAt` | `updatedTime` | datetime | да | Дата изменения |\n| `closedAt` | `closedate` | datetime | | Дата закрытия |\n| `sourceId` | `sourceId` | string | | Источник. Список: `GET \u002Fv1\u002Fstatuses?filter[entityId]=SOURCE` |\n| `sourceDescription` | `sourceDescription` | string | | Описание источника |\n| `probability` | `probability` | number | | Вероятность успеха (%) |\n| `opened` | `opened` | boolean | | Доступна для всех |\n| `comments` | `comments` | string | | Комментарий |\n| `observers` | `observers` | number[] | | Наблюдатели. Список: `GET \u002Fv1\u002Fusers` |\n| `typeId` | `typeId` | string | | Тип записи. Список: `GET \u002Fv1\u002Fstatuses?filter[entityId]=DEAL_TYPE` |\n| `isReturning` | `isReturnCustomer` | boolean | | Повторная сделка |\n\n**Пользовательские поля** (`ufCrm_*`) также возвращаются в ответах и принимаются при создании\u002Fобновлении.\n\n\n\n## Доступные include\n\nЭндпоинт `GET \u002Fv1\u002Fdeals\u002Ffields` возвращает список доступных include: `contact`, `company`, `quote`.\n\nПример использования: [Получить deals](\u002Fdocs\u002Fentities\u002Fdeals\u002Fget#связанные-данные).\n\nПодробнее об include: [Связанные данные](\u002Fdocs\u002Fincludes).\n\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"fields\": {\n      \"id\": { \"type\": \"number\", \"readonly\": true },\n      \"title\": { \"type\": \"string\", \"readonly\": false },\n      \"assignedById\": { \"type\": \"number\", \"readonly\": false }\n    },\n    \"batch\": [\"create\", \"update\", \"delete\"]\n  }\n}\n```\n\nПоказаны 3 из множества полей. Полный список в таблице выше.\n\n## Пример ответа при ошибке\n\n404 — не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ENTITY_NOT_FOUND\",\n    \"message\": \"Элемент не найден\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Создать сделку](\u002Fdocs\u002Fentities\u002Fdeals\u002Fcreate) — какие поля передавать\n- [Пользовательские поля](\u002Fdocs\u002Fuserfields) — создание и управление `ufCrm_*`\n- [Entity API](\u002Fdocs\u002Fentity-api) — select для выборки нужных полей\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization) — rate limits\n","2026-06-19",{}]