{"name":"API Яндекс Go для бизнеса","vendor":"Яндекс","industry":"travel","summary":"API для корпоративных клиентов Яндекс Go: управление сотрудниками, центрами затрат, лимитами, департаментами и районами, заказ корпоративного такси (оценка стоимости, создание, отслеживание, отмена), список заказов и отчёты, промокоды, а также данные по другим сервисам (Еда, Заправки, командировки). Версия API 2.0. Вопросы по интеграции — corptaxi-api@yandex-team.ru.","docsUrl":"https://yandex.ru/dev/taxi/doc/business-api/concepts/about-docpage/","coverage":{"included":[],"excluded":[]},"scenarios":[{"id":"zakazat-taksi-sotrudniku","title":"Заказать такси сотруднику","summary":"Заказ корпоративного такси из своей системы: офис-менеджер или бот вызывает машину на нужный адрес.","steps":["Получи OAuth-токен в Кабинете Корпоративного Клиента («Профиль компании» → «Получить токен») и передавай его в заголовке Authorization: Bearer <токен>. Если по токену доступно несколько кабинетов, добавляй X-YaTaxi-Selected-Corp-Client-Id — список доступных даёт GET /2.0/auth/list.","Узнай стоимость: POST /2.0/orders/routestats с route — точками [долгота, широта] (не меньше двух) — и user_id сотрудника. В ответе service_levels с ценой и временем подачи по тарифам и offer для заказа.","Создай заказ: POST /2.0/orders/create с user_id, route (geopoint и fullname — адрес), class (тариф), offer и заголовком X-Idempotency-Token — новым UUID на каждый заказ. Для предзаказа — due_date.","Ответ 406 значит, что оффер устарел: заново вызови routestats. При 500 заказ мог создаться — повтори запрос с тем же X-Idempotency-Token, дубля не будет.","Следи за машиной: GET /2.0/orders/progress с order_id — status, time_left_raw (секунд до прибытия) и vehicle.location. Учти: в vehicle.location порядок [широта, долгота], обратный route."],"code":"import uuid, requests\n\nAPI = \"https://b2b-api.go.yandex.ru/integration/2.0\"\nH = {\"Authorization\": \"Bearer <OAuth-токен>\", \"X-YaTaxi-Selected-Corp-Client-Id\": \"<client_id>\"}\nroute = [[37.5880, 55.7340], [37.6173, 55.7558]]          # [долгота, широта]\n\nest = requests.post(f\"{API}/orders/routestats\", headers=H,\n                    json={\"route\": route, \"user_id\": \"<user_id>\"}).json()\nlevel = next(l for l in est[\"service_levels\"] if l[\"class\"] == \"business\")\n\norder = requests.post(f\"{API}/orders/create\",\n                      headers={**H, \"X-Idempotency-Token\": str(uuid.uuid4())},\n                      json={\"user_id\": \"<user_id>\", \"class\": \"business\", \"offer\": est[\"offer\"],\n                            \"route\": [{\"geopoint\": route[0], \"fullname\": \"Москва, ул. Льва Толстого, 16\"},\n                                      {\"geopoint\": route[1], \"fullname\": \"Москва, Красная площадь\"}],\n                            \"comment\": \"Подъезд со двора\"}).json()\n\nprogress = requests.get(f\"{API}/orders/progress\", headers=H,\n                        params={\"order_id\": order[\"order_id\"]}).json()\nprint(progress[\"status\"], progress.get(\"time_left_raw\"))","language":"python","methods":["GET /2.0/auth/list","POST /2.0/orders/routestats","POST /2.0/orders/create","GET /2.0/orders/progress"]},{"id":"zavesti-novogo-sotrudnika","title":"Завести нового сотрудника","summary":"Онбординг: новый сотрудник из HR-системы сразу получает доступ к корпоративному такси с нужным центром затрат и лимитом.","steps":["Возьми ID центра затрат: GET /2.0/cost_centers/list (limit, offset).","Создай сотрудника: POST /2.0/users с fullname, phone в международном формате (+79001234567), is_active = true, cost_centers_id и nickname — ID сотрудника в твоей системе, чтобы потом сопоставлять записи.","Лимиты передай в limits: limit_id ранее созданного лимита и service (taxi, eats2, drive и т. д.).","Проверить и сверить список можно через GET /2.0/users: страницы листаются по next_cursor, total_amount — общее число сотрудников."],"code":"curl -X POST https://b2b-api.go.yandex.ru/integration/2.0/users \\\n  -H \"Authorization: Bearer $YAGO_TOKEN\" -H 'Content-Type: application/json' \\\n  -d '{\n        \"fullname\": \"Иван Петров\",\n        \"phone\": \"+79001234567\",\n        \"is_active\": true,\n        \"email\": \"i.petrov@example.ru\",\n        \"nickname\": \"EMP-1042\",\n        \"cost_centers_id\": \"<cost_center_id>\",\n        \"limits\": [{\"limit_id\": \"<limit_id>\", \"service\": \"taxi\"}]\n      }'","language":"bash","methods":["POST /2.0/users","GET /2.0/users","GET /2.0/cost_centers/list"]},{"id":"vygruzit-poezdki-za-mesyats","title":"Выгрузить поездки за месяц","summary":"Сверка расходов: все поездки за период — в бухгалтерию или отчёт по подразделениям.","steps":["Запроси заказы за период: GET /2.0/orders/list с since_datetime и till_datetime (формат YYYY-MM-DDThh:mm:ss±hh:mm), sorting_field = finished_date, limit и offset. Для одного сотрудника — user_id.","Листай страницы, пока offset не превысит total_amount из ответа.","Стоимость с НДС, водителя и маршрут по конкретной поездке отдаёт GET /2.0/orders/info с order_id — поля cost, cost_with_vat, performer, source, destination."],"code":"import requests\n\nAPI = \"https://b2b-api.go.yandex.ru/integration/2.0\"\nH = {\"Authorization\": \"Bearer <OAuth-токен>\"}\nparams = {\"since_datetime\": \"2026-10-01T00:00:00+03:00\", \"till_datetime\": \"2026-10-31T23:59:59+03:00\",\n          \"sorting_field\": \"finished_date\", \"sorting_direction\": 1, \"limit\": 100, \"offset\": 0}\norders = []\nwhile True:\n    page = requests.get(f\"{API}/orders/list\", headers=H, params=params).json()\n    orders += page[\"items\"]\n    params[\"offset\"] += params[\"limit\"]\n    if params[\"offset\"] >= page[\"total_amount\"]:\n        break\nprint(len(orders))","language":"python","methods":["GET /2.0/orders/info","GET /2.0/orders/list"]},{"id":"otmenit-zakaz-taksi","title":"Отменить заказ такси","summary":"Сотрудник передумал ехать — отменяем заказ по правилам, которые сейчас действуют.","steps":["Узнай допустимые правила отмены: GET /2.0/orders/info с order_id — поле cancel_rules (free, paid или minimal).","Отмени: POST /2.0/orders/cancel с order_id в строке запроса и state из cancel_rules в теле. Ответ — {\"status\": \"cancelled\"}.","Если доступна только платная отмена, предупреди сотрудника до вызова: деньги спишутся с корпоративного счёта."],"code":"curl -X POST \"https://b2b-api.go.yandex.ru/integration/2.0/orders/cancel?order_id=<order_id>\" \\\n  -H \"Authorization: Bearer $YAGO_TOKEN\" -H 'Content-Type: application/json' \\\n  -d '{\"state\": \"free\"}'","language":"bash","methods":["GET /2.0/orders/info","POST /2.0/orders/cancel"]}],"baseUrls":[{"label":"Боевой","url":"https://b2b-api.go.yandex.ru/integration"}],"auth":{"type":"oauth2","description":"OAuth-токен получают в Кабинете Корпоративного Клиента: «Профиль компании» → «Получить токен» → вход на `oauth.yandex.ru`. Токен действует ограниченное время, затем его нужно получить заново.\n\nЕсли по токену доступно несколько кабинетов, во всех запросах передаётся заголовок `X-YaTaxi-Selected-Corp-Client-Id` с ID клиента из профиля компании.","example":"Authorization: Bearer <OAuth-токен>"},"methods":[{"id":"GET /2.0/auth/list","title":"Клиенты, доступные по токену","httpMethod":"GET","path":"/2.0/auth/list","description":"В ответе `clients[]`: `client_id`, `name`, `role`.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /2.0/users","title":"Создание сотрудника","httpMethod":"POST","path":"/2.0/users","description":"","params":[{"name":"X-YaTaxi-Selected-Corp-Client-Id","in":"header","type":"string","required":false,"description":"ID клиента (обязателен при нескольких клиентах)"},{"name":"fullname","in":"body","type":"string","required":true,"description":"Полное имя (может быть пустой строкой)"},{"name":"phone","in":"body","type":"string","required":true,"description":"Телефон в международном формате, например +79001234567"},{"name":"is_active","in":"body","type":"boolean","required":true,"description":"Активен ли сотрудник"},{"name":"email","in":"body","type":"string","required":false,"description":"Email"},{"name":"cost_centers_id","in":"body","type":"string","required":false,"description":"ID центра затрат"},{"name":"nickname","in":"body","type":"string","required":false,"description":"Краткое имя (ID во внешней системе)"},{"name":"department_id","in":"body","type":"string","required":false,"description":"ID департамента"},{"name":"limits","in":"body","type":"array","required":false,"description":"Месячные лимиты по сервисам"},{"name":"limits[].limit_id","in":"body","type":"string","required":true,"description":"ID ранее созданного лимита"},{"name":"limits[].service","in":"body","type":"string","required":true,"description":"taxi, eats2, grocery, drive, tanker, cargo, travel, scooters"},{"name":"documents","in":"body","type":"array","required":false,"description":"Документы сотрудника (document_type обязателен)"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /2.0/users","title":"Список сотрудников","httpMethod":"GET","path":"/2.0/users","description":"Сортировка по времени создания, по возрастанию. В ответе: `items`, `cursor`, `next_cursor`, `limit`, `total_amount`.","params":[{"name":"limit","in":"query","type":"integer","required":false,"description":"Число записей, по умолчанию 100"},{"name":"cursor","in":"query","type":"string","required":false,"description":"next_cursor из предыдущего ответа (для следующих страниц)"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /2.0/cost_centers/list","title":"Центры затрат","httpMethod":"GET","path":"/2.0/cost_centers/list","description":"","params":[{"name":"limit","in":"query","type":"integer","required":false,"description":"По умолчанию 100"},{"name":"offset","in":"query","type":"integer","required":false,"description":"Сколько записей пропустить"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /2.0/orders/routestats","title":"Стоимость и оффер на поездку","httpMethod":"POST","path":"/2.0/orders/routestats","description":"Если передан `user_id` и в `route` не меньше двух точек, возвращается `offer` для создания заказа. В ответе: `offer`, `service_levels` (`class`, `price`, `is_fixed_price`, `estimated_waiting`), `toll_roads`.","params":[{"name":"Accept-Language","in":"header","type":"string","required":false,"description":"Язык: ru, en и др."},{"name":"route","in":"body","type":"array","required":true,"description":"Точки маршрута [[долгота, широта], ...]"},{"name":"user_id","in":"body","type":"string","required":false,"description":"ID сотрудника"},{"name":"requirements","in":"body","type":"object","required":false,"description":"Требования к поездке (доступные — в GET /2.0/zoneinfo)"},{"name":"use_toll_roads","in":"body","type":"boolean","required":false,"description":"Разрешить платные дороги, по умолчанию false"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /2.0/orders/create","title":"Создание заказа такси","httpMethod":"POST","path":"/2.0/orders/create","description":"Ответ `200` — `order_id`; `406` — оффер неактуален (`code`, `message`). При ответе `500` заказ мог быть создан — повторите запрос с тем же токеном идемпотентности.","params":[{"name":"X-Idempotency-Token","in":"header","type":"string","required":true,"description":"UUID; один токен — один заказ"},{"name":"user_id","in":"body","type":"string","required":true,"description":"ID сотрудника"},{"name":"route","in":"body","type":"array","required":true,"description":"Точки маршрута: geopoint ([долгота, широта]), fullname (адрес)"},{"name":"class","in":"body","type":"string","required":true,"description":"Тариф"},{"name":"offer","in":"body","type":"string","required":false,"description":"ID оффера из routestats"},{"name":"due_date","in":"body","type":"string","required":false,"description":"Время подачи YYYY-MM-DDThh:mm:ss±hh:mm"},{"name":"requirements","in":"body","type":"object","required":false,"description":"Требования к заказу"},{"name":"cost_center_values","in":"body","type":"array","required":false,"description":"Значения полей центров затрат: id, title, value"},{"name":"comment","in":"body","type":"string","required":false,"description":"Комментарий водителю"},{"name":"order_tag","in":"body","type":"string","required":false,"description":"Тег заказа"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /2.0/orders/progress","title":"Отслеживание заказа","httpMethod":"GET","path":"/2.0/orders/progress","description":"В ответе: `status`, `time_left_raw` (секунд до прибытия или окончания), `vehicle.location`.","params":[{"name":"order_id","in":"query","type":"string","required":true,"description":"ID заказа"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /2.0/orders/info","title":"Информация о заказе","httpMethod":"GET","path":"/2.0/orders/info","description":"В ответе: `id`, `user_id`, `class`, `status`, `due_date`, `finished_date`, `performer` (водитель и автомобиль), `source`, `destination`, `cancel_rules`, `cost`, `cost_with_vat`.","params":[{"name":"order_id","in":"query","type":"string","required":true,"description":"ID заказа"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /2.0/orders/cancel","title":"Отмена заказа","httpMethod":"POST","path":"/2.0/orders/cancel","description":"Ответ: `{\"status\": \"cancelled\"}`.","params":[{"name":"order_id","in":"query","type":"string","required":true,"description":"ID заказа"},{"name":"state","in":"body","type":"string","required":false,"description":"Правило отмены из cancel_rules: free, paid, minimal"}],"requestExample":"POST http://b2b-api.go.yandex.ru/integration/2.0/orders/cancel?order_id=191...280\n...\nAuthorization: Bearer <OAuth-token>\nX-YaTaxi-Selected-Corp-Client-Id: <client-id>\n {\n \"state\": \"free\"\n }","responseExample":"","docsUrl":""},{"id":"GET /2.0/orders/list","title":"Список заказов клиента","httpMethod":"GET","path":"/2.0/orders/list","description":"В ответе: `items`, `limit`, `offset`, `total_amount`.","params":[{"name":"limit","in":"query","type":"integer","required":false,"description":"По умолчанию 100"},{"name":"offset","in":"query","type":"integer","required":false,"description":"Сколько записей пропустить"},{"name":"user_id","in":"query","type":"string","required":false,"description":"Фильтр по сотруднику"},{"name":"sorting_field","in":"query","type":"string","required":false,"description":"due_date (по умолчанию) или finished_date"},{"name":"sorting_direction","in":"query","type":"integer","required":false,"description":"1 — по возрастанию, -1 — по убыванию (по умолчанию)"},{"name":"since_datetime","in":"query","type":"string","required":false,"description":"Начало периода YYYY-MM-DDThh:mm:ss±hh:mm"},{"name":"till_datetime","in":"query","type":"string","required":false,"description":"Конец периода"}],"requestExample":"","responseExample":"","docsUrl":""}],"codeExamples":[],"errors":[{"code":"400","description":"Неизвестный параметр или недопустимое значение"},{"code":"401","description":"Неверный OAuth-токен"},{"code":"403","description":"SELECT_CLIENT_HEADER_REQUIRED — не передан X-YaTaxi-Selected-Corp-Client-Id; SELECTED_CLIENT_ACCESS_DENIED — нет доступа к указанному клиенту"},{"code":"404","description":"Заказ не найден"},{"code":"406","description":"Оффер неактуален"},{"code":"409","description":"Конфликт"},{"code":"500","description":"Ошибка сервера (заказ мог быть создан)"}],"limits":"","gotchas":["Порядок работы: получить токен → настроить центры затрат, роли и сотрудников → `routestats` → `orders/create` → `orders/progress`/`orders/info` → при необходимости `orders/cancel`.","Координаты в `route` и `geopoint` — в порядке [долгота, широта]; в `vehicle.location` ответа — [широта, долгота] (см. примеры документации).","Для отмены передайте `state` из `cancel_rules` метода `orders/info`.","Также есть методы департаментов и их лимитов, районов (`geo_restrictions`), информации о зоне (`zoneinfo`), промокодов, автопарка, заказов Еды, операций Заправок и командировок.","Для заказа доставки есть отдельный API доставки (cargo API)."],"slug":"yandex-go-business","version":2,"updatedAt":"2026-10-24T17:05:41.035Z","sources":[{"title":"API Яндекс Go для бизнеса","url":"https://yandex.ru/dev/taxi/taxicorp/","kind":"research","addedAt":"2026-10-17T07:11:36.546Z"},{"title":"Введение","url":"https://yandex.ru/dev/taxi/doc/business-api/concepts/about-docpage/","kind":"research","addedAt":"2026-10-17T07:11:36.546Z"},{"title":"Начало работы","url":"https://taxi__business-api.docs-viewer.yandex.ru/ru/concepts/quickstart","kind":"research","addedAt":"2026-10-17T07:11:36.546Z"},{"title":"Запросы к сервису API 2.0","url":"https://taxi__business-api.docs-viewer.yandex.ru/ru/concepts/request-index-api20","kind":"research","addedAt":"2026-10-17T07:11:36.546Z"},{"title":"Создание заказа","url":"https://taxi__business-api.docs-viewer.yandex.ru/ru/concepts/api20/order-create","kind":"research","addedAt":"2026-10-17T07:11:36.546Z"},{"title":"Стоимость поездки","url":"https://taxi__business-api.docs-viewer.yandex.ru/ru/concepts/api20/routestats","kind":"research","addedAt":"2026-10-17T07:11:36.546Z"},{"title":"Отмена заказа","url":"https://taxi__business-api.docs-viewer.yandex.ru/ru/concepts/api20/order-cancel","kind":"research","addedAt":"2026-10-17T07:11:36.546Z"},{"title":"Создание сотрудника","url":"https://taxi__business-api.docs-viewer.yandex.ru/ru/concepts/api20/user-create","kind":"research","addedAt":"2026-10-17T07:11:36.546Z"},{"title":"Вставленный текст","url":"","kind":"import","addedAt":"2026-10-17T07:11:36.546Z"},{"title":"scenarios-yandex-go-business.md","url":"","kind":"import","addedAt":"2026-10-24T17:05:30.185Z"}],"logoUrl":null}