Отрасль: Логистика и доставка. Актуально на 2026-10-24.
API срочной курьерской доставки Достависта для бизнеса: расчёт стоимости, создание, изменение и отмена заказов, список заказов, данные и местоположение курьера, черновики доставок и построение маршрутов, детализация стоимости. Об изменениях в заказах и доставках сервис сообщает callback-уведомлениями. Интеграцию сначала отлаживают на тестовом стенде, затем открывают доступ к рабочему через api@dostavista.ru.
Показать покупателю цену курьерской доставки Достависты по городу.
curl -X POST https://robot.dostavista.ru/api/business/1.5/calculate-order \
-H 'X-DV-Auth-Token: <токен>' \
-H 'Content-Type: application/json' \
-d '{
"matter": "Документы",
"total_weight_kg": 1,
"points": [
{"address": "Москва, ул. Покровка, 11"},
{"address": "Москва, ул. Солянка, 4"}
]
}'
Вызвать курьера: забрать заказ со склада и доставить покупателю, с оплатой при получении или без.
curl -X POST https://robot.dostavista.ru/api/business/1.5/create-order \
-H 'X-DV-Auth-Token: <токен>' \
-H 'Content-Type: application/json' \
-d '{
"matter": "Цветы",
"total_weight_kg": 2,
"is_contact_person_notification_enabled": true,
"points": [
{"address": "Москва, ул. Покровка, 11", "contact_person": {"phone": "79030000001", "name": "Склад"}},
{
"address": "Москва, ул. Солянка, 4",
"contact_person": {"phone": "79030000002", "name": "Анна"},
"client_order_id": "1042",
"required_start_datetime": "2026-10-25T14:00:00+03:00",
"required_finish_datetime": "2026-10-25T16:00:00+03:00",
"taking_amount": 0
}
]
}'
Обновлять статус заказа у себя и показывать покупателю, где курьер.
import hashlib, hmac
def is_valid(body: bytes, signature: str, callback_secret: str) -> bool:
expected = hmac.new(callback_secret.encode(), body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature)
# В обработчике: if not is_valid(request.body, request.headers["X-DV-Signature"], SECRET): вернуть 403
Покупатель передумал или поменял адрес — поправить или отменить заказ, пока курьер не выехал.
curl -X POST https://robot.dostavista.ru/api/business/1.5/cancel-order \
-H 'X-DV-Auth-Token: <токен>' \
-H 'Content-Type: application/json' \
-d '{"order_id": 123456}'
https://robot.dostavista.ru/api/business/1.5https://robotapitest.dostavista.ru/api/business/1.5Тип: API-ключ
Секретный токен из личного кабинета передаётся в заголовке X-DV-Auth-Token в каждом запросе. Используются только методы GET (параметры в строке запроса) и POST (JSON в UTF-8), только по HTTPS.
Ответ:
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' 'https://robotapitest.dostavista.ru/api/business/1.5'
Точная стоимость перед созданием заказа; чем больше параметров, тем точнее. Без параметров возвращает минимальную стоимость. Принимает те же параметры, что create-order, но без обязательных.
В ответе — объект order: order_id, order_name, status, status_description, points и др.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
type |
body | string | нет | Тип заказа, по умолчанию standard; также same_day |
matter |
body | string | да | Что везём (категория товара), до 5000 символов |
vehicle_type_id |
body | integer | нет | Тип транспорта; по умолчанию 6 (пеший курьер); для same_day не передаётся |
total_weight_kg |
body | integer | нет | Общий вес, кг; для same_day обязателен и больше 0 |
insurance_amount |
body | money | нет | Сумма страховки |
is_client_notification_enabled |
body | boolean | нет | Уведомлять клиента о статусе |
is_contact_person_notification_enabled |
body | boolean | нет | SMS получателям с интервалом и телефоном курьера |
is_route_optimizer_enabled |
body | boolean | нет | Оптимизировать порядок адресов |
loaders_count |
body | integer | нет | Число грузчиков, до 11 |
payment_method |
body | string | нет | Способ оплаты |
bank_card_id |
body | integer | нет | Привязанная карта (для bank_card) |
promo_code |
body | string | нет | Промокод |
is_return_required |
body | boolean | нет | Заказ с возвратом |
points |
body | list | да | Адреса (точки) заказа |
points[].address |
body | string | да | Полный адрес: город, улица, дом; до 350 символов |
points[].contact_person.phone |
body | string | да | Телефон контактного лица |
points[].contact_person.name |
body | string | нет | Имя контактного лица |
points[].client_order_id |
body | string | нет | Номер заказа в магазине, до 32 символов |
points[].latitude |
body | coordinate | нет | Широта |
points[].longitude |
body | coordinate | нет | Долгота |
points[].required_start_datetime |
body | datetime | нет | Ожидаемое прибытие курьера, от |
points[].required_finish_datetime |
body | datetime | нет | Ожидаемое прибытие курьера, до |
points[].taking_amount |
body | money | нет | Сумма к получению от клиента на точке |
points[].buyout_amount |
body | money | нет | Сумма выкупа на точке |
points[].note |
body | string | нет | Информация для курьера |
points[].apartment_number |
body | string | нет | Квартира/офис |
points[].packages |
body | list | нет | Товары на точке: ware_code, description, items_count, item_payment_amount |
Пример запроса:
curl --include --header 'X-DV-Auth-Token: SECRET_AUTH_TOKEN' --data '{"matter":"Документы","points":[{"address":"Москва, ул. Покровка, 11","contact_person":{"phone":"79030000001"}},{"address":"Москва, ул. Солянка, 4","contact_person":{"phone":"79030000001"}}]}' 'https://robotapitest.dostavista.ru/api/business/1.5/create-order'
Изменение параметров созданного заказа.
Отменить можно в статусах new, available, active или delayed; если курьер посетил хотя бы одну точку — нельзя.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
order_id |
body | integer | да | Полный номер заказа |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
order_id |
query | integer | нет | Номер заказа или список номеров |
status |
query | string | нет | Статус заказов |
created_datetime_from |
query | datetime | нет | Создан от (в GET — url-кодировать) |
created_datetime_to |
query | datetime | нет | Создан до |
offset |
query | integer | нет | Смещение |
count |
query | integer | нет | Число заказов, максимум 50 |
next_page_id |
query | integer | нет | ID заказа, с которого начинать страницу |
Данные и местоположение курьера.
is_successful: true; ошибка — HTTP 400, is_successful: false, список errors и при invalid_parameters — объект parameter_errors той же структуры, что запрос.invalid_schema в schema_warnings; неизвестные поля в ответах нужно игнорировать.YYYY-MM-DDThh:mm:ss±hh:mm или с Z); в GET-запросах дату нужно url-кодировать (+ → %2B).order_created, order_changed), доставках и местоположении курьера приходят POST с JSON на URL из личного кабинета. Подпись — заголовок X-DV-Signature: HMAC-SHA256 от тела с ключом Callback Secret Key из кабинета.| Код | Описание |
|---|---|
invalid_parameters |
Ошибки в параметрах, подробности в parameter_errors |
invalid_schema |
Неизвестные ключи в параметрах |
required_auth_token |
Не передан заголовок X-DV-Auth-Token |
invalid_auth_token |
Некорректный токен |
requests_limit_exceeded |
Превышен лимит запросов |
invalid_api_version |
Неизвестная версия API |
required_api_upgrade |
Устаревшая версия API |
invalid_post_json |
Тело POST не в формате JSON |
invalid_api_method |
Несуществующий метод |
order_cannot_be_edited |
Заказ нельзя изменить |
order_cannot_be_canceled |
Заказ нельзя отменить |
insufficient_balance |
Недостаточно средств на балансе |
order_is_duplicate |
Заказ — копия недавнего |
route_not_found |
Маршрут не найден |
unapproved_contract |
Договор ещё не одобрен |
service_unavailable |
Сервис временно недоступен |
unexpected_error |
Неизвестная ошибка |
GET /orders — до 50 заказов за запрос.Если этого недостаточно — официальная документация: https://apitest.dostavista.ru/business-api/doc JSON: https://mcp-everything.ru/api/integrations/dostavista. MCP: https://mcp-everything.ru/mcp