Перейти к содержимому

Calc: Расчет стоимости доставки

Функция рассчитывает стоимость доставки по переданным параметрам. 

SOAP Endpoint: Calc Обновлено: 2026-05-15
  • 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)

xml
<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)

xml
<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>