# Тарификация

# Комментарии к использованию методов Тарификации

1\. Получение тарифов доставки (от Кактуса), для показа в процессе чекаута

Для получения тарифов на доставку, необходимо передать данные:

- Связка ФИАС guid-ов (для РФ): регион, район, город, населенный пункт
- Вес
- Объемный вес

У нас также есть возможность отправки за границу (в любую страну) с автоматической растаможкой, для этого надо передать код страны, адрес на латинице (кроме СНГ), а также передать к товарам код тнвэд и описание на английском.

Для первого этапа, можно ограничиться доставкой по России, но заложить последующую международную доставку.

Для получения ФИАС кодов, можно воспользоваться сервисом Dadata, либо вашим внутренним решением, либо нашим подсказчиком:

[/api/prompter/location](https://wiki.kak2c.ru/books/%D0%BA%D0%B0%D0%BA%D1%82%D1%83%D1%81-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%BE%D0%B2/page/apiprompterlocation "Тарификация")  
Запрос позволяет получить подсказки по городу, в ответ возвращаются данные по ФИАС, которые необходимо сохранить и использовать в дальнейшем для получения тарифов.

Для определения габаритов коробки (объемного веса), можно использовать метод:

[/api/lite/pub/dimensions-by-package](https://wiki.kak2c.ru/books/%D0%BA%D0%B0%D0%BA%D1%82%D1%83%D1%81-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%BE%D0%B2/page/apilitepubdimensions-by-package)

Для этого необходимо передать вес и габариты каждого товара в заказе.

Запрос на получения тарифов [/api/dlv/tariffs](https://wiki.kak2c.ru/books/%D0%BA%D0%B0%D0%BA%D1%82%D1%83%D1%81-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%BE%D0%B2/page/apidlvtariffs)

в запросе необходимо указать:

\- данные по локации доставки (фиас коды в первую очередь, остальные данные второстепенны при наличии фиас кодов),   
\- данные по размеру и весу,   
\- данные о оценочной стоимости заказа и сумму наложенного платежа (если требуется включить их в расчет) - это на усмотрение пользователя

Следует делать перерасчёт стоимости доставки в случае изменения состава заказа, изменении места доставки, изменении способа оплаты.

Для выбора точек ПВЗ на карте следует использовать [скрипт вызова карты](https://wiki.kak2c.ru/books/%D0%BA%D0%B0%D0%BA%D1%82%D1%83%D1%81-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%BE%D0%B2/page/%D0%BA%D0%B0%D1%80%D1%82%D0%B0-%D0%BF%D0%B2%D0%B7 "Карта ПВЗ")

Если при получении тарифов пришли тарифы в которых указан   
type: "PVZ"  
нужно дать возможность выбрать ПВЗ на карте.

  
Полученный результат выбора ПВЗ (код ПВЗ), стоимость доставки, и данные о локации сохранить в заказе, для передачи в сервис “Кактус” для Фулфилмент обработки.  
  
Некоторые ПВЗ не поддерживают оплату при получении, для таких ПВЗ следует ограничить возможность выбора способа оплаты в заказе только предоплатой. В случае если paymentMethods возвращает хотя бы 1 способ оплаты - значит в этом пункте выдачи можно оплатить при получении, если список в paymentMethods вернулся пустой, значит в этот ПВЗ можно отправить только предоплаченный заказ.

По всем методам апи этого раздела - авторизация работает по параметру Domain в header запросов.

Домен для всех аккаунтов генерируется автоматически при регистрации и его можно узнать в личном кабинете  
[https://lk2-test.kak2c.ru/settings](https://lk2-test.kak2c.ru/settings) в поле ID аккаунта. Нужно в запросах передавать Domain = {"shop" + ID аккаунта}

# /api/prompter/address

### <span style="color: #000000;">Подсказка полного адреса </span>(/api/prompter/address)

/api/prompter/address

<div id="bkmrk-%28%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%80">(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))</div>Для запроса необходимо выполнить следующий запрос

/api/prompter/address?query=москва1

Важно: При формировании объекта адреса доставки заказа необходимо в поле *delivery.address.block* передавать значение из поля *block\_value.*

Поле *block* в ответе может содержать как номер корпуса, так и номер строения, в зависимости от значения поля *block\_type\_full* *("корпус"/"строение")*, поэтому для сохранения обратной совместимости и однозначной интерпретации значений полей были введены 2 новых поля: *block\_value (всегда содержит номер корпуса)* и *building (всегда содержит номер строения)*.

В ответ возвращается

#### **успех:**

```JSON
{
    "success": true,
    "suggestions": [
        {
            "value": "г Москва, ул Озёрная, д 33",
            "unrestricted_value": "г Москва, ул Озёрная, д 33",
            "data": {
                "postal_code": "119361",
                "country": "Россия",
                "region_fias_id": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
                "region_kladr_id": "7700000000000",
                "region_with_type": "г Москва",
                "region_type": "г",
                "region_type_full": "город",
                "region": "Москва",
                "area_fias_id": null,
                "area_kladr_id": null,
                "area_with_type": null,
                "area_type": null,
                "area_type_full": null,
                "area": null,
                "city_fias_id": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
                "city_kladr_id": "7700000000000",
                "city_with_type": "г Москва",
                "city_type": "г",
                "city_type_full": "город",
                "city": "Москва",
                "city_area": null,
                "city_district": null,
                "city_district_fias_id": null,
                "city_district_kladr_id": null,
                "city_district_with_type": null,
                "city_district_type": null,
                "city_district_type_full": null,
                "settlement_fias_id": null,
                "settlement_kladr_id": null,
                "settlement_with_type": null,
                "settlement_type": null,
                "settlement_type_full": null,
                "settlement": null,
                "street_fias_id": "2de05e24-76f3-490f-9770-c0b923e0cf80",
                "street_kladr_id": "77000000000211100",
                "street_with_type": "ул Озёрная",
                "street_type": "ул",
                "street_type_full": "улица",
                "street": "Озёрная",
                "house_fias_id": "5e8674fb-14d4-4d24-9bf5-872d03ea5a36",
                "house_kladr_id": "7700000000021110080",
                "house_type": "д",
                "house_type_full": "дом",
                "house": "33",
                "block_type": null,
                "block_type_full": null,
                "block": null,
                "block_value": null,
                "building": null,
                "flat_type": null,
                "flat_type_full": null,
                "flat": null,
                "flat_area": null,
                "square_meter_price": null,
                "flat_price": null,
                "postal_box": null,
                "fias_id": "5e8674fb-14d4-4d24-9bf5-872d03ea5a36",
                "fias_level": "8",
                "kladr_id": "7700000000021110080",
                "capital_marker": "0",
                "okato": "45268579000",
                "oktmo": "45323000",
                "tax_office": "7729",
                "tax_office_legal": "7729",
                "timezone": null,
                "geo_lat": null,
                "geo_lon": null,
                "beltway_hit": null,
                "beltway_distance": null,
                "qc_geo": null,
                "qc_complete": null,
                "qc_house": null,
                "unparsed_parts": null,
                "qc": null,
                "history_values": null,
                "source": null
            }
        }
    ]
}
```

<div data-hasbody="true" data-macro-name="code" id="bkmrk-"><div><div><div></div></div></div></div>#### **ошибка:** 

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/prompter/street

### <span style="color: #000000;">Подсказка улицы для заданного населенного пункта</span>

<span style="color: #000000;"> /api/prompter/street</span>

<div id="bkmrk-%28%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%80"><div><div>(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))</div></div></div>Для запроса необходимо передать название населенного пункта из метода /prompter/location и введенные пользователем буквы искомой улицы (для магазинов в России):

/api/prompter/street?query=г москва Ленинс

Для магазинов в Украине необходимо передать значение settlement\_fias\_id из метода /prompter/location в параметре settlementFiasCode и введенную часть улицы в параметре streetQuery:

/api/prompter/street?settlementFiasCode=e718a680-4b33-11e4-ab6d-005056801329&amp;streetQuery=Незал

#### **параметры запроса:**

<table border="1" id="bkmrk-query-%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81%2C-%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B0" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 50%;">query</td><td style="width: 50%;">Запрос, включающий название населенного пункта и введенную часть искомой улицы</td></tr><tr><td style="width: 50%;">city</td><td style="width: 50%;">Название города</td></tr><tr><td style="width: 50%;">cityFiasCode</td><td style="width: 50%;">Код города</td></tr><tr><td style="width: 50%;">settlement</td><td style="width: 50%;">Название населенного пункта</td></tr><tr><td style="width: 50%;">settlementFiasCode</td><td style="width: 50%;">Код населенного пункта</td></tr><tr><td style="width: 50%;">streetQuery</td><td style="width: 50%;">Введенная часть искомой улицы</td></tr></tbody></table>

В ответ возвращаются варианты улицы (использовать значение value)

#### **успех:**

```JSON
{
    "success": true,
    "suggestions": [
        {
            "value": "ул Ленинский проспект",
            "unrestricted_value": "г Москва, Ленинский проспект",
            "data": {
                .... прочие детали варианта
            }
        }
    ]
}
```

#### **ошибка:** 

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/prompter/location

### <span style="color: #000000;">Подсказка населенного пункта</span>

<span style="color: #000000;">/api/prompter/location</span>

<div id="bkmrk-%28%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%80">(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))</div>Для запроса необходимо выполнить следующий запрос

/api/prompter/location?query=москва

опциональный параметр - include\_foreign=true/false - позволяет искать только по России или включая зарубежные страны (если поиск по зарубежью активирован для данной учетной записи)

опциональный параметр - country=FR - позволяет искать, например, только по Франции. Для зарубежных стран при этом подсказка будет выдаваться на латинице. Если параметр не передан, то поиск происходит только по России.

В ответ возвращается

#### **успех:**

```JSON
{
    "success": true,
    "suggestions": [
        {
            "value": "г Магадан",
            "unrestricted_value": "Магаданская обл, г Магадан",
            "data": {
                "postal_code": "685000",
                "country": "Россия",
                "region_fias_id": "9c05e812-8679-4710-b8cb-5e8bd43cdf48",
                "region_kladr_id": "4900000000000",
                "region_with_type": "Магаданская обл",
                "region_type": "обл",
                "region_type_full": "область",
                "region": "Магаданская",
                "area_fias_id": null,
                "area_kladr_id": null,
                "area_with_type": null,
                "area_type": null,
                "area_type_full": null,
                "area": null,
                "city_fias_id": "cb8ae35a-93df-4133-b377-50f3698c8b5e",
                "city_kladr_id": "4900000100000",
                "city_with_type": "г Магадан",
                "city_type": "г",
                "city_type_full": "город",
                "city": "Магадан",
                "city_area": null,
                "city_district": null,
                "city_district_fias_id": null,
                "city_district_kladr_id": null,
                "city_district_with_type": null,
                "city_district_type": null,
                "city_district_type_full": null,
                "settlement_fias_id": null,
                "settlement_kladr_id": null,
                "settlement_with_type": null,
                "settlement_type": null,
                "settlement_type_full": null,
                "settlement": null,
                "street_fias_id": null,
                "street_kladr_id": null,
                "street_with_type": null,
                "street_type": null,
                "street_type_full": null,
                "street": null,
                "house_fias_id": null,
                "house_kladr_id": null,
                "house_type": null,
                "house_type_full": null,
                "house": null,
                "block_type": null,
                "block_type_full": null,
                "block": null,
                "flat_type": null,
                "flat_type_full": null,
                "flat": null,
                "flat_area": null,
                "square_meter_price": null,
                "flat_price": null,
                "postal_box": null,
                "fias_id": "cb8ae35a-93df-4133-b377-50f3698c8b5e",
                "fias_level": "4",
                "kladr_id": "4900000100000",
                "capital_marker": "2",
                "okato": "44401000000",
                "oktmo": "44701000001",
                "tax_office": "4900",
                "tax_office_legal": "4900",
                "timezone": null,
                "geo_lat": "59.5681332",
                "geo_lon": "150.8084956",
                "beltway_hit": null,
                "beltway_distance": null,
                "qc_geo": "4",
                "qc_complete": null,
                "qc_house": null,
                "unparsed_parts": null,
                "qc": null,
                "history_values": null,
                "source": "Магадан, Магаданская обл"
            }
        }
    ]
}
```

#### **ошибка:** 

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/prompter/iplocation

### <span style="color: #000000;">Определение населенного пункта по IP адресу</span>

<span style="color: #000000;">/api/prompter/iplocation</span>

<div id="bkmrk-%28%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%80"><div><div>(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))</div></div></div>Для запроса необходимо выполнить следующий запрос

/api/prompter/iplocation?ip=<span style="color: #505050;">87.250.250.242</span>

<span style="color: #505050;">параметр ip - опциональный, если не задан, то определяется на сервере автоматически</span>

В ответ возвращается

#### **успех:**

```JSON
{
    "success": true,
    "ip": "87.250.250.242", //ip из параметра
    "sourceIp": "87.250.250.242", //ip, определённый сервером
    "suggestions": [
        {
            "value": "г Москва",
            "unrestricted_value": "101000, г Москва",
            "data": {
                "postal_code": "101000",
                "country": "Россия",
                "countryCode": "RU",
                "region_fias_id": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
                "region_kladr_id": "7700000000000",
                "region_with_type": "г Москва",
                "region_type": "г",
                "region_type_full": "город",
                "region": "Москва",
                "area_fias_id": null,
                "area_kladr_id": null,
                "area_with_type": null,
                "area_type": null,
                "area_type_full": null,
                "area": null,
                "city_fias_id": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
                "city_kladr_id": "7700000000000",
                "city_with_type": "г Москва",
                "city_type": "г",
                "city_type_full": "город",
                "city": "Москва",
                "city_area": null,
                "city_district": null,
                "city_district_fias_id": null,
                "city_district_kladr_id": null,
                "city_district_with_type": null,
                "city_district_type": null,
                "city_district_type_full": null,
                "settlement_fias_id": null,
                "settlement_kladr_id": null,
                "settlement_with_type": null,
                "settlement_type": null,
                "settlement_type_full": null,
                "settlement": null,
                "street_fias_id": null,
                "street_kladr_id": null,
                "street_with_type": null,
                "street_type": null,
                "street_type_full": null,
                "street": null,
                "house_fias_id": null,
                "house_kladr_id": null,
                "house_type": null,
                "house_type_full": null,
                "house": null,
                "block_type": null,
                "block_type_full": null,
                "block": null,
                "flat_type": null,
                "flat_type_full": null,
                "flat": null,
                "flat_area": null,
                "square_meter_price": null,
                "flat_price": null,
                "postal_box": null,
                "fias_id": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
                "fias_level": "1",
                "kladr_id": "7700000000000",
                "capital_marker": "0",
                "okato": "45000000000",
                "oktmo": "45000000",
                "tax_office": "7700",
                "tax_office_legal": "7700",
                "timezone": null,
                "geo_lat": "55.7540471",
                "geo_lon": "37.620405",
                "beltway_hit": null,
                "beltway_distance": null,
                "qc_geo": "4",
                "qc_complete": null,
                "qc_house": null,
                "unparsed_parts": null,
                "qc": null,
                "history_values": null,
                "source": null
            }
        }
    ]
}
```

#### **ошибка:** 

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/lite/pub/check_pickup_location

### <span style="color: #000000;">Проверка адреса сбора на возможность обслуживания (публичный)</span>

<span style="color: #000000;">/api/lite/pub/check\_pickup\_location</span>

<div id="bkmrk-%28%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%80">(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))</div>####  

