sale.delivery.request.sendmessage
Создать оповещения по транспортной заявке
Описание
Метод sale.delivery.request.sendmessage создает оповещения по транспортной заявке.
Параметры
DELIVERY_ID
sale_delivery_service.ID
обязательный
Идентификатор службы доставки, к которой относится транспортная заявка.
Получить идентификаторы sale_delivery_service.ID служб доставки можно с помощью метода sale.delivery.getlist
REQUEST_ID
string
обязательный
Идентификатор транспортной заявки.
Идентификатор назначается внешней системой в ответе вебхука на создание заказа на доставку (подробнее в описании вебхука Создание заказа на доставку)
ADDRESSEE
string
обязательный
Адресат сообщения.
Возможные значения:
- MANAGER — менеджер
- RECIPIENT — получатель груза
MESSAGE
object
обязательный
Сообщение (подробное описание приведено ниже)
Параметр MESSAGE
SUBJECT
string
обязательный
Заголовок сообщения.
Обязательно нужно заполнить хотя бы одно из следующих полей: SUBJECT, BODY
BODY
string
обязательный
Тело сообщения.
В теле сообщения возможно использование макросов для замены времени и денежных значений.
Обязательно нужно заполнить хотя бы одно из следующих полей: SUBJECT, BODY
STATUS
object
необязательный
Статус сообщения (подробное описание приведено ниже)
MONEY_VALUES
object
необязательный
Объект в формате ключ => значение.
Используется для замены денежных значений в теле сообщения (смотрите пример ниже)
Параметр STATUS
MESSAGE
string
обязательный
Текстовое название статуса сообщения
SEMANTIC
string
обязательный
Значение семантики статуса.
Возможные значения:
- success — успех
- process — в процессе
- error — ошибка
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"DELIVERY_ID":225,"REQUEST_ID":"4757aca4931a4f029f49c0db4374d13d","ADDRESSEE":"MANAGER","MESSAGE":{"SUBJECT":"Your order is on its way","BODY":"Estimated delivery price: #MONEY#","MONEY_VALUES":{"#MONEY#":351.2},"STATUS":{"MESSAGE":"Success","SEMANTIC":"success"}}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.delivery.request.sendmessage
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"DELIVERY_ID":225,"REQUEST_ID":"4757aca4931a4f029f49c0db4374d13d","ADDRESSEE":"MANAGER","MESSAGE":{"SUBJECT":"Your order is on its way","BODY":"Estimated delivery price: #MONEY#","MONEY_VALUES":{"#MONEY#":351.2},"STATUS":{"MESSAGE":"Success","SEMANTIC":"success"}},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/sale.delivery.request.sendmessage
// 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.sendmessage',
params: {
DELIVERY_ID: 225,
REQUEST_ID: '4757aca4931a4f029f49c0db4374d13d',
ADDRESSEE: 'MANAGER',
MESSAGE: {
SUBJECT: 'Your order is on its way',
BODY: 'Estimated delivery price: #MONEY#',
MONEY_VALUES: {
'#MONEY#': 351.2,
},
STATUS: {
MESSAGE: 'Success',
SEMANTIC: 'success',
},
},
},
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('Message sent successfully:', 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 sendDeliveryRequestMessage() {
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.sendmessage',
params: {
DELIVERY_ID: 225,
REQUEST_ID: '4757aca4931a4f029f49c0db4374d13d',
ADDRESSEE: 'MANAGER',
MESSAGE: {
SUBJECT: 'Your order is on its way',
BODY: 'Estimated delivery price: #MONEY#',
MONEY_VALUES: {
'#MONEY#': 351.2,
},
STATUS: {
MESSAGE: 'Success',
SEMANTIC: 'success',
},
},
},
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('Message sent successfully:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', sendDeliveryRequestMessage)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
message = {
"SUBJECT": "Your order is on its way",
"BODY": "Estimated delivery price: #MONEY#",
"MONEY_VALUES": {
"#MONEY#": 351.2,
},
"STATUS": {
"MESSAGE": "Success",
"SEMANTIC": "success",
},
}
try:
bitrix_response = client.sale.delivery.request.sendmessage(
delivery_id=225,
request_id='4757aca4931a4f029f49c0db4374d13d',
addressee='MANAGER',
message=message,
).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.sendmessage',
[
'DELIVERY_ID' => 225,
'REQUEST_ID' => "4757aca4931a4f029f49c0db4374d13d",
'ADDRESSEE' => "MANAGER",
'MESSAGE' => [
'SUBJECT' => "Your order is on its way",
'BODY' => "Estimated delivery price: #MONEY#",
'MONEY_VALUES' => [
"#MONEY#" => 351.2,
],
'STATUS' => [
'MESSAGE' => "Success",
'SEMANTIC' => "success",
],
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error sending delivery message: ' . $e->getMessage();
}
BX24.callMethod(
'sale.delivery.request.sendmessage', {
DELIVERY_ID: 225,
REQUEST_ID: "4757aca4931a4f029f49c0db4374d13d",
ADDRESSEE: "MANAGER",
MESSAGE: {
SUBJECT: "Your order is on its way",
BODY: "Estimated delivery price: #MONEY#",
MONEY_VALUES: {
"#MONEY#": 351.2,
},
STATUS: {
MESSAGE: "Success",
SEMANTIC: "success",
},
},
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'sale.delivery.request.sendmessage',
[
'DELIVERY_ID' => 225,
'REQUEST_ID' => "4757aca4931a4f029f49c0db4374d13d",
'ADDRESSEE' => "MANAGER",
'MESSAGE' => [
'SUBJECT' => "Your order is on its way",
'BODY' => "Estimated delivery price: #MONEY#",
'MONEY_VALUES' => [
"#MONEY#" => 351.2,
],
'STATUS' => [
'MESSAGE' => "Success",
'SEMANTIC' => "success",
],
],
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "sale.delivery.request.sendmessage", b24.Params{
"DELIVERY_ID": 225,
"REQUEST_ID": "4757aca4931a4f029f49c0db4374d13d",
"ADDRESSEE": "MANAGER",
"MESSAGE": b24.Params{
"SUBJECT": "Your order is on its way",
"BODY": "Estimated delivery price: #MONEY#",
"MONEY_VALUES": b24.Params{
"#MONEY#": 351.2,
},
"STATUS": b24.Params{
"MESSAGE": "Success",
"SEMANTIC": "success",
},
},
})
if err != nil {
return fmt.Errorf("sale.delivery.request.sendmessage: %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":1714561617.200821,
"finish":1714561617.526123,
"duration":0.3253021240234375,
"processing":0.1471860408782959,
"date_start":"2024-05-01T14:06:57+03:00",
"date_finish":"2024-05-01T14:06:57+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 |
ADDRESSEE_IS_NOT_SPECIFIED |
Не указан получатель сообщения | 400 |
ADDRESSEE_UNEXPECTED_VALUE |
Неизвестный получатель сообщения.
Допустимые значения: |
400 |
MESSAGE_NOT_SPECIFIED |
Не указано сообщение.
Либо заголовок, либо тело сообщения должны быть указаны обязательно |
400 |
MESSAGE_STATUS_NOT_SPECIFIED |
Не указан статус сообщения | 400 |
MESSAGE_STATUS_SEMANTIC_NOT_SPECIFIED |
Не указана семантика статуса сообщения | 400 |
UNEXPECTED_MESSAGE_STATUS_SEMANTIC |
Неизвестная семантика статуса сообщения | 400 |
REQUEST_SHIPMENT_NOT_FOUND |
Не найдены отгрузки, привязанные к указанной транспортной заявке | 400 |
ACCESS_DENIED |
Недостаточно прав для создания оповещения | 403 |

