Для 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 — личный ключ
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-приложение
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 — личный ключ
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-приложение
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 |
Пример ответа
{
"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-объект:
{
"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 — Ошибки.