#### **Запрос**

<div id="bkmrk-"><table class="relative-table confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid" style="width: 58.1654%; padding: 0px;"><colgroup><col></col><col></col><col></col></colgroup><thead class="tableFloatingHeaderOriginal" style="position: static; margin-top: 0px; left: 325px; z-index: 3; width: 520px; top: 40px;"></thead></table>

</div><div id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%A2%D0%B8%D0%BF%5C%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82-"><table class="relative-table confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid" style="width: 100.001%; padding: 0px;"><tbody aria-live="polite" aria-relevant="all"><tr><td style="width: 33.3333%;">**Параметр<span style="color: #505050;">  
</span>**</td><td style="width: 33.7579%;">**Тип\\формат**</td><td style="width: 105.096%;">**Описание**</td></tr><tr role="row"><td class="confluenceTd" style="width: 33.3333%;">regionFias

</td><td class="confluenceTd" style="width: 33.7579%;">string</td><td class="confluenceTd" style="width: 105.096%;">Код региона населенного пункта по базе ФИАС. Получается ранее из поля region\_fias\_id подсказки (см. метод /api/prompter/location).</td></tr><tr role="row"><td class="confluenceTd" style="width: 33.3333%;"><span style="color: #505050;">areaFias</span>

</td><td class="confluenceTd" style="width: 33.7579%;">string</td><td class="confluenceTd" style="width: 105.096%;">Код области населенного пункта по базе ФИАС. Получается ранее из поля area\_fias\_id подсказки</td></tr><tr role="row"><td class="confluenceTd" style="width: 33.3333%;"><span style="color: #505050;">cityFias</span>

