sale.delivery.request.update
Обновить транспортную заявку
Описание
Метод sale.delivery.request.update обновляет транспортную заявку.
Параметры
DELIVERY_ID
sale_delivery_service.ID
обязательный
Идентификатор службы доставки, к которой относится транспортная заявка.
Получить идентификаторы sale_delivery_service.ID служб доставки можно с помощью метода sale.delivery.getlist
REQUEST_ID
string
обязательный
Идентификатор транспортной заявки.
Идентификатор назначается внешней системой в ответе вебхука на создание заказа на доставку (подробнее в описании вебхука Создание заказа на доставку)
FINALIZE
string
необязательный
Индикатор необходимости завершить (финализировать) транспортную заявку.
Подразумевается, что значение индикатора необходимо выставлять в Y в том случае, когда транспортная заявка выполнена.
По умолчанию если не передано значение, то заявка не финализируется.
Возможные значения:
- Y — да
- N — нет
STATUS
object
необязательный
Статус транспортной заявки (подробное описание приведено ниже)
PROPERTIES
object[]
необязательный
Свойства транспортной заявки (подробное описание приведено ниже)
OVERWRITE_PROPERTIES
string
необязательный
Индикатор необходимости полностью переписать значения свойств заявки при обновлении.
По умолчанию свойства при обновлении только добавляются (эквивалент передачи значения N). Если вызывающей стороне требуется передать полный набор свойств и перезаписать существующие свойства, то необходимо выставлять значение этого индикатора в Y.
Возможные значения:
- Y — да
- N — нет
Параметр STATUS
TEXT
string
обязательный
Текстовое название статуса транспортной заявки
SEMANTIC
string
обязательный
Значение семантики статуса.
Возможные значения:
- process — заявка в процессе выполнения
- success — заявка успешно выполнена
Параметр PROPERTIES
NAME
string
обязательный
Название свойства
VALUE
string
обязательный
Значение свойства
TAGS
string[]
необязательный
Список тегов.
Возможные значения:
- phone — переданное значение будет отображаться как телефонный номер
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"DELIVERY_ID":225,"REQUEST_ID":"4757aca4931a4f029f49c0db4374d13d","STATUS":{"TEXT":"Performer found","SEMANTIC":"process"},"PROPERTIES":[{"NAME":"Car","VALUE":"Gray Skoda Octavia, a777zn"},{"NAME":"Driver","VALUE":"John Smith"},{"NAME":"Phone Number","VALUE":"+11111111111","TAGS":["phone"]},{"NAME":"Something else","VALUE":"Some value"}]}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.delivery.request.update
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"DELIVERY_ID":225,"REQUEST_ID":"4757aca4931a4f029f49c0db4374d13d","STATUS":{"TEXT":"Performer found","SEMANTIC":"process"},"PROPERTIES":[{"NAME":"Car","VALUE":"Gray Skoda Octavia, a777zn"},{"NAME":"Driver","VALUE":"John Smith"},{"NAME":"Phone Number","VALUE":"+11111111111","TAGS":["phone"]},{"NAME":"Something else","VALUE":"Some value"}],"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/sale.delivery.request.update
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
try {
const response = await $b24.actions.v2.call.make<boolean>({
method: 'sale.delivery.request.update',
params: {
DELIVERY_ID: 225,
REQUEST_ID: '4757aca4931a4f029f49c0db4374d13d',
STATUS: {
TEXT: 'Performer found',
SEMANTIC: 'process',
},
PROPERTIES: [
{
NAME: 'Car',
VALUE: 'Gray Skoda Octavia, a777zn',
},
{
NAME: 'Driver',
VALUE: 'John Smith',
},
{
NAME: 'Phone Number',
VALUE: '+11111111111',
TAGS: ['phone'],
},
{
NAME: 'Something else',
VALUE: 'Some value',
},
],
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Delivery request updated:', result)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function updateDeliveryRequest() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'sale.delivery.request.update',
params: {
DELIVERY_ID: 225,
REQUEST_ID: '4757aca4931a4f029f49c0db4374d13d',
STATUS: {
TEXT: 'Performer found',
SEMANTIC: 'process',
},
PROPERTIES: [
{
NAME: 'Car',
VALUE: 'Gray Skoda Octavia, a777zn',
},
{
NAME: 'Driver',
VALUE: 'John Smith',
},
{
NAME: 'Phone Number',
VALUE: '+11111111111',
TAGS: ['phone'],
},
{
NAME: 'Something else',
VALUE: 'Some value',
},
],
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Delivery request updated:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', updateDeliveryRequest)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
status = {
"TEXT": "Performer found",
"SEMANTIC": "process",
}
properties = [
{
"NAME": "Car",
"VALUE": "Gray Skoda Octavia, a777zn",
},
{
"NAME": "Driver",
"VALUE": "John Smith",
},
{
"NAME": "Phone Number",
"VALUE": "+11111111111",
"TAGS": [
"phone",
],
},
{
"NAME": "Something else",
"VALUE": "Some value",
},
]
try:
bitrix_response = client.sale.delivery.request.update(
delivery_id=225,
request_id='4757aca4931a4f029f49c0db4374d13d',
status=status,
properties=properties,
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'sale.delivery.request.update',
[
'DELIVERY_ID' => 225,
'REQUEST_ID' => "4757aca4931a4f029f49c0db4374d13d",
'STATUS' => [
'TEXT' => "Performer found",
'SEMANTIC' => "process",
],
'PROPERTIES' => [
[
'NAME' => "Car",
'VALUE' => "Gray Skoda Octavia, a777zn",
],
[
'NAME' => "Driver",
'VALUE' => "John Smith",
],
[
'NAME' => "Phone Number",
'VALUE' => "+11111111111",
'TAGS' => [
"phone"
],
],
[
'NAME' => "Something else",
'VALUE' => "Some value",
],
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error updating delivery request: ' . $e->getMessage();
}
BX24.callMethod(
'sale.delivery.request.update', {
DELIVERY_ID: 225,
REQUEST_ID: "4757aca4931a4f029f49c0db4374d13d",
STATUS: {
TEXT: "Performer found",
SEMANTIC: "process",
},
PROPERTIES: [{
NAME: "Car",
VALUE: "Gray Skoda Octavia, a777zn",
},
{
NAME: "Driver",
VALUE: "John Smith",
},
{
NAME: "Phone Number",
VALUE: "+11111111111",
TAGS: [
"phone"
],
},
{
NAME: "Something else",
VALUE: "Some value",
},
],
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'sale.delivery.request.update',
[
'DELIVERY_ID' => 225,
'REQUEST_ID' => "4757aca4931a4f029f49c0db4374d13d",
'STATUS' => [
'TEXT' => "Performer found",
'SEMANTIC' => "process",
],
'PROPERTIES' => [
[
'NAME' => "Car",
'VALUE' => "Gray Skoda Octavia, a777zn",
],
[
'NAME' => "Driver",
'VALUE' => "John Smith",
],
[
'NAME' => "Phone Number",
'VALUE' => "+11111111111",
'TAGS' => [
"phone"
],
],
[
'NAME' => "Something else",
'VALUE' => "Some value",
],
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "sale.delivery.request.update", b24.Params{
"DELIVERY_ID": 225,
"REQUEST_ID": "4757aca4931a4f029f49c0db4374d13d",
"STATUS": b24.Params{
"TEXT": "Performer found",
"SEMANTIC": "process",
},
"PROPERTIES": []b24.Params{
{
"NAME": "Car",
"VALUE": "Gray Skoda Octavia, a777zn",
},
{
"NAME": "Driver",
"VALUE": "John Smith",
},
{
"NAME": "Phone Number",
"VALUE": "+11111111111",
"TAGS": []string{"phone"},
},
{
"NAME": "Something else",
"VALUE": "Some value",
},
},
})
if err != nil {
return fmt.Errorf("sale.delivery.request.update: %w", err)
}
var ok bool
if err := json.Unmarshal(res.Result, &ok); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("выполнено:", ok)
Ответ
HTTP-статус: 200
{
"result":true,
"time":{
"start":1714557963.841951,
"finish":1714557964.052347,
"duration":0.21039605140686035,
"processing":0.04059791564941406,
"date_start":"2024-05-01T13:06:03+03:00",
"date_finish":"2024-05-01T13:06:04+03:00"
}
}
Возвращаемые данные
result
boolean
Результат обновления транспортной заявки
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":"DELIVERY_NOT_FOUND",
"error_description":"Delivery service has not been found"
}
| Код | Описание | Значение |
|---|---|---|
DELIVERY_ID_NOT_SPECIFIED |
Не указан идентификатор службы доставки | 400 |
DELIVERY_NOT_FOUND |
Служба доставки не найдена | 400 |
REQUEST_ID_NOT_SPECIFIED |
Не указан идентификатор транспортной заявки | 400 |
REQUEST_NOT_FOUND |
Транспортная заявка не найдена | 400 |
STATUS_UNEXPECTED_FORMAT |
Некорректный формат значения параметра STATUS |
400 |
STATUS_TEXT_NOT_SPECIFIED |
Не указано значение названия статуса | 400 |
STATUS_SEMANTIC_NOT_SPECIFIED |
Не указано значение семантики статуса | 400 |
PROPERTIES_UNEXPECTED_FORMAT |
Некорректный формат значения параметра PROPERTIES |
400 |
PROPERTY_VALUE_UNEXPECTED_FORMAT |
Некорректный формат одного из переданных свойств | 400 |
PROPERTY_VALUE_TAGS_UNEXPECTED_FORMAT |
Некорректный формат значения тегов свойства | 400 |
PROPERTY_VALUE_TAG_UNEXPECTED_FORMAT |
Некорректный формат значения тега свойства | 400 |
UNEXPECTED_REQUEST_FINALIZE_INDICATOR_VALUE |
Некорректное значение параметра FINALIZE.
Допустимые значения: |
400 |
UNEXPECTED_OVERWRITE_PROPERTIES_VALUE |
Некорректное значение параметра OVERWRITE_PROPERTIES.
Допустимые значения: |
400 |
UPDATE_REQUEST_INTERNAL_ERROR |
Ошибка при попытке обновления транспортной заявки | 400 |
EMPTY_UPDATE_PAYLOAD |
Пустой набор полей для обновления транспортной заявки | 400 |
ACCESS_DENIED |
Недостаточно прав для обновления транспортной заявки | 403 |

