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

Создать службу доставки

POST /v1/delivery-services

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

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

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

Поле Тип Обяз. Описание
name string да Название службы. Пустая строка и "0" не допускаются
currency string да Непустой код валюты, например USD. Список валют
restCode string да Непустое значение code из списка обработчиков
description string нет Описание службы
sort integer нет Индекс сортировки
active string нет Активность службы: Y или N. Если поле не передано — Y
logo string[] нет Два непустых элемента: имя файла и его содержимое в base64. Размер файла после декодирования — до 2 МиБ
config object | array нет Настройки выбранного обработчика в формате Битрикс24. Вложенные ключи и их регистр сохраняются

Тело должно содержать хотя бы одно поле. Размер JSON — до 3 МиБ.

Примеры

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/delivery-services" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Курьерская доставка",
  "restCode": "my_delivery_handler",
  "currency": "USD",
  "active": "N"
}'

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/delivery-services" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Курьерская доставка",
  "restCode": "my_delivery_handler",
  "currency": "USD",
  "active": "N"
}'

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/delivery-services', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Курьерская доставка',
    restCode: 'my_delivery_handler',
    currency: 'USD',
    active: 'N',
  }),
})

const { success, data } = await res.json()
console.log(data.parent.id)

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/delivery-services', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Курьерская доставка',
    restCode: 'my_delivery_handler',
    currency: 'USD',
    active: 'N',
  }),
})

const { success, data } = await res.json()
console.log(data.parent.id)

Поля ответа

HTTP-статус — 201 Created. В data обязательны объект parent и массив profiles.

RO — поля только для чтения.

Поле Тип Описание
success boolean true при успехе
data object Созданная служба и её профили
data.parent object Родительская служба доставки
data.profiles object[] Созданные профили доставки
data.parent.id integer Идентификатор службы. RO
data.parent.parentId integer | null Идентификатор родительской службы или null. RO
data.parent.name string | null Название службы
data.parent.active string | null Активность службы
data.parent.description string | null Описание службы
data.parent.currency string | null Код валюты
data.parent.sort integer | null Индекс сортировки
data.parent.logotype integer | null Идентификатор файла логотипа, не URL, или null. RO. Для записи используется logo
data.profiles[].id integer Идентификатор службы. RO
data.profiles[].parentId integer | null Идентификатор родительской службы или null. RO
data.profiles[].name string | null Название службы
data.profiles[].active string | null Активность службы
data.profiles[].description string | null Описание службы
data.profiles[].currency string | null Код валюты
data.profiles[].sort integer | null Индекс сортировки
data.profiles[].logotype integer | null Идентификатор файла логотипа, не URL, или null. RO. Для записи используется logo

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

JSON
{
  "success": true,
  "data": {
    "parent": {
      "id": 85,
      "parentId": null,
      "name": "Курьерская доставка",
      "active": "N",
      "description": "",
      "currency": "USD",
      "sort": 100,
      "logotype": null
    },
    "profiles": [
      {
        "id": 87,
        "parentId": 85,
        "name": "Профиль доставки 1",
        "active": "N",
        "description": "Taxi Delivery",
        "currency": "USD",
        "sort": 100,
        "logotype": null
      },
      {
        "id": 89,
        "parentId": 85,
        "name": "Профиль доставки 2",
        "active": "N",
        "description": "Cargo Delivery",
        "currency": "USD",
        "sort": 100,
        "logotype": null
      }
    ]
  }
}

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

400 — передан пустой JSON-объект:

JSON
{
  "success": false,
  "error": {
    "code": "MISSING_REQUIRED_FIELDS",
    "message": "A nonempty JSON object is required"
  }
}

Ошибки

HTTP error.code Описание
400 MISSING_REQUIRED_FIELDS Тело не является непустым JSON-объектом, пропущено обязательное поле или передано пустое название
400 INVALID_PARAMS Неверный тип поля или некорректный файл в logo
400 READONLY_FIELD В теле есть поле вне таблицы полей запроса, в том числе logotype
413 PAYLOAD_TOO_LARGE Файл логотипа превышает 2 МиБ или тело JSON превышает 3 МиБ
422 BITRIX_ERROR Битрикс24 отклонил создание. Причина указана в error.message
502 BITRIX_RESPONSE_INVALID Ответ о создании не содержит корректные объекты службы и профилей
403 BITRIX_ACCESS_DENIED У пользователя нет права на создание службы
401 TOKEN_MISSING У API-ключа нет настроенных токенов Битрикс24
403 SCOPE_DENIED У API-ключа нет скоупа delivery
403 WRITE_BLOCKED_READONLY_KEY API-ключ работает в режиме только для чтения

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

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