Для AI-агентов: markdown этой страницы — /docs-content/entities/shipments/create.md индекс документации — /llms.txt

Создать отгрузку

POST /v1/shipments

Создаёт отгрузку в существующем заказе интернет-магазина и привязывает к ней службу доставки.

Поля передаются плоско в корне JSON, без обёртки fields.

Поля запроса (body)

Поле Тип Обяз. Описание
orderId number да ID заказа, в котором создаётся отгрузка. Список: GET /v1/orders. После создания не меняется
deliveryId number да ID службы доставки. Список: GET /v1/delivery-services
allowDelivery boolean нет Доставка разрешена. Если не передать, отгрузка создаётся с false
statusId string нет Статус доставки. Список: GET /v1/order-statuses?filter[type]=D. Если не передать, отгрузка получает начальный статус доставки портала, в примере ниже это DN
trackingNumber string нет Трек-номер
deliveryDocNum string нет Номер документа отгрузки
deliveryDocDate datetime нет Дата документа отгрузки
priceDelivery number нет Стоимость доставки. Если не передать, подставляется стоимость службы доставки
basePriceDelivery number нет Базовая стоимость доставки
responsibleId number нет ID ответственного сотрудника. Список: GET /v1/users. Если не передать, ответственный назначается автоматически
companyId number нет ID компании CRM. Список: GET /v1/companies. Существование компании не проверяется
comments string нет Комментарий к отгрузке
xmlId string нет Внешний код. Если не передать, генерируется автоматически

Полный список полей — GET /v1/shipments/fields.

Примеры

curl — личный ключ

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/shipments" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "orderId": 1027,
    "deliveryId": 1,
    "trackingNumber": "VIBE-DOC-1",
    "comments": "Тестовая отгрузка для документации"
  }'

curl — OAuth-приложение

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/shipments" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "orderId": 1027,
    "deliveryId": 1,
    "trackingNumber": "VIBE-DOC-1",
    "comments": "Тестовая отгрузка для документации"
  }'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/shipments', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    orderId: 1027,
    deliveryId: 1,
    trackingNumber: 'VIBE-DOC-1',
    comments: 'Тестовая отгрузка для документации',
  }),
})

const { success, data } = await res.json()
console.log('ID отгрузки:', data.id)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/shipments', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    orderId: 1027,
    deliveryId: 1,
    trackingNumber: 'VIBE-DOC-1',
    comments: 'Тестовая отгрузка для документации',
  }),
})

const { success, data } = await res.json()

Поля ответа

Поле Тип Описание
success boolean true при успехе. HTTP-статус ответа — 201
data object Созданная отгрузка со всеми полями — Поля отгрузки
data.id number ID созданной отгрузки
data.accountNumber string Номер отгрузки: номер заказа и порядковый номер отгрузки через /
data.deducted boolean Отметка «отгружено». У новой отгрузки всегда false
data.deliveryName string Название службы доставки из deliveryId
data.shipmentItems array Позиции отгрузки. Пустой массив, если позиции ещё не добавлены
data.system boolean Системная отгрузка. У созданной через API всегда false

Пример ответа

JSON
{
  "success": true,
  "data": {
    "accountNumber": "1027/2",
    "allowDelivery": false,
    "basePriceDelivery": 500,
    "canceled": false,
    "comments": "Тестовая отгрузка для документации",
    "companyId": null,
    "currency": "RUB",
    "customPriceDelivery": false,
    "dateAllowDelivery": null,
    "dateCanceled": null,
    "dateDeducted": null,
    "dateInsert": "2026-10-06T11:30:44.000Z",
    "dateMarked": null,
    "dateResponsibleId": "2026-10-06T11:30:44.000Z",
    "deducted": false,
    "deliveryDocDate": null,
    "deliveryDocNum": null,
    "deliveryId": 1,
    "deliveryName": "Доставка курьером",
    "deliveryXmlId": null,
    "discountPrice": 0,
    "empAllowDeliveryId": null,
    "empCanceledId": null,
    "empDeductedId": null,
    "empMarkedId": null,
    "empResponsibleId": 1317,
    "externalDelivery": false,
    "id": 1205,
    "id1c": null,
    "marked": false,
    "orderId": 1027,
    "priceDelivery": 500,
    "reasonMarked": null,
    "reasonUndoDeducted": null,
    "responsibleId": 1295,
    "shipmentItems": [],
    "statusId": "DN",
    "statusXmlId": null,
    "system": false,
    "trackingDescription": null,
    "trackingLastCheck": null,
    "trackingNumber": "VIBE-DOC-1",
    "trackingStatus": null,
    "updated1c": false,
    "version1c": null,
    "xmlId": "bx_6ac4cdd46e442"
  }
}

Пример ответа при ошибке

422 — заказа с таким orderId не существует:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Не удается загрузить заказ",
    "b24Code": "0"
  }
}

Ошибки

HTTP Код Описание
400 MISSING_REQUIRED_FIELDS Не передано или пустое обязательное поле orderId или deliveryId. Имя поля — в message
400 READONLY_FIELD В теле передано deducted. Ответ содержит hint с адресами ship и unship
400 READONLY_FIELD В теле передано другое поле только для чтения, например customPriceDelivery или accountNumber. Имя поля — в message
400 INVALID_PARAMS Значение поля не подходит под его тип, например слово в числовом deliveryId или объект в текстовом comments. Имя поля — в message
422 BITRIX_ERROR Битрикс24 отклонил создание. Например, заказа с таким orderId нет — Не удается загрузить заказ
403 BITRIX_ACCESS_DENIED У пользователя ключа нет прав на изменение заказов в Битрикс24
403 WRITE_BLOCKED_READONLY_KEY Ключ работает в режиме только для чтения
403 SCOPE_DENIED API-ключ не имеет скоупа sale
401 MISSING_API_KEY Не передан заголовок X-Api-Key
401 TOKEN_MISSING API-ключ не имеет настроенных токенов

Полный список общих ошибок API — Ошибки.

Смотрите также