Отрасль: Путешествия и транспорт. Актуально на 2026-10-24.
API для корпоративных клиентов Яндекс Go: управление сотрудниками, центрами затрат, лимитами, департаментами и районами, заказ корпоративного такси (оценка стоимости, создание, отслеживание, отмена), список заказов и отчёты, промокоды, а также данные по другим сервисам (Еда, Заправки, командировки). Версия API 2.0. Вопросы по интеграции — corptaxi-api@yandex-team.ru.
Заказ корпоративного такси из своей системы: офис-менеджер или бот вызывает машину на нужный адрес.
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"))
Онбординг: новый сотрудник из HR-системы сразу получает доступ к корпоративному такси с нужным центром затрат и лимитом.
curl -X POST https://b2b-api.go.yandex.ru/integration/2.0/users \
-H "Authorization: Bearer $YAGO_TOKEN" -H 'Content-Type: application/json' \
-d '{
"fullname": "Иван Петров",
"phone": "+79001234567",
"is_active": true,
"email": "i.petrov@example.ru",
"nickname": "EMP-1042",
"cost_centers_id": "<cost_center_id>",
"limits": [{"limit_id": "<limit_id>", "service": "taxi"}]
}'
Сверка расходов: все поездки за период — в бухгалтерию или отчёт по подразделениям.
import requests
API = "https://b2b-api.go.yandex.ru/integration/2.0"
H = {"Authorization": "Bearer <OAuth-токен>"}
params = {"since_datetime": "2026-10-01T00:00:00+03:00", "till_datetime": "2026-10-31T23:59:59+03:00",
"sorting_field": "finished_date", "sorting_direction": 1, "limit": 100, "offset": 0}
orders = []
while True:
page = requests.get(f"{API}/orders/list", headers=H, params=params).json()
orders += page["items"]
params["offset"] += params["limit"]
if params["offset"] >= page["total_amount"]:
break
print(len(orders))
Сотрудник передумал ехать — отменяем заказ по правилам, которые сейчас действуют.
curl -X POST "https://b2b-api.go.yandex.ru/integration/2.0/orders/cancel?order_id=<order_id>" \
-H "Authorization: Bearer $YAGO_TOKEN" -H 'Content-Type: application/json' \
-d '{"state": "free"}'
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.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
X-YaTaxi-Selected-Corp-Client-Id |
header | string | нет | ID клиента (обязателен при нескольких клиентах) |
fullname |
body | string | да | Полное имя (может быть пустой строкой) |
phone |
body | string | да | Телефон в международном формате, например +79001234567 |
is_active |
body | boolean | да | Активен ли сотрудник |
email |
body | string | нет | |
cost_centers_id |
body | string | нет | ID центра затрат |
nickname |
body | string | нет | Краткое имя (ID во внешней системе) |
department_id |
body | string | нет | ID департамента |
limits |
body | array | нет | Месячные лимиты по сервисам |
limits[].limit_id |
body | string | да | ID ранее созданного лимита |
limits[].service |
body | string | да | taxi, eats2, grocery, drive, tanker, cargo, travel, scooters |
documents |
body | array | нет | Документы сотрудника (document_type обязателен) |
Сортировка по времени создания, по возрастанию. В ответе: items, cursor, next_cursor, limit, total_amount.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
limit |
query | integer | нет | Число записей, по умолчанию 100 |
cursor |
query | string | нет | next_cursor из предыдущего ответа (для следующих страниц) |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
limit |
query | integer | нет | По умолчанию 100 |
offset |
query | integer | нет | Сколько записей пропустить |
Если передан 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 заказа |
В ответе: id, user_id, class, status, due_date, finished_date, performer (водитель и автомобиль), source, destination, cancel_rules, cost, cost_with_vat.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
order_id |
query | string | да | ID заказа |
Ответ: {"status": "cancelled"}.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
order_id |
query | string | да | ID заказа |
state |
body | string | нет | Правило отмены из cancel_rules: free, paid, minimal |
Пример запроса:
POST http://b2b-api.go.yandex.ru/integration/2.0/orders/cancel?order_id=191...280
...
Authorization: Bearer <OAuth-token>
X-YaTaxi-Selected-Corp-Client-Id: <client-id>
{
"state": "free"
}
В ответе: items, limit, offset, total_amount.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
limit |
query | integer | нет | По умолчанию 100 |
offset |
query | integer | нет | Сколько записей пропустить |
user_id |
query | string | нет | Фильтр по сотруднику |
sorting_field |
query | string | нет | due_date (по умолчанию) или finished_date |
sorting_direction |
query | integer | нет | 1 — по возрастанию, -1 — по убыванию (по умолчанию) |
since_datetime |
query | string | нет | Начало периода YYYY-MM-DDThh:mm:ss±hh:mm |
till_datetime |
query | string | нет | Конец периода |
routestats → orders/create → orders/progress/orders/info → при необходимости orders/cancel.route и geopoint — в порядке [долгота, широта]; в vehicle.location ответа — [широта, долгота] (см. примеры документации).state из cancel_rules метода orders/info.geo_restrictions), информации о зоне (zoneinfo), промокодов, автопарка, заказов Еды, операций Заправок и командировок.| Код | Описание |
|---|---|
400 |
Неизвестный параметр или недопустимое значение |
401 |
Неверный OAuth-токен |
403 |
SELECT_CLIENT_HEADER_REQUIRED — не передан X-YaTaxi-Selected-Corp-Client-Id; SELECTED_CLIENT_ACCESS_DENIED — нет доступа к указанному клиенту |
404 |
Заказ не найден |
406 |
Оффер неактуален |
409 |
Конфликт |
500 |
Ошибка сервера (заказ мог быть создан) |
Если этого недостаточно — официальная документация: https://yandex.ru/dev/taxi/doc/business-api/concepts/about-docpage/ JSON: https://mcp-everything.ru/api/integrations/yandex-go-business. MCP: https://mcp-everything.ru/mcp