# Boxberry API: Рассчитать стоимость доставки до пункта выдачи или курьером

Сценарий из mcp-everything. Актуально на 2026-10-24.

Показать покупателю цену доставки Boxberry при оформлении заказа.

1. Возьми токен в личном кабинете: «Интеграция» → «Методы API». Все методы вызываются по одному адресу https://api.boxberry.ru/json.php с параметрами token и method.
2. Получи города доставки: ListCities с CountryCode = 643 (Россия). Список обновляй раз в день. Код нужного пункта выдачи берётся из справочника пунктов Boxberry.
3. Посчитай стоимость: DeliveryCosts с weight (граммы), target — кодом пункта выдачи, ordersum (объявленная стоимость) и paysum (сумма к оплате с получателя). Для курьерской доставки передай zip — индекс получателя, тогда target игнорируется.
4. Итог — price в ответе (price_base + price_service). Метод не проверяет данные: при несуществующем пункте или индексе стоимость будет неточной без ошибки, поэтому проверяй коды заранее.

```bash
curl -G https://api.boxberry.ru/json.php \
  -d token=<токен> -d method=DeliveryCosts \
  -d weight=1500 -d target=010 -d ordersum=1500 -d paysum=0 \
  -d height=10 -d width=15 -d depth=20
```

## Базовые URL

- Боевой (JSON API): `https://api.boxberry.ru/json.php`
- Боевой (SOAP, посылки): `https://api.boxberry.ru/__soap/1c_lc.php?wsdl`
- Боевой (SOAP, информация): `https://api.boxberry.ru/__soap/1c_public.php?wsdl`

## Авторизация

Тип: API-ключ

API-токен берут в личном кабинете Boxberry (account.boxberry.ru): «Интеграция» → вкладка «Методы API». Токен передаётся в параметре `token` в каждом запросе, не меняется при смене пароля. Запросы — только по HTTPS (TLS 1.2 или 1.3).

```
curl 'https://api.boxberry.ru/json.php?method=ListStatuses&token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&ImId=AAP298792807'
```

## Методы сценария

### ListCities — Список городов доставки

Города с пунктами выдачи Boxberry. Обновляйте раз в день. GET-запрос: `https://api.boxberry.ru/json.php?token=...&method=ListCities`.

В ответе для каждого города: `Name`, `Code`, `CountryCode`, `Prefix`, `Region`, `Kladr`, `CourierDelivery` (0/1), `Reception` (0/1) и др.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `token` | query | string | да | Токен |
| `method` | query | string | да | ListCities |
| `CountryCode` | query | string | нет | Код страны: 643 — Россия, 398 — Казахстан, 112 — Беларусь и др. |

### DeliveryCosts — Калькулятор стоимости доставки

Стоимость доставки до ПВЗ или курьером с учётом постоянных услуг по договору. Метод только считает и не проверяет данные: при неверном пункте или индексе стоимость будет неточной. GET-запрос.

Пример запроса (склад–склад):

В ответе: `price` (итог = `price_base` + `price_service`), `price_base` и др.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `token` | query | string | да | Токен |
| `method` | query | string | да | DeliveryCosts |
| `weight` | query | integer | да | Вес посылки, граммы |
| `targetstart` | query | string | нет | Код пункта приёма; по умолчанию из настроек кабинета |
| `target` | query | string | нет | Код пункта выдачи |
| `zip` | query | string | нет | Индекс для курьерской доставки; если передан, target игнорируется |
| `ordersum` | query | number | нет | Объявленная (страховая) стоимость |
| `deliverysum` | query | number | нет | Заявленная стоимость доставки |
| `paysum` | query | number | нет | Сумма к оплате с получателя |
| `height` | query | string | нет | Высота коробки, см |
| `width` | query | string | нет | Ширина, см |
| `depth` | query | string | нет | Глубина, см |
| `sucrh` | query | string | нет | 1 — расчёт с индивидуальными настройками кабинета |

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

```
https://api.boxberry.ru/json.php?token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&method=DeliveryCosts&weight=500&targetstart=010&target=010&ordersum=0&deliverysum=0&height=120&width=80&depth=50&paysum=100
```

## Нюансы

- Все методы — один адрес `json.php`; метод выбирается параметром `method`, токен — параметром `token`.
- Курьерская доставка определяется по индексу получателя — проверяйте его методами `ListZips` или `ZipCheck`. Для курьерской доставки за рубеж используйте `DeliveryCalculation`.
- `DeliveryCosts` не валидирует данные: несуществующий пункт или превышение габаритов дадут неточную стоимость без ошибки.
- Вес — в граммах, габариты — в сантиметрах; даты статусов — по Москве.
- Для многоместных заказов веса мест передаются как `weight`, `weight2` … `weight24`.

## Другие сценарии

- [Создать заказ и получить трек-номер с этикеткой](https://mcp-everything.ru/integrations/boxberry/scenarios/sozdat-zakaz-i-poluchit-trek-nomer.md)
- [Узнать статус посылки](https://mcp-everything.ru/integrations/boxberry/scenarios/uznat-status-posylki.md)

---

Если этого недостаточно — официальная документация: https://yandex.ru/support/delivery-boxberry/ru/pages/web-service-addresses
Вся интеграция одним документом: https://mcp-everything.ru/integrations/boxberry.md