</td><td class="confluenceTd" style="width: 33.7579%;">string</td><td class="confluenceTd" style="width: 105.096%;">Код города населенного пункта по базе ФИАС. Получается ранее из поля city\_fias\_id подсказки</td></tr><tr role="row"><td class="confluenceTd" style="width: 33.3333%;"><span style="color: #505050;">settlementFias</span>

</td><td class="confluenceTd" style="width: 33.7579%;">string</td><td class="confluenceTd" style="width: 105.096%;">Код населенного пункта населенного пункта по базе ФИАС. Получается ранее из поля settlement\_fias\_id подсказки</td></tr><tr role="row"><td class="confluenceTd" style="width: 33.3333%;"><span style="color: #505050;">fullAddress</span>

</td><td class="confluenceTd" style="width: 33.7579%;">string</td><td class="confluenceTd" style="width: 105.096%;">Полное название населенного пункта по базе ФИАС. Получается ранее из поля unrestricted\_value подсказки</td></tr></tbody></table>

</div>####  

#### **Результат запроса**

<div id="bkmrk--0"><table class="relative-table confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid" style="width: 0%; padding: 0px; height: 5px;"><colgroup><col></col><col></col><col></col></colgroup><thead class="tableFloatingHeaderOriginal" style="position: fixed; margin-top: 0px; left: 325px; z-index: 3; width: 520px; top: 40px;"></thead></table>

