Calc: Расчет стоимости доставки
Функция рассчитывает стоимость доставки по переданным параметрам.
- Endpoint:
Calc - SOAP-метод:
Calc - Группа: Calc
- Создано: 16.04.2026 · Обновлено: 15.05.2026
Описание
Функция рассчитывает стоимость доставки по переданным параметрам.
Параметры запроса
Параметры запроса Calc
В методе используется динамический формат с Fields и Tables, где параметры передаются в виде трио значений Key/Value/ValueType.
Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
login | string | да | Логин пользователя |
password | string | да | Пароль |
parameters | Element | да | Дополнительные параметры расчёта (флаги, настройки) |
data | Element | да | Основные данные для расчёта (маршрут, груз) |
Описание параметра parameters
Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
countingresults | boolean | нет | Возвращать детализацию расчёта |
ipaddress | string | нет | IP-адрес клиента (для логирования) |
Описание параметра data
Структура data используется для указания сразу данных одного или нескольких расчетов, указанных в виде списка структур Element. Структура data должна содержать свойство Key, заполненное значением Destinations. Сами параметры передаются списком через свойство List, которое не может быть пустым.
Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
Key | string | да | Заголовок информации о расчете, всегда заполнено «Destination» |
List | Element | да | Список параметров расчета |
Описание параметра Fields (в data/List)
Список возможных сохраняемых реквизитов заказа в Fields:
Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
SenderGeography | string | да | GUID (Globally Unique Identifier) географии отправления (получение объектов географии см. GetReferenceData: география), или код географии клиента, если клиент пользуется собственной географией. Либо код ФИАС, для этого необходимо передать строку «fias-» и необходисмый код ФИАС. Для поиска по индексу: «postcode-», затем код страны (цифровой, либо Альфа-2, либо Альфа-3) и индекс для поиска – пример «postcode-KZA00A0A0». Если код страны не вводится, по умолчанию поиск осуществляется по России. Пример для России: «postcode-RU-990500» или «postcode-990500» (данный вариант поиска может возвращать не точную информацию). |
RecipientGeography | string | да | GUID (Globally Unique Identifier) географии получения(получение объектов географии см. GetReferenceData: география), или код географии клиента, если клиент пользуется собственной географией. Либо код ФИАС, для этого необходимо передать строку «fias-» и необходисмый код ФИАС. Для поиска по индексу: «postcode-», затем код страны (цифровой, либо Альфа-2, либо Альфа-3) и индекс для поиска – пример «postcode-KZA00A0A0». Если код страны не вводится, по умолчанию поиск осуществляется по России. Пример для России: «postcode-RU-990500» или «postcode-990500» (данный вариант поиска может возвращать не точную информацию). |
Urgency | string | нет | GUID (Globally Unique Identifier) срочности доставки (получение списка срочностей см. GetReferenceData: срочности) |
TypeOfCargo | string | да | GUID (Globally Unique Identifier) вида груза (получение списка видов грузов см. GetReferenceData: виды грузов) |
Weight | float | да | Вес груза в кг |
Qty | float | да | Количество мест, целое неотрицательное число |
VolumeWeight | float | нет | Объемный вес, кг |
Volume | float | нет | Объем |
DeliveryType | string | нет | Тип значения NameOfdeliverytype вида доставки (получение списка видов доставки см. GetReferenceData: DeliveryType - Виды доставок). Если вид доставки влияет на тариф и не передается в запросе, тогда возвращается тариф от вида доставки, установленного по умолчанию в договоре |
DeclaredValueRate | decimal | нет | Объявленная стоимость груза |
InsuranceRate | decimal | нет | Страховая стоимость груза |
AdditionalServices | string | нет | GUID услуги из нашей системы |
Countingresults | boolean | нет | Признак суммирования услуги и дополнительной услуги |
Описание параметра AdditionalServices
Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
Service | string | да | GUID (Globally Unique Identifier) дополнительной услуги |
Описание параметра ответа return
Если во время запроса произошла ошибка, информация о ней будет отражена в свойстве Properties (см. метод GetReferenceData: ErrorCodes — Коды ошибок).
---
При успешном выполнении метода вернутся данные в виде
Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
Key | string | да | Заголовок информации о расчете, всегда заполнено Destination |
List | Element | да | Информация по тарифу |
Описание параметра ответа List
Содержит данные о рассчитанном маршруте доставки
Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
Key | string | да | Заголовок информации о параметре в List, например Destination или Tariff |
Fields | Element | да | Параметры маршрута (география, вес, тип груза и т.д.) |
List | Element | да | Содержит данные о рассчитанном тарифе |
Описание вложенного параметра ответа Fields (Destination)
Отображает информацию направления доставки. Каждый параметр представлен отдельным блоком Fields, содержащим
- Key - название параметра (варианты в таблице ниже)
- Value - значение этого параметра
- ValueType - тип значения этого параметра
Таблица параметров (возможные значения Key):
Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
SenderGeography | string (GUID) | нет | География отправителя |
RecipientGeography | string (GUID) | нет | География получателя |
Urgency | string (GUID) | нет | Срочность доставки |
TypeOfCargo | string (GUID) | нет | Тип груза |
Weight | decimal | нет | Вес груза (кг) |
Qty | decimal | нет | Количество грузовых мест |
Описание вложенного параметра ответа List (Tariff)
Отображает информацию тарифа доставки. Каждый параметр представлен отдельным блоком Fields, содержащим
- Key - название параметра (варианты в таблице ниже)
- Value - значение этого параметра
- ValueType - тип значения этого параметра
Таблица параметров (возможные значения Key):
Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
Total | decimal | нет | Итоговая стоимость доставки |
Currency | string | нет | Идентификатор валюты |
CurrencyName | string | нет | Краткое наименование валюты |
Service | string | нет | Название услуги / тарифа |
AdditionalService | boolean | нет | Является ли дополнительной услугой |
Urgency | string | нет | Идентификатор срочности |
UrgencyName | string | нет | Название срочности |
UrgencyDescription | string | нет | Описание условий срочности |
MinPeriod | decimal | нет | Минимальный срок доставки (дни) |
MaxPeriod | decimal | нет | Максимальный срок доставки (дни) |
COD | boolean | нет | Доступен ли наложенный платёж |
Return | boolean | нет | Доступен ли возврат груза |
Agent | boolean | нет | Является ли тариф агентским |
Пример запроса (XML Request)
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header/>
<soap:Body>
<m:Calc
xmlns:m="http://www.cargo3.ru">
<m:login>test</m:login>
<m:password>2016</m:password>
<m:data>
<m:Key>Destinations</m:Key>
<m:List>
<m:Key>Destination</m:Key>
<m:Fields>
<m:Key>SenderGeography</m:Key>
<m:Value> cf862f56-442d-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>RecipientGeography</m:Key>
<m:Value> cf862f56-442d-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>TypeOfCargo</m:Key>
<m:Value>4aab1fc6-fc2b-473a-8728-58bcd4ff79ba</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Weight</m:Key>
<m:Value>1</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Qty</m:Key>
<m:Value>1</m:Value>
<m:ValueType>int</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>DeclaredValueRate</m:Key>
<m:Value>1000</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>CountOnlyAddServices</m:Key>
<m:Value>true</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Tables>
<m:Key>AdditionalServices</m:Key>
<m:List>
<m:Key>Объявленная стоимость</m:Key>
<m:Value>6da21fe7-4f13-11dc-bda1-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:List>
</m:Tables>
</m:List>
</m:data>
<m:parameters
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<m:Key>Parameters</m:Key>
<m:List>
<m:Key>countingresults</m:Key>
<m:Value>true</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:List>
<m:List>
<m:Key>ipaddress</m:Key>
<m:Value xsi:type="xs:string">10.0.0.1</m:Value>
<m:ValueType>string</m:ValueType>
</m:List>
</m:parameters>
</m:Calc>
</soap:Body>
</soap:Envelope>
Пример ответа (XML Response)
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<m:CalcResponse
xmlns:m="http://www.cargo3.ru">
<m:return
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<m:Key>Calc</m:Key>
<m:List>
<m:Key>Destination</m:Key>
<m:Fields>
<m:Key>SenderGeography</m:Key>
<m:Value xsi:type="xs:string">cf862f56-442d-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>RecipientGeography</m:Key>
<m:Value xsi:type="xs:string">8a3e044b-4429-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Urgency</m:Key>
<m:Value xsi:type="xs:string">18c4f208-458b-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>TypeOfCargo</m:Key>
<m:Value xsi:type="xs:string">4aab1fc6-fc2b-473a-8728-58bcd4ff79ba</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Weight</m:Key>
<m:Value xsi:type="xs:decimal">1</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Qty</m:Key>
<m:Value xsi:type="xs:decimal">1</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:List>
<m:Key>Tariff</m:Key>
<m:Value xsi:type="xs:string">6da21fe8-4f13-11dc-bda1-0015170f8c09</m:Value>
<m:Fields>
<m:Key>Total</m:Key>
<m:Value xsi:type="xs:decimal">1114.92</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Currency</m:Key>
<m:Value xsi:type="xs:string">ff3f7c38-4430-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>CurrencyName</m:Key>
<m:Value xsi:type="xs:string">RUR</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Service</m:Key>
<m:Value xsi:type="xs:string">Россия доставка</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>AdditionalService</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Urgency</m:Key>
<m:Value xsi:type="xs:string">18c4f208-458b-11dc-9497-0015170f8c09</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>UrgencyName</m:Key>
<m:Value xsi:type="xs:string">Сверхсрочная</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>MinPeriod</m:Key>
<m:Value xsi:type="xs:decimal">3</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>MaxPeriod</m:Key>
<m:Value xsi:type="xs:decimal">6</m:Value>
<m:ValueType>float</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>UrgencyDescription</m:Key>
<m:Value xsi:type="xs:string">Услуга производится по дополнительному согласованию.</m:Value>
<m:ValueType>string</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>COD</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Return</m:Key>
<m:Value xsi:type="xs:boolean">false</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
<m:Fields>
<m:Key>Agent</m:Key>
<m:Value xsi:type="xs:boolean">true</m:Value>
<m:ValueType>boolean</m:ValueType>
</m:Fields>
</m:List>
</m:List>
</m:return>
</m:CalcResponse>
</soap:Body>
</soap:Envelope>