[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Forders\u002Fupdate":3,"docs-tabs-entities\u002Forders\u002Fupdate":6},{"content":4,"lastmod":5},"\n## Обновить заказ\n\n`PATCH \u002Fv1\u002Forders\u002F:id`\n\nОбновляет поля существующего заказа. Передавайте только изменяемые поля плоско в корне JSON — без обёртки `fields`.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `id` (path) | number | да | Идентификатор заказа |\n\n## Поля запроса (body)\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `statusId` | string | Новый статус заказа. Список: [`GET \u002Fv1\u002Forder-statuses?filter[type]=O`](..\u002Forder-statuses\u002Flist.md). Усекается до 2 символов без ошибки |\n| `discountValue` | number | Значение скидки |\n| `canceled` | boolean | Отменён ли заказ |\n| `reasonCanceled` | string | Причина отмены |\n| `comments` | string | Комментарий менеджера |\n| `userDescription` | string | Комментарий покупателя |\n| `responsibleId` | number | Ответственный сотрудник |\n| `userId` | number | Пользователь Битрикс24 — покупатель. Существование не проверяется |\n| `companyId` | number | Идентификатор CRM-компании заказа. Источник: [`GET \u002Fv1\u002Fcompanies`](\u002Fdocs\u002Fentities\u002Fcompanies). Приходит `null`, если компания не задана |\n| `xmlId` | string | Внешний идентификатор |\n\nПолный список редактируемых полей — [`GET \u002Fv1\u002Forders\u002Ffields`](.\u002Ffields.md) (поля без флага `readonly`).\n\n**`price`, `marked` и `reasonMarked` на обновлении игнорируются.** Запрос вернёт `200`, но эти поля не сохранятся — они применяются только при [создании](.\u002Fcreate.md). `price` пересчитывается из позиций корзины: переданная вручную сумма игнорируется, при пустой корзине становится `0`. Чтобы изменить сумму, меняйте [позиции корзины](..\u002Fbasket-items\u002Fcreate.md). `payed` доступен только для чтения — управляется подсистемой оплат, попытка передать его вернёт `400 READONLY_FIELD`.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X PATCH \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Forders\u002F845\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"statusId\": \"F\",\n    \"comments\": \"Закрыт после полной оплаты\"\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X PATCH \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Forders\u002F845\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"statusId\": \"F\",\n    \"comments\": \"Закрыт после полной оплаты\"\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Forders\u002F845', {\n  method: 'PATCH',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    statusId: 'F',\n    comments: 'Закрыт после полной оплаты',\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Forders\u002F845', {\n  method: 'PATCH',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    statusId: 'F',\n    comments: 'Закрыт после полной оплаты',\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `data` | object | Обновлённый объект заказа со всеми полями (см. [Поля заказа](.\u002Ffields.md)) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 845,\n    \"accountNumber\": \"443\",\n    \"statusId\": \"F\",\n    \"price\": 100,\n    \"currency\": \"RUB\",\n    \"payed\": true,\n    \"canceled\": false,\n    \"comments\": \"Закрыт после полной оплаты\",\n    \"dateInsert\": \"2026-04-21T06:48:16.000Z\",\n    \"dateUpdate\": \"2026-05-13T11:45:32.000Z\",\n    \"dateStatus\": \"2026-05-13T11:45:32.000Z\",\n    \"userId\": 1,\n    \"companyId\": 15,\n    \"clients\": [\n      { \"entityTypeId\": 3, \"entityId\": 2471, \"isPrimary\": true, \"roleId\": 0, \"sort\": 0 },\n      { \"entityTypeId\": 4, \"entityId\": 15, \"isPrimary\": true, \"roleId\": 0, \"sort\": 0 }\n    ],\n    \"responsibleId\": 1\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n422 — заказ не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BITRIX_ERROR\",\n    \"message\": \"order is not exists\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 422 | `BITRIX_ERROR` | Заказ с таким ID не найден |\n| 400 | `BITRIX_ERROR` | Некорректное значение поля — например, неизвестный `statusId` |\n| 400 | `READONLY_FIELD` | Передано поле только для чтения — например `accountNumber`. Номер заказа присваивается автоматически |\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `sale` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Дата `dateStatus` обновляется автоматически.** При изменении `statusId` поле `dateStatus` получает текущее время — не передавайте его в запросе.\n\n**Поля `accountNumber`, `dateInsert`, `personTypeXmlId`, `statusXmlId` и другие системные — только для чтения.** Попытка передать их на обновлении отклоняется с `400 READONLY_FIELD`.\n\n## Смотрите также\n\n- [Получить заказ](.\u002Fget.md)\n- [Список заказов](.\u002Flist.md)\n- [Удалить заказ](.\u002Fdelete.md)\n- [Поля заказа](.\u002Ffields.md)\n- [Batch](\u002Fdocs\u002Fbatch)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","2026-07-14",{}]