</div><div id="bkmrk-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80-%D0%A2%D0%B8%D0%BF%5C%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82--0"><div><table class="relative-table confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid" style="width: 100.001%; padding: 0px;"><tbody aria-live="polite" aria-relevant="all"><tr><td style="width: 34.6913%;">**Параметр<span style="color: #505050;">  
</span>**</td><td style="width: 32.3999%;">**Тип\\формат**</td><td style="width: 105.096%;">**Описание**</td></tr><tr role="row"><td class="confluenceTd" style="width: 34.6913%;">pickup\_point\_available

</td><td class="confluenceTd" style="width: 32.3999%;">boolean</td><td class="confluenceTd" style="width: 105.096%;">Флаг доступности указанного в запросе населенного пункта для сбора заказов

</td></tr></tbody></table>

</div></div>####  

#### **Пример результата запроса**

```JSON
{
    "success": true,
    "pickup_location_available": true
}
```

<div data-hasbody="true" data-macro-name="code" id="bkmrk--1"><div><div><div></div></div></div></div>

# /api/lite/pub/products/dimensions

### Получение габаритов условного минимального упакованного места

 /api/lite/pub/products/dimensions

<div id="bkmrk-%28%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%80">(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))</div><div id="bkmrk-"></div>Получение габаритов минимальной условной коробки, в которую поместятся указанные товары с указанным количеством.

