Сценарий из mcp-everything. Актуально на 2026-10-24.
Заказ корпоративного такси из своей системы: офис-менеджер или бот вызывает машину на нужный адрес.
import uuid, requests
API = "https://b2b-api.go.yandex.ru/integration/2.0"
H = {"Authorization": "Bearer <OAuth-токен>", "X-YaTaxi-Selected-Corp-Client-Id": "<client_id>"}
route = [[37.5880, 55.7340], [37.6173, 55.7558]] # [долгота, широта]
est = requests.post(f"{API}/orders/routestats", headers=H,
json={"route": route, "user_id": "<user_id>"}).json()
level = next(l for l in est["service_levels"] if l["class"] == "business")
order = requests.post(f"{API}/orders/create",
headers={**H, "X-Idempotency-Token": str(uuid.uuid4())},
json={"user_id": "<user_id>", "class": "business", "offer": est["offer"],
"route": [{"geopoint": route[0], "fullname": "Москва, ул. Льва Толстого, 16"},
{"geopoint": route[1], "fullname": "Москва, Красная площадь"}],
"comment": "Подъезд со двора"}).json()
progress = requests.get(f"{API}/orders/progress", headers=H,
params={"order_id": order["order_id"]}).json()
print(progress["status"], progress.get("time_left_raw"))
https://b2b-api.go.yandex.ru/integrationТип: OAuth 2.0
OAuth-токен получают в Кабинете Корпоративного Клиента: «Профиль компании» → «Получить токен» → вход на oauth.yandex.ru. Токен действует ограниченное время, затем его нужно получить заново.
Если по токену доступно несколько кабинетов, во всех запросах передаётся заголовок X-YaTaxi-Selected-Corp-Client-Id с ID клиента из профиля компании.
Authorization: Bearer <OAuth-токен>
В ответе clients[]: client_id, name, role.
Если передан user_id и в route не меньше двух точек, возвращается offer для создания заказа. В ответе: offer, service_levels (class, price, is_fixed_price, estimated_waiting), toll_roads.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Accept-Language |
header | string | нет | Язык: ru, en и др. |
route |
body | array | да | Точки маршрута [[долгота, широта], ...] |
user_id |
body | string | нет | ID сотрудника |
requirements |
body | object | нет | Требования к поездке (доступные — в GET /2.0/zoneinfo) |
use_toll_roads |
body | boolean | нет | Разрешить платные дороги, по умолчанию false |
Ответ 200 — order_id; 406 — оффер неактуален (code, message). При ответе 500 заказ мог быть создан — повторите запрос с тем же токеном идемпотентности.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
X-Idempotency-Token |
header | string | да | UUID; один токен — один заказ |
user_id |
body | string | да | ID сотрудника |
route |
body | array | да | Точки маршрута: geopoint ([долгота, широта]), fullname (адрес) |
class |
body | string | да | Тариф |
offer |
body | string | нет | ID оффера из routestats |
due_date |
body | string | нет | Время подачи YYYY-MM-DDThh:mm:ss±hh:mm |
requirements |
body | object | нет | Требования к заказу |
cost_center_values |
body | array | нет | Значения полей центров затрат: id, title, value |
comment |
body | string | нет | Комментарий водителю |
order_tag |
body | string | нет | Тег заказа |
В ответе: status, time_left_raw (секунд до прибытия или окончания), vehicle.location.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
order_id |
query | string | да | ID заказа |
routestats → orders/create → orders/progress/orders/info → при необходимости orders/cancel.route и geopoint — в порядке [долгота, широта]; в vehicle.location ответа — [широта, долгота] (см. примеры документации).state из cancel_rules метода orders/info.geo_restrictions), информации о зоне (zoneinfo), промокодов, автопарка, заказов Еды, операций Заправок и командировок.Если этого недостаточно — официальная документация: https://yandex.ru/dev/taxi/doc/business-api/concepts/about-docpage/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/yandex-go-business.md