Для AI-агентов: markdown этой страницы — /docs-content/entities/shipment-items/update.md индекс документации — /llms.txt
Обновить позицию отгрузки
PATCH /v1/shipment-items/:id
Меняет количество товара и внешний код позиции отгрузки в заказе интернет-магазина.
Поля передаются плоско в корне JSON, без обёртки fields. Как изменение количества сказывается на свободном количестве позиции корзины — Позиции отгрузок.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
id (path) |
number | да | ID позиции отгрузки, целое неотрицательное число. Список: GET /v1/shipment-items |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
quantity |
number | да | Новое количество товара в отгрузке. Передаётся в каждом запросе, в том числе когда меняется только xmlId. Дробное значение сохраняется без округления. Принимается и число строкой с точкой, например "0.5". Увеличение ограничено свободным количеством позиции корзины |
xmlId |
string | нет | Внешний код |
orderDeliveryId |
number | нет | RO. Задаётся только при создании. Чтобы перенести позицию в другую отгрузку, удалите её и создайте заново |
basketId |
number | нет | RO. Задаётся только при создании |
reservedQuantity |
number | нет | RO. Зарезервированное количество |
Полный список полей — GET /v1/shipment-items/fields.
Примеры
curl — личный ключ
curl -X PATCH "https://vibecode.bitrix24.tech/v1/shipment-items/1353" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"quantity": 0.75,
"xmlId": "vibe-doc-si-1"
}'
curl — OAuth-приложение
curl -X PATCH "https://vibecode.bitrix24.tech/v1/shipment-items/1353" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"quantity": 0.75,
"xmlId": "vibe-doc-si-1"
}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/shipment-items/1353', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
quantity: 0.75,
xmlId: 'vibe-doc-si-1',
}),
})
const { success, data } = await res.json()
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/shipment-items/1353', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
quantity: 0.75,
xmlId: 'vibe-doc-si-1',
}),
})
const { success, data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | true при успехе |
data |
object | Обновлённая позиция отгрузки со всеми полями |
data.id |
number | ID позиции отгрузки |
data.orderDeliveryId |
number | ID отгрузки |
data.basketId |
number | ID позиции корзины |
data.quantity |
number | Количество товара в отгрузке после изменения |
data.reservedQuantity |
number | Зарезервированное количество |
data.xmlId |
string | Внешний код |
data.dateInsert |
datetime | Дата создания, ISO 8601 |
Пример ответа
{
"success": true,
"data": {
"basketId": 1387,
"dateInsert": "2026-10-07T09:55:27.000Z",
"id": 1353,
"orderDeliveryId": 1207,
"quantity": 0.75,
"reservedQuantity": 0,
"xmlId": "vibe-doc-si-1"
}
}
Пример ответа при ошибке
404 — позиции отгрузки с таким id нет:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "shipment item is not exists"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | READONLY_FIELD |
В теле передано поле только для чтения: orderDeliveryId, basketId, reservedQuantity, id и другие. Имя поля — в message |
| 400 | EMPTY_UPDATE_BODY |
Тело запроса пустое или не является JSON-объектом |
| 400 | INVALID_PARAMS |
Значение поля не подходит под его тип, например строка "abc" в числовом quantity. Имя поля — в message |
| 400 | INVALID_PARAMS |
id в пути не является целым неотрицательным числом |
| 404 | ENTITY_NOT_FOUND |
Позиции отгрузки с таким id нет — shipment item is not exists |
| 404 | ENTITY_NOT_FOUND |
Позиция системной отгрузки, и переданное quantity совпадает с текущим. Изменение не записывается — shipmentItem <id> not found |
| 422 | BITRIX_ERROR |
Позиция системной отгрузки, и передано новое quantity. Изменение не записывается — Системная отгрузка недоступна для изменения, b24Code равен 150 |
| 422 | BITRIX_ERROR |
В теле нет quantity, например передан только xmlId или только поле с неизвестным именем — Required fields: quantity |
| 422 | BITRIX_ERROR |
Новое quantity превышает количество, доступное позиции корзины, b24Code равен SALE_SHIPMENT_ITEM_LESS_AVAILABLE_QUANTITY |
| 422 | BITRIX_ERROR |
Битрикс24 отклонил изменение по другой причине. Текст причины — в message |
| 403 | BITRIX_ACCESS_DENIED |
У пользователя ключа нет прав на изменение заказов в Битрикс24 |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Ключ работает в режиме только для чтения |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа sale |
| 403 | MANAGEMENT_KEY_NO_ENTITY_ACCESS |
Запрос сделан ключом управления. Для сущностей нужен ключ приложения или личный ключ со скоупом sale |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Переданный API-ключ не найден |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
Полный список общих ошибок API — Ошибки.