Не привязано к возможными габаритам типовых коробок или другим параметрам. Только математическое моделирование коробки с предпочтительным соотношением сторон 3:3:2

Поиск идет сначала по variantId, если он непустой, затем по variantExtId

#### **Пример:**

```JSON
{
    "items":[
        {           
            "variantId":"1060",
            "variantExtId":"1060",
            "quantity": 22
        },
        {            
            "variantId":"1182",
          	"variantExtId":"1182",
            "quantity": 3
        }
    ]
     
}
```

<div data-hasbody="true" data-macro-name="code" id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D1%83%D1%81%D0%BF%D0%B5%D1%88%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BE%D1%82%D0%B2"><div><div><div>**Пример успешного ответа**</div></div></div></div>```JSON
{
    "success": true,
    "weight": 223,
    "dimensions": {
        "height": 40,
        "width": 40,
        "depth": 20
    }
}
```

#### **Пример ошибки**

```JSON
{
    "success": false,
    "errors": [
        {
            "code": 0,
            "message": "Не найден id 555"
        }
    ],
    "weight": null,
    "dimensions": null
}
```

<div data-hasbody="true" data-macro-name="code" id="bkmrk--0"><div><div><div></div></div></div></div>

# /api/lite/pub/dimensions (deprecated)

### Получение габаритов упаковки товаров (deprecated)

новый метод: [/api/lite/pub/products/dimensions](https://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/apilitepubproductsdimensions)

/api/lite/pub/dimensions

<div id="bkmrk-"></div>По перечню товаров получает примерные габариты и массу упакованного места для указанного перечня

#### **Запрос:**

```JSON
{
"items": [
            {               
                "id": "1002",
                "quantity": 1               
            },
            {               
                "id": "1003",
                "quantity": 3               
            }
         ]
}
```

<div data-hasbody="true" data-macro-name="code" id="bkmrk--0"><div><div><div></div></div></div></div>#### **Успех:**

```JSON
{
    "success": true,
    "weight": 357,
      "dimensions": {
        "height": 12,
        "width": 20,
        "depth": 23
      }
}
```

<div data-hasbody="true" data-macro-name="code" id="bkmrk--1"><div><div><div></div></div></div></div>#### **Ошибка:**

```JSON
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

<div data-hasbody="true" data-macro-name="code" id="bkmrk--2"><div><div><div></div></div></div></div>

# /api/lite/pub/dimensions-by-package

### Получение габаритов упаковки товаров по перечню параметров упаковок

/api/lite/pub/dimensions-by-package

<div id="bkmrk-%28%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%80">(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))</div><div id="bkmrk-"></div>По перечню упаковок получает примерные габариты и массу упакованного места

#### **Запрос:**

```JSON
{
"items": [
            {
                "weight": 357, // в граммах
                "quantity": 2, // в штуках
                "dimensions": {
                    "height": 12, // в сантиметрах
                    "width": 20,
                    "depth": 23
                }
            },
            {
                "weight": 680,
                "quantity": 1,
                "dimensions": {
                    "height": 3,
                    "width": 20,
                    "depth": 4
                }
            }
         ]
}
```

