Swagger API Личный кабинет Центр поддержки

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

Адрес метода #

POST /calculator

Параметры запроса #

РазделПараметрОписаниеТипОбязательныйПример
weightВес всего заказа (в граммах)числода1500
widthШирина заказа (в сантиметрах)числода25
heightВысота заказа (в сантиметрах)числода20
lengthВысота заказа (в сантиметрах)числода30
assessedCostОценочная стоимость (в рублях)числода100.6
pickupDateДата приёма груза (не обязательно, по умолчания берется текущая дата)строканет2021-01-27
pickupTypesТипы забора (см. /lists/pickupTypes), если не переданы берутся оба типамассив чиселнет1
deliveryTypesТипы доставки (см. /lists/deliveryTypes), если не переданы берутся оба типамассив чиселнет1
codCostCумма наложенного платежачислонет0
includeFeesСуммировать ли к итоговой стоимости все сборы СД (страховка и комиссия за НП)булев(логический)нетfalse
providerKeysМассив ключей служб доставки (не обязательно)массив строкнетdpd
timeoutВремя (миллисекунды) ожидания ответа от провайдера, результаты по провайдерам которые не успели в указанное время выдаваться не будут. Если не указывать будет ожидаться ответ от всех.числонет2000
skipTariffRulesПропускает применение правил редактора тарифов. Полезно, если надо проверить корректность применения правилбулев(логический)нетfalse
promoCodeПромокод. В редакторе тарифов можно указать промокод, по которому можно изменять тарифы, например, скидку на стоимость доставки.строканетSALE10
customCodeИспользуется для идентификации ИМ. В редакторе тарифов можно указать customCode, по которому можно создавать условия на отдельный ИМ, если используется несколько ИМ в одном аккаунте ApiShip.строканет145900
pointInIdID пункта приема заказов из метода /lists/points (если нужно указать конкретный пункт отгрузки на склад службы доставки)числонет63035
pointOutIdID пункта выдачи заказов из метода /lists/points (если нужно указать конкретный пункт доставки до ПВЗ)числонет140803
tariffIdsТарифы служб доставок по которым будет осуществляться расчетмассив чиселнет53
places
widthШирина единицы товара в сантиметрахчислода1200
heightВысота единицы товара в сантиметрахчислода40
lengthДлина единицы товара в сантиметрахчислода30
weightВес единицы товара в граммахчислода25
extraParams
dpd.providerConnectIdID подключения провайдера, по которому нужно произвести расчет.числонет1234
from
cityGuidID города в базе ФИАСстроканет0c5b2444-70a0-4932-980c-b4dc0d3f02b5
regionРегионстроканетМосква
cityНазвание городастроканетМосква
countryCodeКод страны в соответствии с ISO 3166-1 alpha-2строканетRU
addressStringПолный адрес отправителя для вычисления координат lat lngстроканетМосква, Хлебный пер. 19А
latШирота отправителячислонет55.755297
lngДолгота отправителячислонет37.593740
indexПочтовый индексчислонет344000
to
cityGuidID города в базе ФИАСстроканет0c5b2444-70a0-4932-980c-b4dc0d3f02b5
regionРегионстроканетМосква
cityНазвание городастроканетМосква
countryCodeКод страны в соответствии с ISO 3166-1 alpha-2строканетRU
addressStringПолный адрес получателя для вычисления координат lat lngстроканетМосква, ул. Машкова 21
latШирота получателячислонет55.764683
lngДолгота получателячислонет37.653810
indexПочтовый индексчислонет344000

В поля pointInId и pointOutId можно указать только один ID пункта приема/выдачи заказа. Указанный ID должен соответствовать указанной службе доставке. Если в запросе передать codCost > 0 и доставка предполагается до ПВЗ, то нужно убедиться, что точка переданная в pointOutId поддерживает наложенный платеж (cod=1).

Значение поля tariffIds позволяет произвести калькуляцию по указанным тарифам. Например, если передать по тарифу от cdek (54) и boxberry (44): “tariffIds”: [44, 54], то в ответе будут отображены только указанные тарифы и только если по ним есть расчет от СД.

Дополнительные параметры extraParams. К примеру, можно рассчитать DPD по какому-то определенному подключению (договору), передав dpd.providerConnectId = id из /connections/getListConnections

