Для AI-агентов: markdown этой страницы — /docs-content/entities/delivery-services/create.md индекс документации — /llms.txt
POST /v1/delivery-services
POST /v1/delivery-services
Bitrix24: sale.delivery.add. Скоуп: delivery.
Создаёт запись на обработчике из handlers. Обработчик должен уже существовать.
Параметры
| Поле | Тип | Обязательно |
|---|---|---|
| name | string | yes |
| currency | string | yes |
| description | string | no |
| sort | integer | no |
| active | string | no |
| logo | [filename, base64] | no |
| restCode | string | yes |
| config | object / array | no |
logo передаёт base64-файл до 2 МиБ. name не пустой; тело PATCH не пустое. Поля вне таблицы отклоняются, а не теряются. config — нативный список элементов Б24 с CODE и VALUE. Регистр ключей сохраняется.
restCode — code из обработчиков; currency — код валюты, например USD.
Примеры
cURL личный ключ
curl -X POST "https://vibecode.bitrix24.tech/v1/delivery-services" -H "X-Api-Key: $VIBE_API_KEY" -H 'Content-Type: application/json' -d '{"name": "VIBE-PROBE example", "restCode": "example_handler", "currency": "USD", "active": "N"}'
cURL OAuth
curl -X POST "https://vibecode.bitrix24.tech/v1/delivery-services" -H "X-Api-Key: $VIBE_API_KEY" -H "Authorization: Bearer $APP_SESSION" -H 'Content-Type: application/json' -d '{"name": "VIBE-PROBE example", "restCode": "example_handler", "currency": "USD", "active": "N"}'
JavaScript личный ключ
const response = 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": "VIBE-PROBE example", "restCode": "example_handler", "currency": "USD", "active": "N"}),
});
console.log(await response.json());
JavaScript OAuth
const response = await fetch("https://vibecode.bitrix24.tech/v1/delivery-services", {
method: "POST",
headers: {"X-Api-Key": "YOUR_API_KEY", "Authorization": "Bearer YOUR_APP_SESSION", "Content-Type": "application/json"},
body: JSON.stringify({"name": "VIBE-PROBE example", "restCode": "example_handler", "currency": "USD", "active": "N"}),
});
console.log(await response.json());
Поля ответа
success — true. data — запись или массив полей; DELETE отдаёт true. Создание доставки отдаёт parent и profiles. У списков meta.total равен длине data. Пример показывает структуру; номера записей зависят от портала.
{
"success": true,
"data": {
"parent": {
"id": 10,
"name": "VIBE-PROBE example",
"active": "N"
},
"profiles": []
}
}
Ошибки
| HTTP | Code | Причина |
|---|---|---|
| 400 | INVALID_PARAMS | Invalid ID, query or body shape |
| 400 | MISSING_REQUIRED_FIELDS | Missing required write fields |
| 400 | READONLY_FIELD | Unsupported write field |
| 400 | UNKNOWN_FILTER_FIELD | Unknown filter field |
| 400 | UNKNOWN_SELECT_FIELD | Unknown select field |
| 400 | UNKNOWN_SORT_FIELD | Unknown sort field |
| 401 | TOKEN_MISSING | Missing Bitrix24 credentials |
| 403 | SCOPE_DENIED | Missing delivery scope |
| 403 | WRITE_BLOCKED_READONLY_KEY | Writing with a readonly key |
| 403 | BITRIX_ACCESS_DENIED | Bitrix24 refuses access or service ownership |
| 404 | ENTITY_NOT_FOUND | Missing service |
| 413 | PAYLOAD_TOO_LARGE | Logo or body size exceeds limit |
| 422 | BITRIX_ERROR | Bitrix24 business refusal; original text is preserved |
| 502 | BITRIX_RESPONSE_INVALID | Malformed platform success response |
422 при неизвестном обработчике (пример формы ошибки):
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "Handler not found"
}
}