<div data-hasbody="true" data-macro-name="code" id="bkmrk--0"><div><div><div></div></div></div></div>#### **Успех:**

```JSON
{
    "success": true,
    "weight": 357,
      "dimensions": {
        "height": 12,
        "width": 20,
        "depth": 23
      }
}
```

<div data-hasbody="true" data-macro-name="code" id="bkmrk--1"><div><div><div></div></div></div></div>#### **Ошибка:**

```JSON
{
  	"success": false,
	"errors": [
 		{
           "code": 0,
           "message": "Значение поля quantity во всех позициях должно быть > 0"
 		}
	]
}
```

<div data-hasbody="true" data-macro-name="code" id="bkmrk--2"><div><div><div></div></div></div></div>

# /api/dlv/tariffs

### Расчет тарифов (/api/dlv/tariffs)

/api/dlv/tariffs

<div id="bkmrk-%28%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%80"><div><div>(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))</div></div></div>Выполняет расчет доставки от пункта сбора заказов до указанного в виджете адреса доставки (в виде fias кодов) по указанным параметрам. Если sourceRegionFias, sourceAreaFias, sourceCityFias и sourcePostalCode не заданы - адрес отправления берётся **из настроек точки сбора**

fromTempoline - Заказ будет отправлен с нашего склада.

Для тарификации по России - нужны Фиас коды адреса получателя, для тарификации зарубежных адресов доставки - компоненты адреса Код страны, регион, город, населенный пункт.

<p class="callout info">При поиске тарифов для зарубежного города обязательно передавать поля country, region, city (также area, settlement, если есть).</p>

####  

#### **Пример**

```JSON
{
    "fromTempoline": false,
    "sourceRegionFias": null,
    "sourceAreaFias": null,
    "sourceCityFias": null,
    "sourceSettlementFias": null,
    "sourcePostalCode": null,
    "regionFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
    "areaFias": null,
    "cityFias": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
    "settlementFias": null,
    "postalCode": "123456",
    "weight": 1450,
    "insuranceSum": 500, // оценочная стоимость товара для расчета суммы страховки (чаще всего передают 100% от стоимости товара)
    "codSum": 500, // сумма наложенного платежа, которую курьерская компания возьмёт с покупателя, следует передавать стоимость доставки+ стоимость товаров в случае если оплата при получении.
    "dimensions": {
        "height": 10,
        "width": 8,
        "depth": 8
    },
    "deliveryServices": [
        "PARTIAL_DELIVERY",
        "TRYING"
    ], //опциональный список требующихся допуслуг: Частичный выкуп, Примерка, Погрузо-разгрузочные работы на руках (ПРР).
    "floor": 15 //Этаж подъёма для ПРР. В случае, если указан "LIFT_TO_DOOR_MANUAL" в deliveryServices, этаж нужно указывать обязательно
}
```

<div id="bkmrk-"><div><div data-hasbody="true" data-macro-name="code"><div><div><div></div></div></div></div></div></div>#### **Успех:**

```JSON
{
    "success": true,
    "tariffs": [
        {
            "minDeliveryTime": 5, // минимальный срок доставки после передачи заказа курьерской службе (в днях)
            "maxDeliveryTime": 6, // максимальный срок доставки после передачи заказа курьерской службе (в днях)
            "courier": "PickPoint", // наименование курьерской службы для покупателя
            "deliveryCode": "123456", // код тарифа 
          	"courierCode": "PICKPOINT",  // код курьерской службы (из справочника)
            "contractNumber": "443-12", // доп. код тарифа
            "type": "PVZ", // тип доставки (курьером или в ПВЗ)  // COURIER, RUSSIAN_POST, SELF_PICKUP
            "price": 817.1, // суммарная стоимость доставки для отправителя
            "codPrice": 0,  //стоимость агентского вознаграждения курьерской службы за перевод денежных средств за наложенный платёж
            "deliveryPrice": 742.1, // тариф за доставку в место назначение с учётом веса/габаритов
             "deliveryServices": [
                {
                    "price": 956.64,
                    "service": "BOX_NEEDED"
                },
                {
                    "price": 0,
                    "service": "TRYING"
                },
                {
                    "price": 0,
                    "service": "REVERSE"
                },
                {
                    "price": 0,
                    "service": "LIFT_TO_DOOR"
                },
                {
                    "price": 0,
                    "service": "LIFT_TO_DOOR_MANUAL"
                },
                {
                    "price": 40,
                    "service": "CHECK_CONTENT"
                }
            ], //доп.услуги доставки, если есть // могут включать PERSONALLY_IN_HANDS, REVERSE, CONTACTLESS_DELIVERY, DELIVERY_DATE_APPROVE, DANGEROUS_CARGO, WAITING_ON_ADDRESS, TEMPERATURE_REGIME, VERIFY, DAY_OFF_DELIVERY, PARTIAL_DELIVERY, LIFT_TO_DOOR, TRYING, CHECK_CONTENT, LIFT_TO_DOOR_MANUAL
            "insurancePrice": 75, // стоимость страховки для заказа у курьерской службы
          	"paymentMethods": ["COD_CARD", "ONLINE"]  // доступные способы оплаты
        },
        {
            "minDeliveryTime": 1,  
            "maxDeliveryTime": 1, 
            "courier": "Почта России",
            "courierCode": "RUSSIAN_POST_TEMPOLINE", 
            "deliveryCode": "RUSSIAN_POST_TEMPOLINE",
          	"contractNumber": "s-2333",
            "type": "RUSSIAN_POST",
            "price": 1736.6,
            "codPrice": 0,
            "deliveryPrice": 1733.6,
            "deliveryServices": [],
            "insurancePrice": 3,
          	"paymentMethods": ["COD_CARD"]
        }        
    ]
}
```