Заполнение поля cityGuid обязательно, если не заполнено поле city и наоборот.

Заполнение поля addressString обязательно, если не заполнены другие обязательные поля адреса (countryCode, city, region, street, index).

В случае заполнения addressString - адрес будет разобран на составляющие и будут использоваться данные полученные в следствии разбора строки addressString.

При необходимости есть возможность добавление нескольких мест places для расчета доставки.

Пример запроса #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{
  "from": {
    "countryCode": "RU",
    "index": "190000",
    "addressString": "г Санкт-Петербург, ул Беринга, д 8",
    "region": "Ленинградская обл",
    "city": "г Санкт-Петербург",
    "cityGuid": "c2deb16a-0330-4f05-821f-1d09c93331e6",
    "lat": 59.937029,
    "lng": 30.245799
  },
  "to": {
    "countryCode": "RU",
    "index": "105066",
    "addressString": "г Москва, ул Нижняя Красносельская, д 35",
    "region": "г Москва",
    "city": "г Москва",
    "cityGuid": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
    "lat": 55.755318,
    "lng": 37.594265
  },
  "places": [
    {
      "height": 45,
      "length": 30,
      "width": 20,
      "weight": 20
    }
  ],
  "pickupDate": "2021-10-24",
  "pickupTypes": [
    1,
    2
  ],
  "deliveryTypes": [
    1,
    2
  ],
  "providerKeys": [
    "dpd",
    "cdek"
  ],
  "assessedCost": 100,
  "codCost": 100,
  "includeFees": false,
  "timeout": 20000,
  "skipTariffRules": false,
  "extraParams": {
    "dpd.providerConnectId": "0"
  }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?xml version="1.0" encoding="UTF-8"?>
<CalculatorRequest>
 <from>
      <addressString>г Санкт-Петербург, ул Беринга, д 8</addressString>
      <city>г Санкт-Петербург</city>
      <cityGuid>c2deb16a-0330-4f05-821f-1d09c93331e6</cityGuid>
      <countryCode>RU</countryCode>
      <index>190000</index>
      <lat>59.93703</lat>
      <lng>30.245798</lng>
      <region>Ленинградская обл</region>
   </from>
   <to>
      <addressString>г Москва, ул Нижняя Красносельская, д 35</addressString>
      <city>г Москва</city>
      <cityGuid>0c5b2444-70a0-4932-980c-b4dc0d3f02b5</cityGuid>
      <countryCode>RU</countryCode>
      <index>105066</index>
      <lat>55.755318</lat>
      <lng>37.594265</lng>
      <region>г Москва</region>
   </to>
   <places>
         <height>45</height>
         <length>30</length>
         <weight>20</weight>
         <width>20</width>
   </places>
	<pickupDate>2021-10-19</pickupDate>
	<pickupTypes>1</pickupTypes>
	<pickupTypes>2</pickupTypes>
	<deliveryTypes>1</deliveryTypes>
	<deliveryTypes>2</deliveryTypes>
	<providerKeys>dpd</providerKeys>
	<providerKeys>cdek</providerKeys>
	<assessedCost>100</assessedCost>
	<codCost>100</codCost>
	<includeFees>false</includeFees>
	<timeout>20000</timeout>
	<skipTariffRules>false</skipTariffRules>
	<extraParams>
		<dpd.providerConnectId>0</dpd.providerConnectId>
	</extraParams>
</CalculatorRequest>

Параметры ответа #