<div id="bkmrk--0"><div><div data-hasbody="true" data-macro-name="code"><div><div><div></div></div></div></div></div></div>#### **Ошибка:**

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/dlv/delivery_points

### Список постаматов / ПВЗ

/api/dlv/delivery\_points

<div id="bkmrk-%28%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%80"><div><div>(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))</div></div></div>Выполняет поиск постаматов/ПВЗ в указанном в виджете адресе города/населенного пункта (в виде fias кодов)

####  

#### **Пример:**

<div id="bkmrk-"><div><div data-hasbody="true" data-macro-name="code"><div><div><div></div></div></div></div></div></div>```JSON
{
    "regionFias":"0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
    "areaFias": null,
    "cityFias":"0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
    "settlementFias": null,
  	"countryCode": "RU",
    "region": null, // Заполняется, если countryCode задан и не RU
    "area": null, // Заполняется, если countryCode задан и не RU
    "city": null, // Заполняется, если countryCode задан и не RU
    "settlement": null, // Заполняется, если countryCode задан и не RU
    "courierCode": "PickPoint", - опциональный параметр для запроса ПВЗ/постаматов только по данной КС. 
    "dimensions":{  - опционально фильтр по доступным габаритам в ПВЗ
      "height":50,   - в см
      "width":50,
      "depth":50
      },
	"weight": 6505,   - в граммах - опционально фильтр по доступной предельной массе груза в ПВЗ
	"codSum": 1234, - в рублях - опционально - сумма наложенного платежа, если ненулевая
	"deliveryServices":["PARTIAL_DELIVERY", "TRYING"] - опциональный список требущихся допуслуг: Частичный выкуп, Примерка.
}
```

####  

#### **Успех:**

<div id="bkmrk--0"><div><div data-hasbody="true" data-macro-name="code"><div><div><div></div></div></div></div></div></div>```JSON
{
    "success": true,
    "list": [
        {
            "address": {
                "regionFias":"18133adf-90c2-438e-88c4-62c41656de70",
                "areaFias":"b502ae45-897e-4b6f-9776-6ff49740b537",
                "cityFias":"",
                "settlementFias":"",
                "country": "RU",
                "region": "Москва",
                "area": "",
                "city": "Москва",
                "settlement": "",
                "street": "Боровское ш.",
                "house": "20",
                "block": "",
                "building": "",
                "flat": "120",
                "fullAddress": "Москва, Боровское ш., 20, 120",
                "zip": ""
                }
            "metroStation": "Боровское шоссе",
            "latitude": "54.508904",
            "longitude": "36.262823",
            "code": "4005-002",
            "courier": "PickPoint",            
            "description": "Постамат расположен в супермаркете Фикс-Прайс,  вотдельно стоящем здании. Транспорт: Автобус №12, 61, 85, 97; Троллейбус №5, 12; Маршрутное такси №95, 97.            Остановка Библиотека им. Белинского.\nВойти в здание через центральный вход. Постамат и терминал расположен на 2 этаже в супермаркете Фикс-Прайс.",
            "maxSize": "43x23.4x34",
            "maxWeight": 1500,
            "courierCode": "PICKPOINT",
            "workTime": "Пн-Вс 10:00-19:00, Обед 10:00-19:00",
            "paymentMethods": ["COD_CARD", "ONLINE"],
  			"deliveryServices":["PARTIAL_DELIVERY", "TRYING"],
  			"type": "Postamat"
        }      
    ]
}
```

####  

#### **Ошибка:**

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/dlv/delivery_point

### Данные по одному ПВЗ

/api/dlv/delivery\_point

<div id="bkmrk-%28%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%80"><div><div>(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))</div></div></div>Выполняет поиск одного ПВЗ по коду курьерской службы и коду ПВЗ

####  

#### **Пример:**

```JSON
{
"courierCode": "PickPoint",
"pvzCode":"7302-015"
}
```

<div id="bkmrk-"><div><div data-hasbody="true" data-macro-name="code"><div><div><div></div></div></div></div></div></div>#### **Успех:**

```JSON
{
    "success": true,
    "list": [
        {
            "address": {
                "country": "Россия",
                "countryCode": "RU",
                "region": "Ульяновская",
                "area": null,
                "city": "Ульяновск",
                "settlement": null,
                "street": null,
                "house": null,
                "block": null,
                "building": null,
                "flat": null,
                "fullAddress": "Рябикова ул., д. 21, стр. 1",
                "fullCity": null,
                "rawData": null,
                "zip": "432045",
                "regionFias": "fee76045-fe22-43a4-ad58-ad99e903bd58",
                "areaFias": null,
                "cityFias": "bebfd75d-a0da-4bf9-8307-2e2c85eac463",
                "settlementFias": null
            },
            "metroStation": "",
            "latitude": "54.284595",
            "longitude": "48.30217",
            "code": "7302-015",
            "courier": "PickPoint",
            "description": "Пункт выдачи заказов расположен в ТЦ Вавилон. Транспорт: Маршрутное такси №4, 5, 43, 50, 52, 61, 71, 77, 81, 88, 96. Остановка Улица Станкостроителей.\nВойти в ТЦ Вавилон через центральный вход, на 2 этаже расположен пункт выдачи заказов.",
            "maxSize": "180",
            "maxWeight": 15,
            "workTime": "Пн-Пт 11:00-18:30, Сб 12:00-16:00",
            "paymentMethods": [
                "COD_CASH",
                "COD_CARD"
            ]
        }
    ]
}
```

<div id="bkmrk--0"><div><div data-hasbody="true" data-macro-name="code"><div><div><div></div></div></div></div></div></div>#### **Ошибка:**

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/lite/tariffs

### Расчет тарифов приватный

/api/lite/tariffs

<div id="bkmrk-"></div>Метод тарификации для вызова из ЛК (приватного доступа).

Сигнатура полностью идентична публичному методу api/dlv/tariffs

Отличие - в ответе могут быть включены тарифы, которые публично недоступны. но каналы доставки которых активны.

В этом методе доступно поле dlvPrice, содержащее исходную цену от DLV

# /api/lite/delivery_points

### Список постаматов / ПВЗ

/api/lite/delivery\_points

<div id="bkmrk-"><div><div></div></div></div>Метод списка ПВЗ для вызова из ЛК (приватного доступа).

Сигнатура полностью идентична публичному методу api/dlv/delivery\_points

# /api/lite/delivery_point

### Данные по одному ПВЗ

/api/lite/delivery\_point

<div id="bkmrk-"><div><div></div></div></div>Метод загрузки одного ПВЗ для вызова из ЛК (приватного доступа).

Сигнатура полностью идентична публичному методу api/dlv/delivery\_point

# /api/prompter/region

### <span style="color: #000000;">Подсказка улицы для заданного населенного пункта</span>

<span style="color: #000000;"> /api/prompter/region</span>

<div id="bkmrk-%28%D0%BC%D0%B5%D1%82%D0%BE%D0%B4-%D1%82%D1%80%D0%B5%D0%B1%D1%83%D0%B5%D1%82-%D0%B0%D0%B2%D1%82%D0%BE%D1%80"><div><div>(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))</div></div></div>Для запроса необходимо передать введенные пользователем буквы искомого региона:

/api/prompter/region?query=Рязан

В ответ возвращаются варианты улицы (использовать значение value)

#### **успех:**

```JSON
{
    "success": true,
    "suggestions": [
        {
            "value": "Рязанская область",
            "unrestricted_value": "Рязанская область",
            "data": {
                .... прочие детали варианта
            }
        }
    ]
}
```

#### **ошибка:** 

```JSON
{
"success": false,
"errors": [
 {
 "code": 0,
 "message": "Текст ошибки"
 }
]
}
```

# /api/prompter/countries

### Список стран

/api/prompter/countries

(метод требует [авторизации по домену](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/avtorizatsiya-po-domenu-v-publichnykh-metodakh-api))

Выводит список стран с их кодами

#### **Пример ответа:**

```JSON
{
    "countries": [
        {
            "title": "Россия",
            "code": "RU"
        },
        {
            "title": "Беларусь",
            "code": "BY"
        },
        {
            "title": "Казахстан",
            "code": "KZ"
        },
        ...
    ]
}
```