РазделПараметрОписаниеТипОбязательныйПример
deliveryToDoor
providerKeyНазвание СДстроканетcdek
tariffProviderIdID тарифастроканет11
tariffNameНазвание тарифастроканетЭкспресс лайт склад-дверь
pickupTypesТипы забора (см. /lists/pickupTypes), если не переданы берутся оба типа ,массив чиселнет2
deliveryTypesТипы доставки (см. /lists/deliveryTypes), если не переданы берутся оба типамассив чиселнет1
deliveryCostСтоимость доставкичислонет370
deliveryCostOriginalСтоимость тарифа до применения правилчислонет450
feesIncludedБыли ли включены сборы СД в общую стоимость(deliveryCost). NULL если невозможно определитьбулевнетfalse
insuranceFeeСумма страховых сборов. NULL если невозможно определитьчислонет0
cashServiceFeeСумма сборов за НП. NULL если невозможно определитьчислонет0
daysMaxМаксимальное количество дней на осуществление доставки.числонет3
daysMinМинимальное количество дней на осуществление доставки.числонет2
tariffIdID тарифачислонет19
deliveryToPoint
providerKeyНазвание СДстроканетcdek
tariffProviderIdID тарифастроканет11
tariffNameНазвание тарифастроканетЭкспресс лайт склад-склад
pickupTypesТипы забора (см. /lists/pickupTypes), если не переданы берутся оба типа ,массив чиселнет2
deliveryTypesТипы доставки (см. /lists/deliveryTypes), если не переданы берутся оба типамассив чиселнет1
deliveryCostСтоимость доставкичислонет370
deliveryCostOriginalСтоимость тарифа до применения правилчислонет450
feesIncludedБыли ли включены сборы СД в общую стоимость(deliveryCost). NULL если невозможно определитьбулевнетfalse
insuranceFeeСумма страховых сборов. NULL если невозможно определитьчислонет0
cashServiceFeeСумма сборов за наложенный платёж. NULL если невозможно определитьчислонет0
daysMaxМаксимальное количество дней на осуществление доставки.числонет3
daysMinМинимальное количество дней на осуществление доставки.числонет2
tariffIdID тарифачислонет19
pointIdsМассив идентификаторов доступных ПВЗ для каждого из тарифовмассив чиселнет234

Пример данных ответа #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
   "deliveryToDoor": [
       {
           "providerKey": "cdek",
           "tariffs": [
               {
                   "tariffProviderId": 11,
                   "tariffId": 19,
                   "tariffName": "Экспресс лайт склад-дверь",
                   "from": "point",
                   "deliveryCost": 370,
                   "deliveryCostOriginal": 420,
                   "feesIncluded": false,
                   "insuranceFee": 0,
                   "cashServiceFee": 0,
                   "daysMin": 2,
                   "daysMax": 3,
                   "pickupTypes": [
                       2
                   ],
                   "deliveryTypes": [
                       1
                   ]
               },
               {
                   "tariffProviderId": 137,
                   "tariffId": 54,
                   "tariffName": "Посылка склад-дверь",
                   "from": "point",
                   "deliveryCost": 330,
                   "deliveryCostOriginal": 420,
                   "feesIncluded": false,
                   "insuranceFee": 0,
                   "cashServiceFee": 0,
                   "daysMin": 3,
                   "daysMax": 5,
                   "pickupTypes": [
                       2
                   ],
                   "deliveryTypes": [
                       1
                   ]
               }
           ]
       }
   ],
   "deliveryToPoint": []
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<response>
  <deliveryToDoor>
    <providerKey>cdek</providerKey>
    <tariffs>
      <tariffProviderId>11</tariffProviderId>
      <tariffId>19</tariffId>
      <tariffName>Экспресс лайт склад-дверь</tariffName>
      <from>point</from>
      <deliveryCost>370</deliveryCost>
      <deliveryCostOriginal>420</deliveryCostOriginal>
      <feesIncluded>false</feesIncluded>
      <insuranceFee>0</insuranceFee>
      <cashServiceFee>0</cashServiceFee>
      <daysMin>2</daysMin>
      <daysMax>3</daysMax>
      <pickupTypes>2</pickupTypes>
      <deliveryTypes>1</deliveryTypes>
    </tariffs>
    <tariffs>
      <tariffProviderId>137</tariffProviderId>
      <tariffId>54</tariffId>
      <tariffName>Посылка склад-дверь</tariffName>
      <from>point</from>
      <deliveryCost>330</deliveryCost>
      <deliveryCostOriginal>420</deliveryCostOriginal>
      <feesIncluded>false</feesIncluded>
      <insuranceFee>0</insuranceFee>
      <cashServiceFee>0</cashServiceFee>
      <daysMin>3</daysMin>
      <daysMax>5</daysMax>
      <pickupTypes>2</pickupTypes>
      <deliveryTypes>1</deliveryTypes>
    </tariffs>
  </deliveryToDoor>
  <deliveryToPoint/>
</response>