TM API — различия между версиями
(→Запрос информации об экипажах) |
(→Создание экипажа) |
||
Строка 2186: | Строка 2186: | ||
* «Число (выбор из списка)» (непосредственное значение выбранного элемента списка) | * «Число (выбор из списка)» (непосредственное значение выбранного элемента списка) | ||
* «Перечисляемый» (значение выбранного элемента перечисления) | * «Перечисляемый» (значение выбранного элемента перечисления) | ||
+ | * «Дата» и «Дата/время» (Unix-время, всегда целое число) | ||
|- | |- | ||
|• str_value | |• str_value |
Версия 11:39, 31 октября 2022
TM API - специальный набор инструментов Такси-Мастер, который позволит объединить систему с вашим сайтом и различными полезными сервисами. Он предоставляется вам на свободных условиях.
Благодаря этому набору вы сможете:
- Создать механизм приема заказов через интернет.
- Сделать ваш сайт более информативным: публиковать полезную для клиентов информацию прямо из системы - список ближайших экипажей, предварительный расчет стоимости поездки, мониторинг движения автомобиля такси в процессе выполнения заказа, карты города и контактную информацию.
Содержание
- 1 Параметры TM API
- 2 Общее описание протокола
- 3 Описание запросов
- 3.1 Запрос-пинг
- 3.2 Запрос списка групп экипажей
- 3.3 Запрос списка групп клиентов
- 3.4 Запрос списка служб ЕДС
- 3.5 Запрос списка тарифов
- 3.6 Запрос списка услуг
- 3.7 Запрос списка атрибутов
- 3.8 Запрос списка скидок
- 3.9 Создание нового заказа
- 3.10 Создание нового заказа 2
- 3.11 Расчет суммы заказа
- 3.12 Расчет суммы заказа 2
- 3.13 Изменение состояния заказа
- 3.14 Запрос информации об экипаже
- 3.15 Запрос информации об экипажах
- 3.16 Создание экипажа
- 3.17 Обновление информации об экипаже
- 3.18 Запрос информации о водителе
- 3.19 Запрос списка водителей
- 3.20 Создание водителя
- 3.21 Обновление информации о водителе
- 3.22 Запрос информации об автомобиле
- 3.23 Запрос списка автомобилей
- 3.24 Создание автомобиля
- 3.25 Обновить информацию об автомобиле
- 3.26 Запрос координат экипажей
- 3.27 Запрос адресов, содержащих нужную строку
- 3.28 Запрос адресов, содержащих нужную строку 2
- 3.29 Поиск ближайшего адреса
- 3.30 Анализ маршрута
- 3.31 Анализ маршрута 2
- 3.32 Запрос информации о состоянии заказа
- 3.33 Создание задачи СМС серверу
- 3.34 Проверка авторизации
- 3.35 Регистрация клиента
- 3.36 Регистрация клиента 2
- 3.37 Запрос информации по клиенту
- 3.38 Запрос информации по клиентам
- 3.39 Изменение информации по клиенту
- 3.40 Изменение информации по клиенту 2
- 3.41 Запрос текущих заказов
- 3.42 Запрос выполненных заказов
- 3.43 Проведение операции по клиенту
- 3.44 Запрос операций по клиенту
- 3.45 Проведение операции по водителю
- 3.46 Запрос операций по водителю
- 3.47 Назначение динамического приоритета водителю
- 3.48 Задание координат экипажей
- 3.49 Изменение информации по заказу
- 3.50 Анализ телефона
- 3.51 Показать сообщение в ТМ
- 3.52 Запрос списка купленных смен водителей
- 3.53 Запрос списка запланированных смен водителей
- 3.54 Продажа смены водителю
- 3.55 Сохранение отзыва клиента
- 3.56 Поиск экипажей по координатам
- 3.57 Подбор тарифа для заказа
- 3.58 Импорт марок автомобилей в БД
- 3.59 Импорт цветов автомобилей в БД
- 3.60 Запрос информации по сотруднику клиента
- 3.61 Создание сотрудника клиента
- 3.62 Обновление информации о сотруднике клиента
- 3.63 Запрос списка состояний заказа
- 3.64 Запрос списка состояний экипажа
- 3.65 Запрос глобальных атрибутов
- 3.66 Изменение глобального атрибута
- 3.67 Создание резервирования автомобиля
- 3.68 Создание недоступности автомобиля
- 3.69 Вызвать системное событие
- 3.70 Проверить штраф клиента за отмену заказа
- 3.71 Запрос трека экипажа
- 3.72 Создание фиксированной смены водителя
- 3.73 Удаление фиксированной смены водителя
- 4 Описание протокола TMTAPI Версия 1.0
- 4.1 Общее описание протокола
- 4.2 Описание запросов
- 4.2.1 Запрос информации по номеру телефона
- 4.2.2 Запрос информации по ИД заказа
- 4.2.3 Смена состояния заказа
- 4.2.4 Запись пути к файлу разговора в базу данных
- 4.2.5 Создать новый заказ
- 4.2.6 Поиск улицы в базе
- 4.2.7 Смена состояния заказа по результату автодозвона
- 4.2.8 Соединить клиента и водителя
- 4.2.9 Количество свободных экипажей на линии
- 4.2.10 Запрос пользователя по логину софтфона
- 4.2.11 Установить режим «Перерыв» для линий софтфона
- 4.2.12 Запрос телефонов водителя по позывному экипажа
- 4.2.13 Запрос информации о ключе защиты
- 5 Пример формы для заказа такси
Параметры TM API
Задать настройки для корректной работы TM API вы сможете в программе Такси-Мастер в меню Настройки в одноименной ветке TM API .
- Установите флажок Использовать TM API , чтобы приступить к его использованию.
- В поле Локальный порт введите номер порта подключения к интернету, на котором работает и будет ожидать запросы о новых заказах TMServer. Рекомендуется оставить номер порта по умолчанию.
- При необходимости установите флажок Использовать автопроброс порта с помощью UPnP , также укажите Внешний порт и Локальный IP .
Ветка «Открытое API»
В данной ветке регулируется доступ к синхронизации Такси-Мастер со сторонним сервисом (сайтом), с помощью которого клиенты будут создавать заказы. С примером кода для работы вы можете ознакомиться в данной статье в разделе Общее описание протокола.
- Установите флажок Использовать открытое API для того, чтобы запустить работу протокола TMCommonAPI.
- В поле Секретный ключ укажите произвольный номер. В дальнейшем этот номер следует использовать в API-запросах на сайте.
Ветка «API для телефонии»
В данной ветке регулируются настройки API для телефонии, т.е. взаимодействие Такси-Мастер с call-центром через программный интерфейс. С его помощью call-центр может дать команду Такси-Мастер создать заказ или запросить информацию о статусе текущего заказа.
- Установите флажок Использовать открытое API для телефонии для того, чтобы запустить работу протокола TMTAPI.
- В поле Секретный ключ укажите номер секретного ключа для работы.
Ветка «TaxoPhone API»
Ветка «Платежные терминалы»
Параметры этой ветки отвечают за работу модуля интеграции с платежными системами.
- Установите флажок Включить прием терминальных платежей . Данная функция позволит отображать все платежные операции по приходу средств от водителей через терминалы в базе данных программы.
- В поле Секретный ключ укажите номер секретного ключа для работы с платежными системами и сверки платежей, который будет выслан вам в письме от менеджера. Секретный ключ - это определенный набор символов, необходимый для формирования подписи при передаче информации о платеже.
- Кнопка Задать всем водителям терминальный аккаунт по их ИД служит для соединения TM API с сервером Такси-Мастер. В результате соединения записи о терминальных аккаунтах генерируются, заносятся (для тех водителей, у которых они отсутствуют) и обновляются (для тех водителей, у которых уже существуют терминальные аккаунты) в Такси-Мастер.
Общее описание протокола
Формат запроса
TMAPI принимает входящие запросы по протоколу HTTPS. В URI запроса после ip адреса и порта, который будет слушать TM API, должно идти название API (common_api) и версия API. Пример:
GET https://ip:port/common_api/1.0/get_crew_groups_list
Для получения данных из БД используются запросы типа GET. Для записи данных в базу данных используются запросы типа POST. В запросе типа GET параметры запроса передаются в URI. Пример:
GET https://ip:port/common_api/1.0/calc_order_cost?tariff_id=1&distance_city=10 Signature: <...>
В запросе типа POST параметры передаются в теле запроса в формате application/x-www-form-urlencoded. Пример:
POST https://ip:port/common_api/1.0/create_order Signature: <...> Content-Type: application/x-www-form-urlencoded Content-Length: 118 phone=89123456789&source=SOURCE&source_time=20120501100000&dest=DEST&customer=CUSTOMER& comment=COMMENT&crew_group_id=1
В любом запросе обязательно должен быть заголовок Signature. В нем передается MD5 хэш, рассчитанный для строки, которая получается сцеплением строки параметров запроса с секретным ключом. Секретный ключ задается в
Файл - Настройки - TM API - Открытое API . Пример:Запрос: GET https://ip:port/common_api/1.0/calc_order_cost?tariff_id=1&distance_city=10 Секретный ключ: 1234567890 Signature = MD5("tariff_id=1&distance_city=10" + "1234567890") = d7b8fb11b5499b64d750b8efe53e2877
Формат ответа
TM API всегда возвращает HTTP код 200 ОК. Результат выполнения запроса содержится в теле ответа в формате JSON. Общий вид возвращаемого результата:
{ "code":<Числовой код результата>, "descr":"<Строковое описание результата>", "data":{<Дополнительная информация>} }
Существуют общие для всех запросов коды результатов:
Код | Описание |
---|---|
0 | Успешное выполнение запроса |
1 | Неизвестная ошибка |
2 | Неизвестный тип API |
3 | API отключено в настройках модуля TM API в ТМ2 |
4 | Не совпадает секретный ключ |
5 | Неподдерживаемая версия API |
6 | Неизвестное название запроса |
7 | Неверный тип запроса GET/POST |
8 | Не хватает входного параметра (в доп. информации ответа будет название отсутствующего параметра) |
9 | Некорректный входной параметр (в доп. информации ответа будет название некорректного параметра) |
10 | Внутренняя ошибка обработки запроса |
Описание запросов
Запрос-пинг
Для данного запроса не проверяется версия API, секретный ключ и тип запроса GET/POST.
Метод: GET или POST
Название запроса: ping
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос: GET https://ip:port/common_api/1.0/ping Ответ: { "code":0, "descr":"OK", "data":{} }
Запрос списка групп экипажей
Метод: GET
Название запроса: get_crew_groups_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
crew_groups | Массив | Список групп экипажей |
• id | Целое | ИД группы экипажей |
• name | Строка | Название группы экипажей |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_crew_groups_list Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "crew_groups":[ { "id":1, "name":"CREW_GROUP1" }, { "id":2, "name":"CREW_GROUP2" } ] } }
Запрос списка групп клиентов
Метод: GET
Название запроса: get_client_groups_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
client_groups | Массив | Список групп клиентов |
• id | Целое | ИД группы клиентов |
• name | Строка | Название группы клиентов |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_client_groups_list Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "client_groups":[ { "id":1, "name":"CLIENT_GROUP1" }, { "id":2, "name":"CLIENT_GROUP2" } ] } }
Запрос списка служб ЕДС
Метод: GET
Название запроса: get_uds_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
uds | Массив | Список служб ЕДС |
• id | Целое | ИД службы ЕДС |
• name | Строка | Название службы ЕДС |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_uds_list Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "uds":[ { "id":1, "name":"UDS1" }, { "id":2, "name":"UDS2" } ] } }
Запрос списка тарифов
Метод: GET
Название запроса: get_tariffs_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
tariffs | Массив | Список тарифов |
• id | Целое | ИД тарифа |
• name | Строка | Название тарифа |
• is_active | true или false | Активный тариф |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_tariffs_list Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "tariffs":[ { "id":1, "name":"TARIFF1" "is_active":true }, { "id":2, "name":"TARIFF2" "is_active":true } ] } }
Запрос списка услуг
Запрос устарел. Рекомендуется использовать Запрос списка атрибутов
Метод: GET
Название запроса: get_services_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
services | Массив | Список услуг |
• id | Целое | ИД услуги |
• name | Строка | Название услуги |
• sum | Дробное | Абсолютная сумма услуги, руб |
• percent | Дробное | Процент услуги от стоимости заказа, % |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_services_list Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "services":[ { "id":1, "name":"SERVICE1", "sum":100, "percent":0 }, { "id":2, "name":"SERVICE2" "sum":0, "percent":10 } ] } }
Запрос списка атрибутов
Метод: GET
Название запроса: get_order_params_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
order_params | Массив | Список параметров заказа |
• id | Целое | ИД параметра |
• name | Строка | Название параметра |
• sum | Дробное | Абсолютная сумма параметра, руб |
• percent | Дробное | Процент параметра от стоимости заказа, % |
• order_access_control | true или falce | Регулирует доступ к заказу |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_order_params_list Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "order_params":[ { "id":1, "name":"PARAM1", "sum":100, "percent":0, "order_access_control":true }, { "id":2, "name":"PARAM2", "sum":0, "percent":10, "order_access_control":false } ] } }
Запрос списка скидок
Метод: GET
Название запроса: get_discounts_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
discounts | Массив | Список скидок |
• id | Целое | ИД скидки |
• name | Строка | Название скидки |
• sum | Дробное | Абсолютная сумма скидки, руб |
• percent | Дробное | Процент скидки от стоимости заказа, % |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_discounts_list Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "discounts":[ { "id":1, "name":"DISCOUNT1", "sum":100, "percent":0 }, { "id":2, "name":"DISCOUNT2" "sum":0, "percent":10 } ] } }
Создание нового заказа
Метод: POST
Название запроса: create_order
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
phone | Строка, <= 30 символов | Номер телефона |
source | Строка | Адрес подачи |
source_time | ГГГГММДДччммсс | Время подачи |
Необязательные параметры | ||
dest | Строка | Адрес назначения |
customer | Строка | Заказчик |
comment | Строка | Комментарий |
crew_group_id | Целое | ИД группы экипажей |
uds_id | Целое | ИД службы ЕДС |
tariff_id | Целое | ИД тарифа |
is_prior | true или false | Предварительный заказ |
source_lon | Дробное | Долгота адреса подачи |
source_lat | Дробное | Широта адреса подачи |
dest_lon | Дробное | Долгота адреса назначения |
dest_lat | Дробное | Широта адреса назначения |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Заказ с такими параметрами уже создан |
101 | Тариф не найден |
102 | Группа экипажа не найдена |
103 | Служба ЕДС не найдена |
110 | Клиент заблокирован |
111 | Не найден клиент, который может использовать собственный счет для оплаты заказов |
114 | Недостаточно средств на безналичном счете клиента в ТМ |
115 | Отрицательный баланс на безналичном счете клиента в ТМ |
116 | Для клиента запрещена оплата заказа наличными. Клиент должен максимально использовать в заказе безналичную оплату (оплату с основного счета) |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
order_id | Целое | ИД созданного заказа |
Пример:
Запрос: POST https://ip:port/common_api/1.0/create_order Signature: <...> Content-Type: application/x-www-form-urlencoded Content-Length: 156 phone=89123456789&source=SOURCE&source_time=20120501100000&dest=DEST&customer=CUSTOMER& comment=COMMENT&crew_group_id=1&uds_id=1&tariff_id=3&is_prior=false&source_lon=53.147836&source_lat =56.896817&dest_lon=53.226775&dest_lat=56.845452 Ответ: { "code":0, "descr":"OK", "data":{ "order_id":12345 } }
Создание нового заказа 2
Метод: POST
Название запроса: create_order2
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
phone | Строка, <= 30 символов | Номер телефонам (необязателен, если client_id присутствует). |
client_id | Целое | ИД клиента (необязателен, если phone присутствует). |
addresses | Массив | Массив адресов. Первый элемент — адрес подачи(обязательно), последний — адрес назначения, между ними — остановки. |
• address | Строка | Адрес подачи |
• lat | Дробное | Широта адреса |
• lon | Дробное | Долгота адреса |
• zone_id | Целое | ИД района |
• parking_id | Целое | ИД стоянки |
server_time_offset | Целое | Смещения относительно серверного времени |
source_time | ГГГГММДДччммсс | Время подачи |
Необязательные параметры | ||
passenger | Строка | Пассажир |
phone_to_dial | Строка, <= 30 символов | Телефон для отзвона |
customer | Строка | Заказчик |
comment | Строка | Комментарий |
crew_group_id | Целое | ИД группы экипажей |
uds_id | Целое | ИД службы ЕДС |
tariff_id | Целое | ИД тарифа |
is_prior | true или false | Предварительный заказ |
check_duplicate | true или false | Проверка на дубликат |
services | Массив | Массив услуг. Устарело. Рекомендуется использовать параметр attribute_values. |
• | Целое | ИД услуги |
crew_props | Массив | Массив признаков экипажей. Устарело. Рекомендуется использовать параметр attribute_values. |
• | Целое | ИД признака экипажа |
order_params | Массив | Массив параметров заказа. Устарело. Рекомендуется использовать параметр attribute_values. |
• | Целое | ИД параметра заказа |
total_cost | Дробное | Сумма заказа |
use_cashless | true или false | Оплата по возможности всей суммы заказа с безналичного счета клиента (насколько хватает средств на счете). |
use_bonus | true или false | Оплата по возможности всей суммы заказа с бонусного счета клиента (насколько хватает средств на бонусном счете). |
cashless_sum | Дробное | Фиксированная сумма оплаты заказа с безналичного счета клиента (не используется, если use_cashless = true). |
bonus_sum | Дробное | Фиксированная сумма оплаты заказа с бонусного счета клиента (не используется, если use_bonus = true). |
client_employee_id | Целое | ИД сотрудника клиента (если задан client_id) |
Строка | Email для отправки уведомлений | |
prior_to_current_before_minutes | Целое | Время перехода из предварительного в текущие заказы, мин |
flight_number | Строка | Номер рейса |
need_custom_validate | true или false | Использовать специальную проверку перед созданием заказа |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Заказ с такими параметрами уже создан |
101 | Тариф не найден |
102 | Группа экипажа не найдена |
103 | Служба ЕДС не найдена |
104 | Клиент не найден |
105 | Район не найден |
106 | Стоянка не найдена |
107 | Сотрудник клиента не найден |
108 | Параметр заказа не найден |
109 | Атрибут не может быть привязан к заказу |
110 | Клиент заблокирован |
111 | Не найден клиент, который может использовать собственный счет для оплаты заказов |
112 | Сотрудник клиента заблокирован |
113 | Ошибка специальной проверки заказа перед созданием. В ответе будет возвращаться:
"data": { "message":"Текст ошибки для пользователя." } |
114 | Недостаточно средств на безналичном счете клиента в ТМ |
115 | Отрицательный баланс на безналичном счете клиента в ТМ |
116 | Для клиента запрещена оплата заказа наличными. Клиент должен максимально использовать в заказе безналичную оплату (оплату с основного счета) |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
order_id | Целое | ИД созданного заказа |
Пример:
POST https://ip:port/common_api/1.0/create_order2 HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "server_time_offset":2, "source_time":"20140415172811", "is_prior":false, "check_duplicate":true, "phone":"123456", "phone_to_dial":"654321", "client_id":1, "client_employee_id":4, "customer":"CUSTOMER", "passenger":"PASSENGER", "comment":"COMMENT", "crew_group_id":1, "uds_id":1, "tariff_id":1, "addresses": [ { "address": "SOURCE", "lat": 56.896817, "lon": 53.14783 "zone_id": 1, "parking_id": 1 }, { "address": "STOP1", "lat": 56.845452, "lon": 53.226775 "zone_id": 2, "parking_id": 2 }, { "address": "STOP2" }, { "address": "DESTINATION", "lat": 56.86123, "lon": 53.24187 } ] "services":[1,2], "crew_props":[1], "order_params":[3,4], "total_cost":370, "client_id":28, "use_cashless":false, "use_bonus":false, "cashless_sum":700, "bonus_sum":350, "email":"email@gmail.com", "prior_to_current_before_minutes":30, "flight_number":"130-qwe2", "need_custom_validate":false, "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } Ответ: { "code":0, "descr":"OK", "data":{ "order_id":1672 } }
Расчет суммы заказа
Метод: GET
Название запроса: calc_order_cost
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
tariff_id | Целое | ИД тарифа |
Необязательные параметры | ||
source_time | ГГГГММДДччммсс | Время подачи |
is_prior | true или false | Предварительный заказ |
client_id | Целое | ИД клиента |
client_employee_id | Целое | ИД сотрудника клиента |
discount_id | Целое | ИД скидки |
disc_card_id | Целое | ИД дисконтной карты |
source_zone_id | Целое | ИД района подачи |
dest_zone_id | Целое | ИД района назначения |
distance_city | Дробное | Километраж по городу |
distance_country | Дробное | Километраж за городом |
source_distance_country | Дробное | Километраж до подачи за городом |
is_country | true или false | Загородный заказ |
waiting_minutes | Целое | Время ожидания посадки клиента в минутах |
is_hourly | true или false | Почасовой заказ |
hourly_minutes | Целое | Длительность почасового заказа в минутах |
is_prize | true или false | Призовой заказ |
back_way | true или false | Обратный путь за городом |
services | Строка | Список ИД услуг через точку с запятой, пример: «1;2;3»
Устарело. Рекомендуется использовать параметр order_params. |
order_params | Строка | Список ИД параметров заказа через точку с запятой, пример: «1;2;3» |
cashless | true или false | Признак безналичного заказа |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Тариф не найден |
101 | Ошибка при расчете по тарифу |
102 | Скидка не найдена |
103 | Клиент не найден |
104 | Район подачи не найден |
105 | Район назначения не найден |
106 | Дисконтная карта не найдена |
107 | Район остановки не найден |
108 | Группа экипажа не найдена |
109 | Служба ЕДС не найдена |
110 | Дисконтная карта не действительна |
111 | Не найден сотрудник клиента |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
sum | Дробное | Рассчитанная общая сумма заказа |
info | Массив | Дополнительная информация по расчету суммы заказа |
• comment | Строка | Описание позиции дополнительной информации по расчету суммы заказа |
• sum | Строка | Сумма позиции дополнительной информации по расчету суммы заказа |
Пример:
Запрос: GET https://ip:port/common_api/1.0/calc_order_cost?tariff_id=1&source_time=20120501100000&is_prior=false&client_id=1&client_employee_id=11&discount_id=1&disc_card_id=1& source_zone_id=1&dest_zone_id=2&distance_city=10&distance_country=20&source_distance_country=5&is_country=true&waiting_minutes=10&is_hourly=false&hourly_minutes=60& is_prize=true&back_way=false&services=1;2;3&order_params=1;2;3 HTTP/1.1 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "sum":1000, "info":[ { "comment":"SUM1", "sum":"100" }, { "comment":"SUM2", "sum":"200" } ] } }
Расчет суммы заказа 2
Метод: POST
Название запроса: calc_order_cost2
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
order_id | Целое | ИД заказа |
tariff_id | Целое | ИД тарифа |
source_time | ГГГГММДДччммсс | Время подачи |
is_prior | true или false | Предварительный заказ |
client_id | Целое | ИД клиента |
phone | Строка | Телефон клиента |
discount_id | Целое | ИД скидки |
disc_card_id | Целое | ИД дисконтной карты |
source_zone_id | Целое | ИД района подачи |
source_lon | Дробное | Долгота адреса подачи |
source_lat | Дробное | Широта адреса подачи |
dest_zone_id | Целое | ИД района назначения |
dest_lon | Дробное | Долгота адреса назначения |
dest_lat | Дробное | Широта адреса назначения |
distance_city | Дробное | Километраж по городу |
distance_country | Дробное | Километраж за городом |
source_distance_country | Дробное | Километраж до подачи за городом |
is_country | true или false | Загородный заказ |
waiting_minutes | Целое | Время ожидания посадки клиента в минутах |
is_hourly | true или false | Почасовой заказ |
hourly_minutes | Целое | Длительность почасового заказа в минутах |
is_prize | true или false | Призовой заказ |
back_way | true или false | Обратный путь за городом |
order_params | Массив | Массив параметров заказа. Устарело. Рекомендуется использовать параметр attribute_values. |
• | Целое | ИД параметра заказа |
cashless | true или false | Признак безналичного заказа |
stops | Массив | Список остановок |
• zone_id | Целое | ИД района остановки |
• lat | Дробное | Широта адреса остановки |
• lon | Дробное | Долгота адреса остановки |
crew_group_id | Целое | ИД группы экипажа |
uds_id | Целое | ИД службы ЕДС |
analyze_route | true или false | Нужно ли выполнять анализ адресов и маршрута. Если данный флаг установлен (analyze_route=true), то значения параметров: distance_city, distance_country, source_distance_country, переданные в данном запросе будут игнорироваться. Они автоматически будут рассчитаны в ходе выполнения запроса в результате анализа адресов и маршрута. Также перед анализом адресов будут автоматически найдены районы (по справочнику "Районы") для тех адресов, у которых район не указан явно (zone_id=0). Также по результатам анализа адресов автоматически будут определены флаги "Загородный заказ" (is_country) и "Межгород". |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Тариф не найден |
101 | Ошибка при расчете по тарифу |
102 | Скидка не найдена |
103 | Клиент не найден |
104 | Район подачи не найден |
105 | Район назначения не найден |
106 | Дисконтная карта не найдена |
107 | Район остановки не найден |
108 | Группа экипажа не найдена |
109 | Служба ЕДС не найдена |
110 | Дисконтная карта не действительна |
111 | Сотрудник клиента не найден |
112 | Атрибут не найден |
113 | Атрибут не может быть привязан к заказу |
114 | Заказ не найден |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
sum | Дробное | Рассчитанная общая сумма заказа |
info | Массив | Дополнительная информация по расчету суммы заказа |
• comment | Строка | Описание позиции дополнительной информации по расчету суммы заказа |
• sum | Строка | Сумма позиции дополнительной информации по расчету суммы заказа |
Пример:
Запрос: POST https://ip:port/common_api/1.0/calc_order_cost2 HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "tariff_id":1, "source_time":"20140415172811", "is_prior":false, "client_id":1, "discount_id":1, "disc_card_id":1, "source_zone_id":1,, "source_lat":11.111111, "source_lon":22.222222, "dest_zone_id":2,, "dest_lat":33.333333, "dest_lon":44.444444, "distance_city":10, "distance_country":20, "source_distance_country":5, "is_country":true, "waiting_minutes":10, "is_hourly":false, "hourly_minutes":60, "is_prize":true, "back_way":false, "order_params":[3,4], "stops": [ { "zone_id": 1, "lat": 11.111111, "lon": 22.222222 }, { "zone_id": 2, "lat": 33.333333, "lon": 44.444444 } ], "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } Ответ: { "code":0, "descr":"OK", "data":{ "sum":1000, "info":[ { "comment":"SUM1", "sum":"100" }, { "comment":"SUM2", "sum":"200" } ] } }
Изменение состояния заказа
Метод: POST
Название запроса: change_order_state
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
order_id | Целое | ИД заказа |
new_state | Целое | Новое состояние заказа |
Необязательные параметры | ||
cancel_order_penalty_sum | Дробное | Сумма штрафа клиента за отмену заказа. Если свойство new_state имеет тип "Прекращен" (выполняется отмена заказа) и при отмене заказа должен быть назначен штраф клиенту, то если данное значение штрафа указано (даже если указано значение 0), то оно имеет приоритет. Если данное значение не указано, то сумма штрафа будет определена автоматически по группе клиентов. |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден заказ ИД=ORDER_ID |
101 | Не найдено состояние заказа ИД=NEW_STATE |
102 | Изменение состояния не соответствует необходимым условиям. |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
order_id | Целое | ИД заказа |
new_state | Целое | Новое состояние заказа |
Пример:
Запрос: POST https://ip:port/common_api/1.0/change_order_state?order_id=6&new_state=4 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "order_id":6, "new_state":4 } }
Запрос информации об экипаже
Метод: GET
Название запроса: get_crew_info
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
crew_id | Целое | ИД экипажа |
Необязательные параметры | ||
fields | Строка | Список возвращаемых полей через запятую |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Экипаж не найден |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
crew_id | Целое | ИД экипажа |
code | Строка | Позывной экипажа |
name | Строка | Наименование экипажа |
driver_id | Целое | ИД водителя |
car_id | Целое | ИД автомобиля |
crew_group_id | Целое | ИД группы экипажа |
crew_state_id | Целое | ИД состояния экипажа |
online | true или false | Водитель подключен к серверу «Связи с водителями» |
work_shift_sum | Дробное | Сумма, списываемая за смену |
min_balance | Дробное | Минимальный баланс, при котором можно выйти на смену |
common_priority | Целое | Общий приоритет |
static_priority | Целое | Статический приоритет |
dynamic_priority | Целое | Динамический приоритет |
rating_priority | Целое | Приоритет по рейтингу |
order_change_id | Целое | Индивидуальная сдача с заказа |
has_light_house | true или false | Шашка |
has_label | true или false | Наклейка |
use_plan_shifts | true или false | Запрет работы вне запланированных смен |
fuel_level | Дробное | Уровень топлива в автомобиле |
order_params | Массив | Массив параметров экипажа |
• | Целое | ИД параметра заказа |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_crew_info?crew_id=1 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "crew_id":1, "code":"123", "name":"CREW_NAME", "driver_id":1, "car_id":1, "crew_group_id":1, "crew_state_id":3, "online":true "work_shift_sum":0, "min_balance":10, "common_priority":0, "static_priority":0, "dynamic_priority":0, "rating_priority":0, "order_change_id":218, "has_light_house":false, "has_label":false, "order_params":[ 1, 2, ], "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } }
Запрос информации об экипажах
Метод: GET
Название запроса: get_crews_info
Параметры:
Параметр | Тип | Описание |
---|---|---|
Необязательные параметры | ||
not_working_crews | true или false | Нужно ли возвращать экипажи не на линии. По умолчанию возвращаются только экипажи на линии |
fields | Строка | Список возвращаемых полей через запятую |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
crews_info | Массив | Массив экипажей |
• crew_id | Целое | ИД экипажа |
• code | Строка | Позывной экипажа |
• name | Строка | Наименование экипажа |
• driver_id | Целое | ИД водителя |
• car_id | Целое | ИД автомобиля |
• crew_group_id | Целое | ИД группы экипажа |
• crew_state_id | Целое | ИД состояния экипажа |
• online | true или false | Водитель подключен к серверу «Связи с водителями» |
• work_shift_sum | Дробное | Сумма, списываемая за смену |
• min_balance | Дробное | Минимальный баланс, при котором можно выйти на смену |
• common_priority | Целое | Общий приоритет |
• static_priority | Целое | Статический приоритет |
• dynamic_priority | Целое | Динамический приоритет |
• rating_priority | Целое | Приоритет по рейтингу |
• order_change_id | Целое | Индивидуальная сдача с заказа |
• has_light_house | true или false | Шашка |
• has_label | true или false | Наклейка |
• use_plan_shifts | true или false | Запрет работы вне запланированных смен |
• fuel_level | Дробное | Уровень топлива в автомобиле |
• order_params | Массив | Массив параметров заказа экипажа |
• • | Целое | ИД параметра заказа |
• attribute_values | Массив | Массив значений атрибутов |
• • id | Целое | Идентификатор атрибута |
• • bool_value | true или false | Значение, если тип атрибута «Логический» |
• • num_value | Дробное | Значение, если тип атрибута:
|
• • str_value | Строка | Значение, если тип атрибута «Строка» |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_crews_info Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "crews_info":[ { "crew_id":1, "code":"123", "name":"CREW_NAME1", "driver_id":1, "car_id":1, "crew_group_id":1, "crew_state_id":3 "online":true, "work_shift_sum":0, "min_balance":10, "common_priority":10, "static_priority":10, "dynamic_priority":0, "rating_priority":0, "order_change_id":0, "has_light_house":false, "has_label":false, "use_plan_shifts":false, "fuel_level":8.15, "order_params":[ 1, 5, ] }, { "crew_id":12, "code":"777", "name":"CREW_NAME2", "driver_id":12, "car_id":12, "crew_group_id":2 "crew_state_id":1, "online":false, "work_shift_sum":0, "min_balance":10, "common_priority":15, "static_priority":15, "dynamic_priority":0, "rating_priority":0, "order_change_id":0, "has_light_house":false, "has_label":true, "use_plan_shifts":true, "fuel_level":null, "order_params":[] } ] } }
Создание экипажа
Метод: POST
Название запроса: create_crew
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
car_id | Целое | ИД автомобиля |
driver_id | Целое | ИД водителя |
crew_group_id | Целое | ИД группы экипажа |
Необязательные параметры | ||
code | Строка | Позывной экипажа |
work_shift_sum | Дробное | Сумма, списываемая за смену |
min_balance | Дробное | Минимальный баланс, при котором можно выйти на смену |
work_time | Строка | Время работы, формат: “6.00-10.30, 23:00-00:48” |
has_light_house | true или false | Шашка |
has_label | true или false | Наклейка |
use_plan_shifts | true или false | Запрет работы вне запланированных смен |
order_params | Массив | Массив параметров экипажа. Устарело. Рекомендуется использовать параметр attribute_values. |
• | Целое | ИД параметра |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Автомобиль с ИД=ID не найден |
101 | Водитель с ИД=ID не найден |
102 | Группа экипажа с ИД=ID не найдена |
103 | Параметр с ИД=ID не найден или не может быть привязан к экипажу |
104 | Экипаж с таким водителем и автомобилем уже существует |
105 | Служба ЕДС автомобиля и водителя не совпадает |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
crew_id | Целое | ИД созданного экипажа |
Пример:
Запрос: POST https://ip:port/common_api/1.0/create_crew HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "car_id":1, "driver_id":2, "crew_group_id":3, "code":"CODE", "use_shifts":true, "order_params":[3,4], "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } Ответ: { "code":0, "descr":"OK", "data":{ "crew_id":1 } }
Обновление информации об экипаже
Метод: POST
Название запроса: update_crew_info
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
crew_id | Целое | ИД экипажа |
Необязательные параметры | ||
car_id | Целое | ИД автомобиля |
driver_id | Целое | ИД водителя |
crew_group_id | Целое | ИД группы экипажа |
code | Строка | Позывной экипажа |
work_shift_sum | Дробное | Сумма, списываемая за смену |
min_balance | Дробное | Минимальный баланс, при котором можно выйти на смену |
work_time | Строка | Время работы, формат: “6.00-10.30, 23:00-00:48” |
has_light_house | true или false | Шашка |
has_label | true или false | Наклейка |
crew_gps_id | Целое | GPS идентификатор экипажа |
use_plan_shifts | true или false | Запрет работы вне запланированных смен |
order_params | Массив | Массив параметров экипажа |
• | Целое | ИД параметра |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Автомобиль с ИД=ID не найден |
101 | Водитель с ИД=ID не найден |
102 | Группа экипажа с ИД=ID не найдена |
103 | Параметр с ИД=ID не найден или не может быть привязан к экипажу |
104 | Экипаж с таким водителем и автомобилем уже существует |
105 | Служба ЕДС автомобиля и водителя не совпадает |
106 | Экипаж с ИД=ID не найден |
107 | Экипаж на линии, запрещено редактирование полей: водитель, автомобиль, позывной, группа экипажа, сумма за смену, минимальный баланс, запрет выхода вне запланированной смены. |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос: POST https://ip:port/common_api/1.0/update_crew_info Signature: <...> Content-Type: application/json Content-Length: 104 { "crew_id":1, "car_id":1, "driver_id":3, "crew_group_id":3, "code":"CODE", "use_plan_shifts":true, "order_params":[3,4] } Ответ: { "code":0, "descr":"OK", "data":{} }
Запрос информации о водителе
Метод: GET
Название запроса: get_driver_info
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
driver_id | Целое | ИД водителя |
Необязательные параметры | ||
need_photo | true или false | Нужна ли фотография водителя |
fields | Строка | Список возвращаемых полей через запятую |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Водитель не найден |
Возвращаемые параметры в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
driver_id | Целое | ИД водителя |
name | Строка | ФИО водителя |
balance | Дробное | Баланс основного счета водителя |
birthday | ДД.ММ.ГГГГ | День рождения водителя |
car_id | Целое | ИД основного автомобиля водителя |
license | Строка | Удостоверение водителя |
home_phone | Строка | Любой неосновной телефон водителя (устаревшее поле) |
mobile_phone | Строка | Основной телефон водителя (устаревшее поле) |
is_locked | true или false | Водитель заблокирован |
is_dismissed | true или false | Водитель уволен |
driver_photo | Base64 | Фото водителя (только если need_photo = true) |
order_params | Массив | Массив параметров водителя |
• | Целое | ИД параметра |
phones | Массив | Массив телефонов водителя |
• phone | Строка | Номер телефона |
• is_default | true или false | Признак основного телефона |
• use_for_call | true или false | Использовать для отзвона |
term_account | Строка | Терминальный аккаунт |
name_for_taxophone | Строка | Имя для TaxoPhone |
accounts | Массив | Массив балансов счетов |
•account_kind | Целое | Тип счета |
•balance | Дробное | Баланс счета |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_driver_info?driver_id=1&need_photo=false Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "driver_id":1, "name":"DRIVER_NAME", "balance":100, "birthday":"01.01.1980", "car_id":1, "license":"1234567890", "home_phone":"79999999999", "mobile_phone":"79999999999", "is_locked":false, "is_dismissed":false, "order_params":[3,4], "phones":[ { "phone":"79999999999", "is_default":true, “use_for_call”:true }, { "phone":"79999999999", "is_default":false, “use_for_call”:false } ], "term_account":"00008", "name_for_taxophone":"NameForTaxoPhone", "accounts": [ { "account_kind":0, "balance":1000993.00 }, { "account_kind":1000, "balance":600.00 } ], "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } }
Запрос списка водителей
Метод: GET
Название запроса: get_drivers_info
Параметры:
Параметр | Тип | Описание |
---|---|---|
Небязательные параметры | ||
locked_drivers | true или false | Включить в ответ запроса заблокированных водителей (по умолчанию false) |
dismissed_drivers | true или false | Включить в ответ запроса уволенных водителей (по умолчанию false) |
fields | Строка | Список возвращаемых полей через запятую |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
drivers_info | Массив | Массив не удаленных водителей |
• driver_id | Целое | ИД водителя |
• name | Строка | ФИО водителя |
• balance | Дробное | Баланс водителя |
• birthday | ДД.ММ.ГГГГ | День рождения водителя |
• car_id | Целое | ИД основного автомобиля водителя |
• license | Строка | Номер лицензии на перевозку (разрешения на перевозку) |
• home_phone | Строка | Любой неосновной телефон водителя (устаревшее поле) |
• mobile_phone | Строка | Основной телефон водителя (устаревшее поле) |
• is_locked | true или false | Водитель заблокирован |
• is_dismissed | true или false | Водитель уволен |
• order_params | Массив | Массив параметров водителя |
• • | Целое | ИД параметра |
• phones | Массив | Массив телефонов водителя |
• • phone | Строка | Номер телефона |
• • is_default | true или false | Признак основного телефона |
• • use_for_call | true или false | Использовать для отзвона |
• term_account | Строка | Терминальный аккаунт |
• attribute_values | Массив | Массив значений атрибутов |
• • id | Целое | Идентификатор атрибута |
• • bool_value | true или false | Значение, если тип атрибута «Логический» |
• • num_value | Дробное | Значение, если тип атрибута:
|
• • str_value | Строка | Значение, если тип атрибута «Строка» |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_drivers_info Signature: <...> locked_drivers=true&dismissed_drivers=true Ответ: { "code":0, "descr":"OK", "data":{ "drivers_info":[ { "driver_id":1, "name":"DRIVER_NAME1", "balance":100.00, "birthday":"01.01.1980", "car_id":1, "license":"1234567890", "home_phone":"79999999999", "mobile_phone":"79999999999", "is_locked":false, "is_dismissed":false, "order_params":[3,4], "phones":[ { "phone":"79999999999", "is_default":true, “use_for_call”: true }, { "phone":"79999999999", "is_default":false, “use_for_call”: true } ], "term_account":"00008", "attribute_values": [ { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] }, { "driver_id":2, "name":"DRIVER_NAME2", "balance":-50.00, "birthday":"01.01.1980", "car_id":2, "license":"1234567899", "is_locked":true, "is_dismissed":true, "order_params":[5,6], "phones":[ { "phone":"79999999999", "is_default":true, “use_for_call”: true }, { "phone":"79999999999", "is_default":false, “use_for_call”: false } ], "term_account":"00009", "attribute_values": [ { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } ] } }
Создание водителя
Метод: POST
Название запроса: create_driver
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
name | Строка | ФИО водителя |
car_id | Целое | ИД основного автомобиля |
password | Строка | Пароль (обязательное поле, если используется сервер связи с водителями) |
uds_id | Целое | ИД службы ЕДС (обязательное поле, если используется ЕДС, иначе можно не указывать) |
Необязательные параметры | ||
home_phone | Строка | Неосновной телефон водителя (устаревший параметр) |
mobile_phone | Строка | Основной телефон водителя (устаревший параметр) |
passport | Строка | Паспортные данные |
driver_license | Строка | Водительское удостоверение |
employee_type | Целое | Тип работника (0 - работник компании, 1 - частник) |
birthday | ГГГГММДДччммсс | День рождения |
number | Строка | Табельный номер |
license | Строка | Удостоверение |
start_date | ГГГГММДДччммсс | Дата приема на работу |
lic_date | ГГГГММДДччммсс | Дата окончания договора |
term_account | Строка | Терминальный аккаунт (если не указан, будет сгенерирован автоматически), должен состоять из 5 цифр |
comment | Строка | Описание |
order_params | Массив | Массив параметров водителя. Устарело. Рекомендуется использовать параметр attribute_values. |
• | Целое | ИД параметра |
driver_photo | Base64 | Фотография водителя |
phones | Массив | Массив телефонов водителя |
• phone | Строка | Номер телефона |
• is_default | true или false | Признак основного телефона |
• use_for_call | true или false | Использовать для отзвона |
name_for_taxophone | Строка | Имя для TaxoPhone |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Автомобиль с ИД=ID не найден |
101 | Служба ЕДС с ИД=ID не найдена |
102 | Параметр с ИД=ID не найден или не может быть привязан к водителю |
103 | Терминальный аккаунт не уникален |
104 | Некорректный терминальный аккаунт |
107 | Основной телефон может быть только один |
108 | Водитель должен иметь основной телефон |
109 | Пароль водителя не соответствует политике паролей |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
driver_id | Целое | ИД созданного водителя |
Пример:
Запрос: POST https://ip:port/common_api/1.0/create_driver HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "name":"NAME", "car_id":140, "password":"PASSWORD", "birthday":"19930218000000", "comment":"COMMENT", "order_params":[3,4], "name_for_taxophone":"NameForTaxoPhone", "phones":[ { "phone":"79999999999", "is_default":true, “use_for_call”: true }, { "phone":"79999999999", "is_default":false, “use_for_call”: true } ], "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } Ответ: { "code":0, "descr":"OK", "data":{ "driver_id":10 } }
Обновление информации о водителе
Метод: POST
Название запроса: update_driver_info
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
driver_id | Целое | ИД редактируемого водителя |
Необязательные параметры | ||
name | Строка | ФИО водителя |
car_id | Целое | ИД основного автомобиля |
password | Строка | Пароль |
uds_id | Целое | ИД службы ЕДС (обязательное поле, если используется ЕДС, иначе можно не указывать) |
home_phone | Строка | Неосновной телефон водителя (устаревший параметр) |
mobile_phone | Строка | Основной телефон водителя (устаревший параметр) |
passport | Строка | Паспортные данные |
driver_license | Строка | Водительское удостоверение |
employee_type | Целое | Тип работника (0 - работник компании, 1 - частник) |
birthday | ГГГГММДДччммсс | День рождения |
number | Строка | Табельный номер |
license | Строка | Удостоверение |
start_date | ГГГГММДДччммсс | Дата приема на работу |
lic_date | ГГГГММДДччммсс | Дата окончания договора |
term_account | Строка | Терминальный аккаунт |
comment | Строка | Описание |
time_block | ГГГГММДДччммсс | Временная блокировка до |
is_locked | true или false | Заблокирован |
lock_description | Строка | Причина блокировки |
is_dismissed | true или false | Уволен |
dismiss_description | Строка | Причина увольнения |
order_params | Массив | Массив параметров водителя. Устарело. Рекомендуется использовать параметр attribute_values. |
• | Целое | ИД параметра |
driver_photo | Base64 | Фотография водителя |
phones | Массив | Массив телефонов водителя |
• phone | Строка | Номер телефона |
• is_default | true или false | Признак основного телефона |
• use_for_call | true или false | Использовать для отзвона |
name_for_taxophone | Строка | Имя для TaxoPhone |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Автомобиль с ИД=ID не найден |
101 | Служба ЕДС с ИД=ID не найдена |
102 | Параметр с ИД=ID не найден или не может быть привязан к водителю |
103 | Терминальный аккаунт не уникален |
104 | Некорректный терминальный аккаунт |
105 | Водитель с ИД=ID не найден |
106 | Экипаж на линии, запрещено редактирование полей: основной автомобиль, тип работника, служба ЕДС. |
107 | Основной телефон может быть только один |
108 | Водитель должен иметь основной телефон |
109 | Пароль водителя не соответствует политике паролей |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос: POST https://ip:port/common_api/1.0/update_driver_info HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "driver_id":10 "name":"NAME", "car_id":140, "password":"PASSWORD", "birthday":"19930218000000", "comment":"COMMENT", "order_params":[3,4], "name_for_taxophone":"NameForTaxoPhone", "phones":[ { "phone":"79999999999", "is_default":true, “use_for_call”: true }, { "phone":"79999999999", "is_default":false, “use_for_call”: false } ], "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } Ответ: { "code":0, "descr":"OK", "data":{} }
Запрос информации об автомобиле
Метод: GET
Название запроса: get_car_info
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
car_id | Целое | ИД автомобиля |
Необязательные параметры | ||
need_photo | true или false | Нужна ли фотография автомобиля |
fields | Строка | Список возвращаемых полей через запятую |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Автомобиль не найден |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
car_id | Целое | ИД автомобиля |
code | Строка | Позывной автомобиля |
name | Строка | Наименование автомобиля |
gos_number | Строка | Государственный номер автомобиля |
color | Строка | Цвет автомобиля |
mark | Строка | Марка автомобиля |
model | Строка | Модель автомобиля |
short_name | Строка | Краткое название автомобиля |
production_year | Целое | Год выпуска автомобиля |
is_locked | true или false | Автомобиль заблокирован |
fuel_level | Дробное | Уровень топлива в автомобиле |
order_params | Массив | Массив параметров автомобиля. Устарело. Рекомендуется использовать параметр attribute_values. |
• | Целое | ИД параметра |
car_photo | Base64 | Фото автомобиля (только если need_photo = true или поле driver_photo указано в списке фильтра полей fields) |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_car_info?car_id=1&need_photo=false Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "car_id":1, "code":"123", "name":"CAR_NAME", "gos_number":"a123bc", "color":"COLOR", "mark":"MARK", "model":"MODEL", "short_name":"SHORT_NAME", "production_year":2000, "is_locked":false, "order_params":[1,2], "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } }
Запрос списка автомобилей
Метод: GET
Название запроса: get_cars_info
Параметры:
Параметры | Тип | Описание |
---|---|---|
Необязательные параметры | ||
locked_cars | true или false | Включить в ответ заблокированных автомобилей (по умолчанию false) |
fields | Строка | Список возвращаемых полей через запятую |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметры | Тип | Описание |
---|---|---|
crews_info | Массив | Массив автомобилей |
• car_id | Целое | ИД автомобиля |
• code | Строка | Позывной автомобиля |
• name | Строка | Наименование автомобиля |
• gos_number | Строка | Гос. номер автомобиля |
• color | Строка | Цвет автомобиля |
• mark | Строка | Марка автомобиля |
• model | Строка | Модель автомобиля |
• short_name | Строка | Краткое название автомобиля |
• production_year | Целое | Год выпуска автомобиля |
• is_locked | true или false | Автомобиль заблокирован |
• fuel_level | Дробное | Уровень топлива в автомобиле |
• order_params | Массив | Массив параметров автомобиля. Устарело. Рекомендуется использовать параметр attribute_values. |
• • | Целое | ИД параметра |
• attribute_values | Массив | Массив значений атрибутов |
• • id | Целое | Идентификатор атрибута |
• • bool_value | true или false | Значение, если тип атрибута «Логический» |
• • num_value | Дробное | Значение, если тип атрибута:
|
• • str_value | Строка | Значение, если тип атрибута «Строка» |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_cars_info Signature: <...> locked_cars=true Ответ: { "code":0, "descr":"OK", "data":{ "crews_info":[ { "car_id":1, "code":"111", "name":"CAR_1", "gos_number":"111111", "color":"COLOR_1", "mark":"MARK_1", "model":"MODEL_1", "short_name":"SHORT_NAME_1", "production_year":2000, "is_locked":false, "order_params":[1,2], "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 } ] }, { "car_id":2, "code":"222", "name":"CAR_2", "gos_number":"222222", "color":"COLOR_2", "mark":"MARK_2", "model":"MODEL_2", "short_name":"SHORT_NAME_2", "production_year":2000, "is_locked":false, "order_params":[3,4], "attribute_values": [ { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } ] } }
Создание автомобиля
Метод: POST
Название запроса: create_car
Параметры в формате JSON:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
code | Строка | Позывной |
mark | Строка | Марка |
color | Строка | Цвет |
gos_number | Строка | Государственный номер |
uds_id | Целое | ИД службы ЕДС (обязательное поле, если используется ЕДС, иначе можно не указывать) |
Необязательные параметры | ||
model | Строка | Модель |
short_name | Строка | Краткое название |
production_year | Целое | Год выпуска |
car_class | Строка | Класс автомобиля (A, B, C, ...) |
vin | Строка | VIN |
body_number | Строка | Номер кузова |
engine_number | Строка | Номер двигателя |
permit | Строка | Разрешение на перевозку |
comment | Строка | Описание |
order_params | Массив | Массив параметров автомобиля. Устарело. Рекомендуется использовать параметр attribute_values. |
• | Целое | ИД параметра |
car_photo | Base64 | Фотография автомобиля |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Автомобиль с ИД=ID имеет такой же позывной=CODE |
101 | Служба ЕДС не найдена |
0 | Параметр с ИД=ID не найден или не может быть привязан к автомобилю |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
car_id | Целое | ИД созданного автомобиля |
Пример:
Запрос: POST https://ip:port/common_api/1.0/create_car HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "code":"CODE", "mark":"MARK", "model":"MODEL", "color":"BLACK", "gos_number":"NUMBER", "production_year":2000, "comment":"COMMENT", "order_params":[1,2,3,4], "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } Ответ: { "code":0, "descr":"OK", "data":{ "car_id":140 } }
Обновить информацию об автомобиле
Метод: POST
Название запроса: update_car_info
Параметры в формате JSON:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
car_id | Целое | ИД автомобиля |
Необязательные параметры | ||
mark | Строка | Марка |
color | Строка | Цвет |
gos_number | Строка | Государственный номер |
model | Строка | Модель |
short_name | Строка | Краткое название |
production_year | Целое | Год выпуска |
car_class | Строка | Класс автомобиля (A, B, C, ...) |
vin | Строка | VIN |
body_number | Строка | Номер кузова |
engine_number | Строка | Номер двигателя |
permit | Строка | Разрешение на перевозку |
comment | Строка | Описание |
order_params | Массив | Массив параметров автомобиля |
• | Целое | ИД параметра |
is_locked | true или false | Автомобиль заблокирован |
lock_description | Строка | Причина блокировки |
uds_id | Целое | ИД службы ЕДС |
car_photo | Base64 | Фотография автомобиля |
Специальные возвращаемые коды:
Код | Описание |
---|---|
101 | Служба ЕДС не найдена |
102 | Автомобиль с ИД=ID не найден |
103 | Экипаж на линии, запрещено редактирование полей: марка, модель, краткое наименование, цвет, гос. номер, служба ЕДС. |
104 | Параметр с ИД=ID не найден или не может быть привязан к автомобилю |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос: POST https://ip:port/common_api/1.0/update_car_info Signature: <...> Content-Type: application/json Content-Length: 104 { "car_id":1, "code":"CODE", "mark":"MARK", "model":"MODEL", "color":"BLACK", "gos_number":"NUMBER", "production_year":2000, "comment":"COMMENT", "order_params":[3,4] } Ответ: { "code":0, "descr":"OK", "data":{} }
Запрос координат экипажей
Метод: GET
Название запроса: get_crews_coords
Параметры:
Параметры | Тип | Описание |
---|---|---|
Необязательные параметры | ||
crew_id | Целое | ИД экипажа, по которому нужно вернуть координаты. Если не задано, то будут возвращены координаты всех экипажей на линии. |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Координаты не найдены |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
crews_coords | Массив | Список координат экипажей |
• crew_id | Целое | ИД экипажа |
• crew_code | Строка | Позывной экипажа |
• coords_time | ГГГГММДДччммсс | Время получения координат |
• lat | Дробное | Долгота |
• lon | Дробное | Широта |
speed | Целое | Скорость движения, км/ч |
direction | Целое | Направление движения (0-Север, 90-Восток, 180-Юг, 270-Запад, -1-не задано) |
• state_kind | Строка | Тип состояния экипажа. Может принимать значения:
• "not_available" — экипаж не на линии • "waiting" — экипаж свободен, ожидает заказы • "on_order" — экипаж на заказе • "on_break" — экипаж на перерыве |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_crews_coords Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "crews_coords":[ { "crew_id":1, "crew_code":"111", "coords_time":"20120101101010", "lat":11.111111, "lon":22.222222, "state_kind":"waiting" }, { "crew_id":2, "crew_code":"222", "coords_time":"20120101101010", "lat":33.333333, "lon":44.444444, "state_kind":"on_order" } ] } } Запрос: GET https://ip:port/common_api/1.0/get_crews_coords?crew_id=1 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "crews_coords":[ { "crew_id":1, "crew_code":"111", "coords_time":"20120101101010", "lat":11.111111, "lon":22.222222, "state_kind":"waiting" } ] } }
Запрос адресов, содержащих нужную строку
Метод: GET
Название запроса: get_addresses_like
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
get_streets | true или false | Искать улицы |
get_points | true или false | Искать пункты |
get_houses | true или false | Искать дома. Не может быть равно true, если get_streets = true или get_points = true. |
street | Строка | Часть названия улицы или пункта, если идет поиск улиц или пунктов, или полное название улицы, если идет поиск домов |
Необязательные параметры | ||
house | Строка | Часть номера дома. Нужно только если get_houses = true. |
city | Строка | Город, в котором искать адреса |
max_addresses_count | Целое | Максимальное количество адресов в ответе |
search_in_tm | true или false | Искать адреса в ТМ (по умолчанию = true) |
search_in_yandex | true или false | Искать адреса в Яндекс (по умолчанию = false) |
search_in_google | true или false | Искать адреса в Google (по умолчанию = false) |
search_in_2gis | true или false | Искать адреса в 2GIS (по умолчанию = false) |
search_in_tmgeoservice | true или false | Искать адреса в TMGeoService (по умолчанию = false) |
search_in_mapmd | true или false | Искать адреса в Map.md (по умолчанию = false) |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Подходящие адреса не найдены |
101 | Не указано место для поиска адресов |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
addresses | Массив | Список подходящих адресов |
•address_source | Строка | Источник адреса. Может принимать значения:
•"tm" — Такси Мастер (адрес из базы данных или из карты) •"yandex" — Яндекс •"google" — Google •"2gis" — 2GIS •"tmgeoservice" — TMGeoService •"mapmd" - Map.md |
• street | Строка | Название улицы или пункта |
• house | Строка | Номер дома |
• kind | Строка | Тип адреса. Может принимать значения:
• "street" — улица • "house" — дом • "point" — пункт |
• comment | Строка | Комментарий |
• coords | Массив | Координаты дома или пункта |
• • lat | Дробное | Широта |
• • lon | Дробное | Долгота |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_addresses_like?get_streets=true&get_points=true& get_houses=false&street=STREE Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "addresses":[ { "street":"STREET1", "house":"", "kind":"street", "comment":"" "coords":{ "lat":0, "lon":0 } }, { "street":"STREET2", "house":"", "kind":"street", "comment":"" "coords":{ "lat":0, "lon":0 } }, { "street":"POINT_STREET1", "house":"", "kind":"point", "comment":"Point at street STREET1" "coords":{ "lat":53.224656, "lon":56.842521 } } ] } } Запрос: GET https://ip:port/common_api/1.0/get_addresses_like?get_streets=false&get_points=false& get_houses=true&street=STREET1&house=1&max_addresses_count=10 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "addresses":[ { "street":"STREET1", "house":"1", "kind":"house", "comment":"" }, { "street":"STREET1", "house":"10", "kind":"house", "comment":"" }, { "street":"STREET1", "house":"11", "kind":"house", "comment":"" } ] } }
Запрос адресов, содержащих нужную строку 2
Метод: GET
Название запроса: get_addresses_like2
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
get_streets | true или false | Искать улицы |
get_points | true или false | Искать пункты |
get_houses | true или false | Искать дома |
address | Строка | Строка для поиска адреса |
Необязательные параметры | ||
city | Строка | Города, разделенные запятой, в которых искать адреса |
max_addresses_count | Целое | Максимальное количество адресов в ответе |
search_in_tm | true или false | Искать адреса в ТМ (по умолчанию = true) |
search_in_yandex | true или false | Искать адреса в Яндекс (по умолчанию = false) |
search_in_google | true или false | Искать адреса в Google (по умолчанию = false) |
search_in_2gis | true или false | Искать адреса в 2GIS (по умолчанию = false) |
search_in_tmgeoservice | true или false | Искать адреса в TMGeoService (по умолчанию = false) |
search_in_mapmd | true или false | Искать адреса в Map.md (по умолчанию = false) |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Подходящие адреса не найдены |
101 | Не указано место для поиска адресов |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
addresses | Массив | Список подходящих адресов |
• address_source | Строка | Источник адреса. Может принимать значения:
•"tm" — Такси Мастер (адрес из базы данных или из карты) •"yandex" — Яндекс •"google" — Google •"2gis" — 2GIS •"tmgeoservice" — TMGeoService •"mapmd" - Map.md |
• city | Строка | Название города |
• point | Строка | Название пункта |
• street | Строка | Название улицы |
• house | Строка | Номер дома |
• kind | Строка | Тип адреса. Может принимать значения:
• "street" — улица • "house" — дом • "point" — пункт |
• comment | Строка | Комментарий |
• coords | Массив | Координаты дома или пункта |
• • lat | Дробное | Широта |
• • lon | Дробное | Долгота |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_addresses_like2?get_streets=true&get_points=true& get_houses=true&address=STR12 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "addresses":[ { "address_source":"tm", "kind":"street", "city":"CITY ", "point":"", "street":"STREET", "house":"12", "comment":"", "coords":{ "lat":11.11111, "lon":22.222222 } }, { "address_source":"tm", "kind":"street", "city":"CITY ", "point":"", "street":"STREET", "house":"120", "comment":"", "coords":{ "lat":11.11111, "lon":22.222222 } } ] } }
Поиск ближайшего адреса
Метод: GET
Название запроса: find_nearest_address
Версия ТМ: 3.12
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
lat | Дробное | Широта |
lon | Дробное | Долгота |
Необязательные параметры | ||
radius | Целое | Радиус в метрах |
search_in_tm | true или false | Искать адреса в ТМ (по умолчанию = true) |
search_in_google | true или false | Искать адреса в Google (по умолчанию = false) |
search_in_tmgeoservice | true или false | Искать адреса в TMGeoService (по умолчанию = false) |
search_in_mapmd | true или false | Искать адреса в Map.md (по умолчанию = false) |
search_in_2gis | true или false | Искать адреса в 2ГИС (по умолчанию = false) |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Подходящие адреса не найдены |
101 | Не указано место для поиска адресов |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
address_source | Строка | Источник адреса. Может принимать значения:
|
city | Строка | Название города |
point | Строка | Название пункта |
street | Строка | Название улицы |
house | Строка | Номер дома |
kind | Строка |
Тип адреса. Может принимать значения:
|
comment | Строка | Комментарий |
coords | Массив | Координаты дома или пункта |
• lat | Дробное | Широта |
• lon | Дробное | Долгота |
Пример:
Запрос: GET https://ip:port/common_api/1.0/find_nearest_address?lat=56.850926&lon=53.212706&radius=100&search_in_tm=false&search_in_google=false&search_in_tmgeoservice=true HTTP/1.1 Signature: <...> Ответ: { "code":0, "descr":"OK", "data": { "address_source":"tmgeoservice", "kind":"house", "city":"Ижевск", "point":"", "street":"Пушкинская ул.", "house":"206", "comment":"", "coords": { "lat":56.850951, "lon":53.212822 } } }
Анализ маршрута
Метод: GET
Название запроса: analyze_route
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
source | Строка | Адрес подачи |
dest | Строка | Адрес назначения |
Необязательные параметры | ||
source_lon | Дробное | Долгота адреса подачи |
source_lat | Дробное | Широта адреса подачи |
dest_lon | Дробное | Долгота адреса назначения |
dest_lat | Дробное | Широта адреса назначения |
Параметр source не является обязательным к заполнению, если заданы source_lon и source_lat.
Параметр dest не является обязательным к заполнению, если заданы dest_lon и dest_lat.
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Адрес подачи не распознан |
101 | Адрес назначения не распознан |
102 | Маршрут не распознан |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
source_lat | Дробное | Широта адреса подачи |
source_lon | Дробное | Долгота адреса подачи |
source_zone_id | Целое | ИД района подачи |
dest_lat | Дробное | Широта адреса назначения |
dest_lon | Дробное | Долгота адреса назначения |
dest_zone_id | Целое | ИД района назначения |
city_dist | Дробное | Километраж по городу |
country_dist | Дробное | Километраж за городом |
source_country_dist | Дробное | Километраж до адреса подачи, если адрес подачи за городом |
Пример:
Запрос: GET https://ip:port/common_api/1.0/analyze_route?source=STREET1,1&dest=STREET2,2&source_lon= 53.153044&source_lat=56.893301&dest_lon=53.218103&dest_lat=56.869759 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "source_lat":11.111111, "source_lon":22.222222, "source_zone_id":1, "dest_lat":33.333333, "dest_lon":44.444444, "dest_zone_id":2, "city_dist":1.1, "country_dist":2.2, "source_country_dist":3.3 } }
Анализ маршрута 2
Метод: POST
Название запроса: analyze_route2
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
addresses | Массив | Массив адресов. Первый элемент — адрес подачи, последний — адрес назначения, между ними — остановки. |
• address | Строка | Адрес подачи |
• lat | Дробное | Широта адреса |
• lon | Дробное | Долгота адреса |
Необязательные параметры | ||
get_full_route_coords | true или false | Возвращать координаты точек полного маршрута (по умолчанию false) |
crew_group_id | Целое | ИД группы экипажей |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Маршрут не распознан |
Возвращаемые данные в случае успешного выполнения запроса:
Параметры | Тип | Описание |
---|---|---|
Addresses | Массив | Массив адресов. Первый элемент — адрес подачи, последний — адрес назначения, между ними — остановки. |
• lat | Дробное | Широта адреса |
• lon | Дробное | Долгота адреса |
• zone_id | Целое | Район адреса |
• parking_id | Целое | Стоянка адреса |
city_dist | Дробное | Километраж по городу |
country_dist | Дробное | Километраж за городом |
source_country_dist | Дробное | Километраж до адреса подачи, если адрес подачи за городом. |
full_route_coords | Массив | Массив координат точек маршрута. |
• lat | Дробное | Широта точки |
• lon | Дробное | Долгота точки |
Пример:
Запрос: POST /common_api/1.0/analyze_route2 Host: ip:port Keep-Alive: 300 Connection: keep-alive Content-Type: application/json Content-Length: 243 Signature: <...> {"get_full_route_coords":true,"addresses":[{"address":"STREET1, 1","lat":11.111111, "lon":22.222222},{"address":"STREET2, 2","lat":33.333333,"lon":44.444444}, {"address":"STREET3, 3","lat":55.555555,"lon":55.555555},{"address":"STREET4, 4","lat":77.777777,"lon":88.888888}]} Ответ: { "code":0, "descr":"OK", "data":{ "addresses":[ { "lat":11.111111, "lon":22.222222, "zone_id":1, "parking_id":1 }, { "lat":33.333333, "lon":44.444444, "zone_id":2, "parking_id":2 } ], "city_dist":0, "country_dist":2.647, "source_country_dist":3.412, "full_route_coords":[ { "lat":55.833603, "lon":37.515537 }, { "lat":55.832855, "lon":37.516315 }, { "lat":55.833405, "lon":37.51799 }, ... ] } }
Запрос информации о состоянии заказа
Метод: GET
Название запроса: get_order_state
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
order_id | Целое | ИД заказа |
Необязательные параметры | ||
fields | Строка | Список возвращаемых полей через запятую |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Заказ не найден |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
order_id | Целое | ИД заказа |
state_id | Целое | ИД состояния заказа |
state_kind | Строка | Тип состояния заказа. Может принимать значения:
• "new_order" — новый заказ • "driver_assigned" — водитель назначен • "car_at_place" — машина подъехала на место • "client_inside" — клиент в машине • "finished" — заказ успешно завершен • "aborted" — заказ прекращен |
crew_id | Целое | ИД экипажа |
prior_crew_id | Целое | ИД предварительного экипажа |
driver_id | Целое | ИД водителя |
car_id | Целое | ИД автомобиля |
server_time_offset | Целое | Смещение относительно серверного времени |
start_time | ГГГГММДДччммсс | Время создания заказа |
source_time | ГГГГММДДччммсс | Время подачи |
finish_time | ГГГГММДДччммсс | Время завершения заказа |
source | Строка | Адрес подачи |
source_lat | Строка | Широта адреса подачи |
source_lon | Строка | Долгота адреса подачи |
destination | Строка | Адрес назначения |
destination_lat | Строка | Широта адреса назначения |
destination_lon | Строка | Долгота адреса назначения |
stops | Массив | Информация по остановкам заказа |
• address | Строка | Адрес остановки |
• lat | Дробное | Широта адреса остановки |
• lon | Дробное | Долгота адреса остановки |
trip_distance | Дробное | Фактический километраж |
trip_time | Целое | Фактическое время в пути |
customer | Строка | Заказчик |
passenger | Строка | Пассажир |
phone | Строка | Номер телефона |
phone_to_dial | Строка | Номер телефона для отзвона |
client_id | Целое | ИД клиента |
client_name | Строка | Имя клиента |
client_group_id | Целое | ИД группы клиента |
client_group_name | Строка | Название группы клиента |
client_employee_id | Целое | ИД сотрудника клиента |
order_crew_group_id | Целое | ИД группы экипажей, которая указана в заказе |
tariff_id | Целое | ИД тарифа |
car_mark | Строка | Марка автомобиля |
car_model | Строка | Модель автомобиля |
car_color | Строка | Цвет автомобиля |
car_number | Строка | Государственный номер автомобиля |
confirmed | Строка | Состояние подтвержденности заказа водителем или оператором.
Может принимать значения: • "not_confirmed" — не подтверждено • "confirmed_by_driver" — заказ принят водителем • "confirmed_by_oper" — заказ подтвержден оператором |
crew_coords | Массив | Координаты экипажа |
• lat | Дробное | Широта |
• lon | Дробное | Долгота |
order_params | Массив | Массив параметров заказа экипажа |
• | Целое | ИД параметра заказа |
creation_way | Строка | Способ создания заказа. Может принимать значения:
• "operator" — заказ создан оператором • "sms" — заказ создан через смс • "market" — заказ из биржи • "common_api" — заказ создан через api • "t_api" — заказ создан через api • "taxophone" — заказ создан через таксофон с телефона • "driver" — заказ создан водителем • "daily_order" — ежедневный заказ • "taxophone_web" — заказ создан через таксофон с сайта • "unknown" — неизвестный |
is_prior | true или false | Предварительный заказ |
is_really_prior | true или false | Предварительный заказ на вкладке "Предварительные" |
Строка | Email для уведомлений | |
prior_to_current_before_minutes | Целое | Время перехода из предварительного в текущие заказы, мин |
flight_number | Строка | Номер рейса |
sum | Дробное | Сумма без скидки |
total_sum | Дробное | Итоговая сумма заказа |
cash_sum | Дробное | Сумма наличными |
cashless_sum | Дробное | Сумма безналичными |
bonus_sum | Дробное | Сумма бонусами |
bank_card_sum | Дробное | Сумма банковской картой |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
bill | Массив | Чек TMDriver. Данный узел выводится только, если по заказу есть чек |
• code | Строка | Код элемента расчета |
• text | Строка | Наименование элемента расчета |
• value | Строка | Значение элемента расчета (количество) |
• sum | Строка | Стоимость элемента расчета |
fact_route | Массив | Фактический маршрут по заказу, выводится только если поле fact_route передали в списке фильтра полей fields |
• lat | Дробное | Широта точки маршрута |
• lon | Дробное | Долгота точки маршрута |
• time | ГГГГММДДччммсс | Время данной точки |
• speed | Целое | Скорость в данный момент, км/ч |
• direction | Целое | Направление движения, градусы (0 - север, 90 - восток, 180 - юг, 270 - запад) |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_order_state?order_id=1 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "order_id":1, "state_id":12, "state_kind":"car_at_place", "crew_id":1, "prior_crew_id":0, "driver_id":2, "car_id":3, "server_time_offset:0, "start_time":"20130117125641", "source_time":"20130117132617", "finish_time":"20130117130343", "source":"30 Лет Победы ул. \/Ижевск\/, 4Б", "source_lat":56.863613, "source_lon":53.186539, "destination":"Кирова ул. \/Ижевск\/, 56", "destination_lat":56.862202, "destination_lon":53.187485, "stops":[ { "address":"30 Лет Победы ул. \/Ижевск\/, 8", "lat":56.863388, "lon":53.184269 } ], "trip_distance":10.5, "trip_time":20, "customer":"Слепаков", "passenger":"Слепаков", "phone":"8800", "client_id":1, "client_employee_id":1, "order_crew_group_id":1, "tariff_id":1, "car_mark":"Ауди", "car_model":"Q7", "car_color":"черный", "car_number":"А777АА", "confirmed":"confirmed_by_oper", "crew_coords": { "lat": 56.833981, "lon": 53.220249 }, "order_params":[ 1, 2, 5 ], "creation_way":"operator", "is_prior":true, "is_really_prior":false, "email":"mail@mail.ru", "prior_to_current_before_minutes":30, "flight_number":"A-0501/123", "sum":50.5, "total_sum":80, "cash_sum":20.1, "cashless_sum":10, "bonus_sum":5.2, "bank_card_sum":15, "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ], "bill": [ { "code":"BOARDING", "text":"Посадка", "value":"", "sum":"20,00" }, { "code":"TRIP_TIME", "text":"Общее время", "value":"0:00:00", "sum":"" }, { "code":"TRIP_DIST", "text":"Общее расстояние", "value":"0,00 км", "sum":"" }, { "code":"BEFORE_DISC", "text":"Сумма без скидки", "value":"", "sum":"20,00" }, { "code":"AFTER_DISC", "text":"Сумма со скидкой", "value":"", "sum":"20,00" }, { "code":"MINIMUM", "text":"Минималка", "value":"", "sum":"60,00" } ], "fact_route": [ { "lat":11.111111, "lon":22.222222, "time":"20130117132617", "speed":123, "direction":0 } ] } }
Создание задачи СМС серверу
Метод: POST
Название запроса: send_sms
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
phone | Строка, <= 30 символов | Номер телефона |
message | Строка | Текст СМС |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос: POST /common_api/1.0/send_sms Content-Type: application/x-www-form-urlencoded Content-Length: 33 Signature: <...> message=SMSText&phone=89050057216 Ответ: { "code":0, "descr":"OK", "data":{} }
Проверка авторизации
Метод: GET
Название запроса: check_authorization
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
login | Строка, <= 60 символов | Логин |
password | Строка, <= 60 символов | Пароль |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден клиент с логином LOGIN и/или неверный пароль |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
client_id | Целое | ИД клиента |
Пример:
Запрос: GET https://ip:port/common_api/1.0/check_authorization?login=LOGIN&password=PASSWORD Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "client_id":131 } }
Регистрация клиента
Метод: POST
Название запроса: register_client
Параметры:
Параметры | Тип | Описание | |
---|---|---|---|
Обязательные параметры | |||
name | Строка, <= 60 символов | ФИО | |
login | Строка, <= 60 символов | Логин | |
password | Строка, <= 60 символов | Пароль | |
phones | Строка | Номера телефонов (через запятую) | |
Необязательные параметры | |||
client_group | Целое | ИД группы клиента | |
parent_id | Целое | ИД клиента-родителя | |
address | Строка | Домашний адрес | |
birthday | ГГГГММДДччммсс | Дата рождения | |
gender | Строка | Пол. Может принимать значения:
• "male" - мужской • "female" - женский | |
Строка | |||
use_email_informing | true или false | Использовать E-mail для отправки уведомлений по заказу | |
comment | Строка | Комментарий | |
use_own_account | true или false | Использовать собственный счет для оплаты заказов |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Клиент с ИД=ID имеет такой же номер телефона=PHONE |
101 | Клиент с логином=LOGIN уже существует |
102 | Группа клиента с ИД=CLIENT_GROUP не найдена |
103 | Клиент указанный в качестве родителя с ИД=PARENT_ID не найден |
109 | Пароль клиента не соответствует политике паролей |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
client_id | Целое | ИД созданного клиента |
Пример:
Запрос: POST https://ip:port/common_api/1.0/register_client Signature: <...> Content-Type: application/x-www-form-urlencoded Content-Length: 104 name=NAME&phones=88,99&login=LOGIN&password=PASSWORD&birthday=19930218115517&gender=male&address=ADDRESS&client_group=1&parent_id=10&email=mail%40ya.ru&use_email_informing=true&use_own_account=false Ответ: { "code":0, "descr":"OK", "data":{ "client_id":140 } }
Регистрация клиента 2
Метод: POST
Название запроса: register_client2
Версия ТМ: 3.12
Параметры в формате JSON:
Параметры | Тип | Описание | |
---|---|---|---|
Обязательные параметры | |||
name | Строка, <= 60 символов | ФИО | |
login | Строка, <= 60 символов | Логин | |
password | Строка, <= 60 символов | Пароль | |
phones | Массив | Массив телефонов клиента | |
• phone | Строка | Номер телефона | |
• is_default | true или false | Признак основного телефона | |
Необязательные параметры | |||
client_group_id | Целое | ИД группы клиента | |
parent_id | Целое | ИД клиента-родителя | |
address | Строка | Домашний адрес | |
birthday | ГГГГММДДччммсс | Дата рождения | |
gender | Строка | Пол. Может принимать значения:
• "male" - мужской • "female" - женский | |
Строка | |||
use_email_informing | true или false | Использовать E-mail для отправки уведомлений по заказу | |
comment | Строка | Комментарий | |
use_own_account | true или false | Использовать собственный счет для оплаты заказов | |
attribute_values | Массив | Массив значений атрибутов | |
• id | Целое | Идентификатор атрибута | |
• bool_value | true или false | Значение, если тип атрибута «Логический» | |
• num_value | Дробное | Значение, если тип атрибута:
| |
• str_value | Строка | Значение, если тип атрибута «Строка» |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Дублирование номера телефона=PHONE в списке |
101 | Клиент с логином=LOGIN уже существует |
102 | Группа клиента с ИД=CLIENT_GROUP не найдена |
103 | Клиент указанный в качестве родителя с ИД=PARENT_ID не найден |
105 | Основной телефон может быть только один |
106 | Клиент должен иметь основной телефон |
107 | Атрибут с ИД=ID не найден |
108 | Атрибут с ИД=ID не может быть привязан к клиенту |
109 | Пароль клиента не соответствует политике паролей |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
client_id | Целое | ИД созданного клиента |
Пример:
Запрос: POST https://ip:port/common_api/1.0/register_client2 HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "name":"NAME", "login":"LOGIN", "password":"PASSWORD", "phones":[ { "phone":"88", "is_default":true }, { "phone":"99", "is_default":false } ], "address":"ADDRESS", "gender":"male", "birthday":"20000101000000", "client_group_id":1, "parent_id":10, "email":"mail@ya.ru", "use_email_informing":true, "comment":"TEXT", "use_own_account":false, "attribute_values":[ { "id":5, "bool_value":true }, { "id":7, "num_value":10 }, { "id":9, "str_value":"TEST" } ] } Ответ: { "code":0, "descr":"OK", "data":{ "client_id":140 } }
Запрос информации по клиенту
Метод: GET
Название запроса: get_client_info
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
client_id | Целое | ИД клиента |
Необязательные параметры | ||
fields | Строка | Список возвращаемых полей через запятую. Для полей списка сотрудников, запрашиваемого клиента, названия начинаются с "employees.", например: "employees.name" |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден клиент ИД=CLIENT_ID |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
client_id | Целое | ИД клиента |
parent_id | Целое | ИД клиента-родителя |
name | Строка | ФИО |
number | Строка | Номер договора |
address | Строка | Домашний адрес |
gender | Строка | Пол. Может принимать значения:
• "" - не указан • "male" - мужской • "female" - женский |
birthday | ДД.ММ.ГГГГ | Дата рождения |
phones | Массив | Массив телефонов клиента |
• phone | Строка | Номер телефона клиента |
balance | Дробное | Баланс |
bonus_balance | Дробное | Бонусный баланс |
login | Строка | Логин |
password | Строка | Пароль |
client_group_id | Целое | ИД группы клиента |
tariff_id | Целое | ИД тарифа клиента или группы клиентов |
prize_tariff_id | Целое | ИД призового тарифа клиента или группы клиентов |
tariff_shift_id | Целое | ИД смены тарифов клиента или группы клиентов |
discount_id | Целое | ИД скидки клиента или группы клиентов |
prize_discount_id | Целое | ИД призовой скидки клиента или группы клиентов |
min_balance | Дробное | Порог, ниже которого не может опускаться баланс |
min_balance_for_use_cashless | Дробное | Минимальный баланс для использования безналичного счета |
min_bonus_balance_for_use_bonus | Дробное | Минимальный баланс для использования бонусного счета |
is_locked | true или false | Клиент заблокирован |
lock_description | Строка | Причина блокировки |
use_cashless_account | true или false | Признак использования безналичного счета |
use_cashless | true или false | Признак использования безналичного расчета по умолчанию. Имеет смысл только при use_cashless_account = true |
no_cash_payment | true или false | Признак запрета использования наличных расчетов. Имеет смысл только при use_cashless_account = true и use_cashless = true |
remain_prize | Целое | Сколько заказов осталось до призового |
Строка | ||
use_email_informing | true или false | Использовать E-mail для отправки уведомлений по заказу |
default_crew_group | Целое | Группа экипажей по умолчанию |
use_own_account | true или false | Использовать собственный счет для оплаты заказа |
comment | Строка | Комментарий |
employees | Массив | Массив сотрудников клиента |
• client_id | Целое | ИД клиента-сотрудника |
• parent_id | Целое | ИД родителя клиента-сотрудника |
• name | Строка | ФИО клиента-сотрудника |
• number | Строка | Номер договора клиента-сотрудника |
• address | Строка | Домашний адрес клиента-сотрудника |
• gender | Строка | Пол клиента-сотрудника. Может принимать значения:
• "" - не указан • "male" - мужской • "female" - женский |
• birthday | ДД.ММ.ГГГГ | Дата рождения клиента-сотрудника |
• phones | Массив | Массив телефонов клиента-сотрудника |
•• phone | Строка | Номер телефона клиента-сотрудника |
• balance | Дробное | Баланс клиента-сотрудника |
• bonus_balance | Дробное | Бонусный баланс клиента-сотрудника |
• login | Строка | Логин клиента-сотрудника |
• password | Строка | Пароль клиента-сотрудника |
• client_group_id | Целое | ИД группы клиента клиента-сотрудника |
• tariff_id | Целое | ИД тарифа клиента или группы клиентов клиента-сотрудника |
• prize_tariff_id | Целое | ИД призового тарифа клиента-сотрудника или группы клиентов |
• tariff_shift_id | Целое | ИД смены тарифов клиента-сотрудника или группы клиентов |
• discount_id | Целое | ИД скидки клиента-сотрудника или группы клиентов |
• prize_discount_id | Целое | ИД призовой скидки клиента-сотрудника или группы клиентов |
• min_balance | Дробное | Порог, ниже которого не может опускаться баланс клиента-сотрудника |
• min_balance_for_use_cashless | Дробное | Минимальный баланс для использования безналичного счета клиента-сотрудника |
• min_bonus_balance_for_use_bonus | Дробное | Минимальный баланс для использования бонусного счета клиента-сотрудника |
• is_locked | true или false | Клиент-сотрудник заблокирован |
• lock_description | Строка | Причина блокировка клиента-сотрудника |
• use_cashless | true или false | Признак использования безналичного расчета по умолчанию для клиента-сотрудника |
• remain_prize | Целое | Сколько заказов осталось до призового |
Строка | E-mail клиента-сотрудника | |
• use_email_informing | true или false | Использовать E-mail для отправки уведомлений по заказу |
• default_crew_group | Целое | Группа экипажей по умолчанию |
accounts | Массив | Массив счетов клиента |
• account_kind | Целое | Тип счета:
|
• balance | Дробное | Баланс счета клиента |
• balance_with_children | Дробное | Баланс счета клиента с учетом вложенных клиентов |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_client_info?client_id=140 Signature: <...> Ответ: { "code": 0, "descr": "OK", "data": { "client_id": 20, "parent_id": 0, "name": "Юр. лицо1", "number": "111", "address": "Адрес Юр. лицо1", "gender": "", "birthday": "22.01.2016", "phones": [ "105", "123456789", "100" ], "balance": 10, "bonus_balance": 333, "login": "111", "password": "111", "client_group_id": 1, "tariff_id": 39, "prize_tariff_id": 0, "tariff_shift_id": 0, "discount_id": 2, "prize_discount_id": 0, "min_balance": 0, "min_balance_for_use_cashless": null, "min_bonus_balance_for_use_bonus": null, "is_locked": false, "lock_description": "", "use_cashless_account": true, "use_cashless": true, "remain_prize": 0, "email": "Юр. лицо1@ss.ru", "use_email_informing": true, "default_crew_group": 6, "comment": "Сотрудник СВР. Использовать максимальные скидки", "employees": [ { "client_id": 323, "parent_id": 20, "name": "Сотрудник1", "number": "111", "address": "Адрес Сотрудник1", "gender": "", "birthday": null, "phones": [ "11221122112211" ], "balance": 0, "bonus_balance": 0, "login": "", "password": "", "client_group_id": 1, "tariff_id": 17, "prize_tariff_id": 0, "tariff_shift_id": 0, "discount_id": 2, "prize_discount_id": 0, "min_balance": 0, "min_balance_for_use_cashless": null, "min_bonus_balance_for_use_bonus": null, "is_locked": false, "lock_description": "", "use_cashless": true, "remain_prize": 0, "email": "Сотрудник1@ss.ru", "use_email_informing": true, "default_crew_group": 6, "accounts": [ { "account_kind": 0, "balance": 400.00, "balance_with_children": 0.00 }, { "account_kind": 1, "balance": 0.00, "balance_with_children": 0.00 }, { "account_kind": 1003, "balance": 100.00, "balance_with_children": 0.00 } ], "attribute_values": [ { "id": 5, "bool_value": true }, { "id": 4, "bool_value": true } ] } ], "accounts": [ { "account_kind": 0, "balance": 2355.00, "balance_with_children": 2755.00 }, { "account_kind": 1, "balance": 0.00, "balance_with_children": 0.00 }, { "account_kind": 1003, "balance": -20.00, "balance_with_children": 80.00 } ], "attribute_values": [ { "id": 4, "bool_value": true } ] } }
Запрос информации по клиентам
Метод: GET
Название запроса: get_clients_info
Версия ТМ: 3.5
Параметры:
Параметры | Тип | Описание |
---|---|---|
Необязательные параметры | ||
text | Строка | Текст для поиска по названию или по номеру договора клиента |
max_clients_count | Целое | Максимальное количество клиентов, которое надо вернуть. Если не указано, то 10. |
client_group_id | Целое | Фильтр по группе клиентов |
parent_id | Целое | Фильтр по вышестоящему подразделению, возвращаются все подчиненные отделы и сотрудники на всю глубину иерархии |
fields | Строка | Список возвращаемых полей через запятую. По умолчанию возвращаются поля "name" и "number". Поле "client_id" возвращается всегда |
Специальные возвращаемые коды: Нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметры | Тип | Описание |
---|---|---|
client_id | Целое | ИД клиента |
name | Строка | Наименование |
number | Строка | Номер договора |
parent_id | Целое | ИД клиента-родителя |
address | Строка | Домашний адрес |
gender | Строка | Пол. Может принимать значения:
• "" - не указан • "male" - мужской • "female" - женский |
birthday | ДД.ММ.ГГГГ | Дата рождения |
phones | Массив | Массив телефонов клиента |
• phone | Строка | Номер телефона клиента |
balance | Дробное | Баланс |
bonus_balance | Дробное | Бонусный баланс |
login | Строка | Логин |
password | Строка | Пароль |
client_group_id | Целое | ИД группы клиента |
tariff_id | Целое | ИД тарифа клиента или группы клиентов |
prize_tariff_id | Целое | ИД призового тарифа клиента или группы клиентов |
tariff_shift_id | Целое | ИД смены тарифов клиента или группы клиентов |
discount_id | Целое | ИД скидки клиента или группы клиентов |
prize_discount_id | Целое | ИД призовой скидки клиента или группы клиентов |
min_balance | Дробное | Порог, ниже которого не может опускаться баланс |
min_balance_for_use_cashless | Дробное | Минимальный баланс для использования безналичного счета |
min_bonus_balance_for_use_bonus | Дробное | Минимальный баланс для использования бонусного счета |
is_locked | true или false | Клиент заблокирован |
lock_description | Строка | Причина блокировки |
use_cashless_account | true или false | Признак использования безналичного счета |
use_cashless | true или false | Признак использования безналичного расчета по умолчанию. Имеет смысл только при use_cashless_account = true |
no_cash_payment | true или false | Признак запрета использования наличных расчетов. Имеет смысл только при use_cashless_account = true и use_cashless = true |
remain_prize | Целое | Сколько заказов осталось до призового |
Строка | ||
use_email_informing | true или false | Использовать E-mail для отправки уведомлений по заказу |
default_crew_group | Целое | Группа экипажей по умолчанию |
use_own_account | true или false | Использовать собственный счет для оплаты заказа |
comment | Строка | Комментарий |
accounts | Массив | Массив счетов клиента |
• account_kind | Целое | Тип счета:
|
• balance | Дробное | Баланс счета клиента |
• balance_with_children | Дробное | Баланс счета клиента с учетом вложенных клиентов |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_clients_info?text=test&max_clients_count=10&client_group_id=1&parent_id=20&fields=name,number HTTP/1.1 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "clients_info":[ { "client_id":390, "name":"tester1", "number":"001" }, { "client_id":394, "name":"tester2", "number":"002" } ] } }
Изменение информации по клиенту
Метод: POST
Название запроса: update_client_info
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
client_id | Целое | ИД клиента |
Необязательные параметры | ||
name | Строка, <= 60 символов | ФИО |
login | Строка, <= 60 символов | Логин |
password | Строка, <= 60 символов | Пароль |
phones | Строка | Номера телефонов (через запятую) |
address | Строка | Домашний адрес |
birthday | ГГГГММДДччммсс | Дата рождения |
gender | Строка | Пол. Может принимать значения:
• "male" - мужской • "female" - женский |
parent_id | Целое | ИД клиента-родителя |
client_group_id | Целое | ИД группы клиента |
Строка | ||
use_email_informing | true или false | Использовать E-mail для отправки уведомлений по заказу |
comment | Строка | Комментарий |
use_own_account | true или false | Использовать собственный счет для оплаты заказов |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Клиент с номером телефона=PHONE уже существует |
101 | Клиент с ИД=ID имеет такой же номер телефона=PHONE |
102 | Клиент с логином=LOGIN уже существует |
103 | Группа клиента с ИД=CLIENT_GROUP_ID не найдена |
104 | Клиент указанный в качестве родителя с ИД=PARENT_ID не найден |
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос: POST https://ip:port/common_api/1.0/update_client_info Signature: <...> Content-Type: application/x-www-form-urlencoded Content-Length: <...> client_id=140&name=NAME&phones=88,99&login=LOGIN&password=PASSWORD&birthday=20140901000000&gender=male&address=ADDRESS&parent_id=10&client_group_id=3&email=mail%40ya.ru&use_email_informing=true Ответ: { "code":0, "descr":"OK", "data":{} }
Изменение информации по клиенту 2
Метод: POST
Название запроса: update_client_info2
Версия ТМ: 3.12
Параметры в формате JSON:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
client_id | Целое | ИД клиента |
Необязательные параметры | ||
name | Строка, <= 60 символов | ФИО |
login | Строка, <= 60 символов | Логин |
password | Строка, <= 60 символов | Пароль |
phones | Массив | Массив телефонов клиента |
• phone | Строка | Номер телефона |
• is_default | true или false | Признак основного телефона |
client_group_id | Целое | ИД группы клиента |
parent_id | Целое | ИД клиента-родителя |
address | Строка | Домашний адрес |
birthday | ГГГГММДДччммсс | Дата рождения |
gender | Строка | Пол. Может принимать значения:
• "male" - мужской • "female" - женский |
Строка | ||
use_email_informing | true или false | Использовать E-mail для отправки уведомлений по заказу |
comment | Строка | Комментарий |
use_own_account | true или false | Использовать собственный счет для оплаты заказов |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Клиент с ИД=CLIENT_ID не найден |
101 | Дублирование номера телефона=PHONE в списке |
102 | Клиент с логином=LOGIN уже существует |
103 | Группа клиента с ИД=CLIENT_GROUP_ID не найдена |
104 | Клиент указанный в качестве родителя с ИД=PARENT_ID не найден |
105 | Основной телефон может быть только один |
106 | Клиент должен иметь основной телефон |
107 | Атрибут с ИД=ID не найден |
108 | Атрибут с ИД=ID не может быть привязан к клиенту |
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос: POST https://ip:port/common_api/1.0/update_client_info2 HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "client_id":140, "name":"NAME", "login":"LOGIN", "password":"PASSWORD", "phones":[ { "phone":"88", "is_default":true } ], "address":"ADDRESS", "gender":"male", "birthday":"20000101000000", "client_group_id":1, "parent_id":10, "email":"mail@ya.ru", "use_email_informing":true, "comment":"TEXT", "use_own_account":false, "attribute_values":[ { "id":7, "num_value":5 }, { "id":9, "str_value":null } ] } Ответ: { "code":0, "descr":"OK", "data":{} }
Запрос текущих заказов
Метод: GET
Название запроса: get_current_orders
Параметры:
Параметры | Тип | Описание |
---|---|---|
Необязательные параметры | ||
client_id | Целое | ИД клиента |
client_employee_id | Целое | ИД сотрудника (только если указан ИД клиента) |
phone | Строка, <= 30 символов | Телефон клиента |
crew_id | Целое | ИД экипажа |
driver_id | Целое | ИД водителя |
fields | Строка | Список возвращаемых полей через запятую |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден клиент ИД=CLIENT_ID |
101 | Не найден сотрудник клиента ИД=CLIENT_EMPLOYEE_ID |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
id | Целое | ИД заказа |
state_id | Целое | ИД состояния заказа |
state_kind | Строка | Тип состояния заказа. Может принимать значения:
|
crew_id | Целое | ИД экипажа |
prior_crew_id | Целое | ИД предварительного экипажа |
driver_id | Целое | ИД водителя |
car_id | Целое | ИД автомобиля |
server_time_offset | Целое | Смещение относительно серверного времени |
start_time | ГГГГММДДччммсс | Дата создания заказа |
source_time | ГГГГММДДччммсс | Время подачи |
source | Строка | Адрес подачи |
source_lat | Строка | Широта адреса подачи |
source_lon | Строка | Долгота адреса подачи |
destination | Строка | Адрес назначения |
destination_lat | Строка | Широта адреса назначения |
destination_lon | Строка | Долгота адреса назначения |
stops | Массив | Информация по остановкам заказа |
• address | Строка | Адрес остановки |
• lat | Дробное | Широта адреса остановки |
• lon | Дробное | Долгота адреса остановки |
customer | Строка | Заказчик |
passenger | Строка | Пассажир |
phone | Строка | Номер телефона |
phone_to_dial | Строка | Номер телефона для отзвона |
client_id | Целое | ИД клиента |
client_name | Строка | Имя клиента |
client_group_id | Целое | ИД группы клиента |
client_group_name | Строка | Название группы клиента |
client_employee_id | Целое | ИД сотрудника клиента |
order_crew_group_id | Целое | ИД группы экипажей, которая указана в заказе |
tariff_id | Целое | ИД тарифа |
car_mark | Строка | Марка автомобиля |
car_model | Строка | Модель автомобиля |
car_color | Строка | Цвет автомобиля |
car_number | Строка | Гос.номер автомобиля |
confirmed | Строка | Состояние подтвержденности заказа водителем или оператором. Может принимать значения:
|
crew_coords | Массив | Координаты экипажа |
• lat | Дробное | Широта |
• lon | Дробное | Долгота |
order_params | Массив | Массив параметров заказа экипажа. Устарело. Рекомендуется использовать параметр attribute_values. (Возвращается только если в списке фильтра полей fields запросили поле order_params) |
• | Целое | ИД параметра заказа |
creation_way | Строка | Способ создания заказа. Может принимать значения:
• "operator" — заказ создан оператором • "sms" — заказ создан через смс • "market" — заказ из биржи • "common_api" — заказ создан через api • "t_api" — заказ создан через api • "taxophone" — заказ создан через таксофон с телефона • "driver" — заказ создан водителем • "daily_order" — ежедневный заказ • "taxophone_web" — заказ создан через таксофон с сайта • "unknown" — неизвестный |
is_prior | true или false | Предварительный заказ |
is_really_prior | true или false | Предварительный заказ на вкладке "Предварительные" |
Строка | Email для уведомлений | |
prior_to_current_before_minutes | Целое | Время перехода из предварительного в текущие заказы, мин |
flight_number | Строка | Номер рейса |
sum | Дробное | Сумма без скидки |
total_sum | Дробное | Итоговая сумма заказа |
cash_sum | Дробное | Сумма наличными |
cashless_sum | Дробное | Сумма безналичными |
bonus_sum | Дробное | Сумма бонусами |
bank_card_sum | Дробное | Сумма банковской картой |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
bill | Массив | Чек TMDriver. Данный узел выводится только, если по заказу есть чек и если в списке фильтра полей fields запросили поле bill |
• code | Строка | Код элемента расчета |
• text | Строка | Наименование элемента расчета |
• value | Строка | Значение элемента расчета (количество) |
• sum | Строка | Стоимость элемента расчета |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_current_orders?client_id=140&phone=18 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "order_id":1, "state_id":12, "state_kind":"car_at_place", "crew_id":1, "prior_crew_id":0, "driver_id":2, "car_id":3, "server_time_offset:0, "start_time":"20130117125641", "source_time":"20130117132617", "source":"30 Лет Победы ул. \/Ижевск\/, 4Б", "source_lat":56.863613, "source_lon":53.186539, "destination":"Кирова ул. \/Ижевск\/, 56", "destination_lat":56.862202, "destination_lon":53.187485, "stops":[ { "address":"30 Лет Победы ул. \/Ижевск\/, 8", "lat":56.863388, "lon":53.184269 } ], "customer":"Слепаков", "passenger":"Слепаков", "phone":"8800", "client_id":1, "client_employee_id":1, "order_crew_group_id":1, "tariff_id":1, "car_mark":"Ауди", "car_model":"Q7", "car_color":"черный", "car_number":"А777АА", "confirmed":"confirmed_by_oper", "crew_coords": { "lat": 56.833981, "lon": 53.220249 }, "order_params":[ 1, 2, 5 ], "creation_way":"operator", "is_prior":true, "is_really_prior":false, "email":"mail@mail.ru", "prior_to_current_before_minutes":30, "flight_number":"A-0501/123", "sum":50.5, "total_sum":80, "cash_sum":20.1, "cashless_sum":10, "bonus_sum":5.2, "bank_card_sum":15, "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ], "bill": [ { "code":"BOARDING", "text":"Посадка", "value":"", "sum":"20,00" }, { "code":"TRIP_TIME", "text":"Общее время", "value":"0:00:00", "sum":"" }, { "code":"TRIP_DIST", "text":"Общее расстояние", "value":"0,00 км", "sum":"" }, { "code":"BEFORE_DISC", "text":"Сумма без скидки", "value":"", "sum":"20,00" }, { "code":"AFTER_DISC", "text":"Сумма со скидкой", "value":"", "sum":"20,00" }, { "code":"MINIMUM", "text":"Минималка", "value":"", "sum":"60,00" } ] } }
Запрос выполненных заказов
Метод: GET
Название запроса: get_finished_orders
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
start_time | ГГГГММДДччммсс | Начало периода |
finish_time | ГГГГММДДччммсс | Конец периода |
Необязательные параметры | ||
Примечание: должен присутствовать хотя бы один параметр из client_id, phone, crew_id, driver_id. | ||
client_id | Целое | ИД клиента |
client_employee_id | Целое | ИД сотрудника (только если указан ИД клиента) |
phone | Строка, <= 30 символов | Телефон клиента |
crew_id | Целое | ИД экипажа |
driver_id | Целое | ИД водителя |
state_type | Строка | Тип состояния заказа. Может принимать значения:
• "all" — все • "finished" — выполненные • "aborted" — прекращенные |
state_ids | Строка | Список состояний заказа через точку с запятой, пример: «1;2;3» |
fields | Строка | Список возвращаемых полей через запятую |
Примечание: должен присутствовать хотя бы один параметр из client_id, phone, crew_id, driver_id.
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
id | Целое | ИД заказа |
state_id | Целое | ИД состояния заказа |
crew_id | Целое | ИД экипажа |
prior_crew_id | Целое | ИД предварительного экипажа |
driver_id | Целое | ИД водителя |
car_id | Целое | ИД автомобиля |
server_time_offset | Целое | Смещение относительно серверного времени |
start_time | ГГГГММДДччммсс | Время создания заказа |
source_time | ГГГГММДДччммсс | Время подачи |
finish_time | ГГГГММДДччммсс | Время завершения заказа |
source | Строка | Адрес подачи |
source_lat | Дробное | Широта адреса подачи |
source_lon | Дробное | Долгота адреса подачи |
destination | Строка | Адрес назначения |
destination_lat | Дробное | Широта адреса назначения |
destination_lon | Дробное | Долгота адреса назначения |
stops | Массив | Массив адресов остановок |
• address | Строка | Адрес остановки |
• lat | Дробное | Широта адреса остановки |
• lon | Дробное | Долгота адреса остановки |
trip_distance | Дробное | Фактический километраж |
trip_time | Целое | Фактическое время в пути |
customer | Строка | Заказчик |
passenger | Строка | Пассажир |
phone | Строка | Номер телефона |
phone_to_dial | Строка | Номер телефона для отзвона |
client_id | Целое | ИД клиента |
client_name | Строка | Имя клиента |
client_group_id | Целое | ИД группы клиента |
client_group_name | Строка | Название группы клиента |
client_employee_id | Целое | ИД сотрудника клиента |
order_crew_group_id | Целое | ИД группы экипажей, которая указана в заказе |
tariff_id | Целое | ИД тарифа |
car_mark | Строка | Марка автомобиля |
car_model | Строка | Модель автомобиля |
car_color | Строка | Цвет автомобиля |
car_number | Строка | Гос.номер автомобиля |
order_params | Массив | Массив параметров заказа экипажа. Устарело. Рекомендуется использовать параметр attribute_values. (Возвращается только если в списке фильтра полей fields запросили поле order_params) |
• | Целое | ИД параметра заказа |
creation_way | Строка | Способ создания заказа. Может принимать значения:
• "operator" — заказ создан оператором • "sms" — заказ создан через смс • "market" — заказ из биржи • "common_api" — заказ создан через api • "t_api" — заказ создан через api • "taxophone" — заказ создан через таксофон с телефона • "driver" — заказ создан водителем • "daily_order" — ежедневный заказ • "taxophone_web" — заказ создан через таксофон с сайта • "unknown" — неизвестный |
is_prior | true или false | Предварительный заказ |
Строка | Email для уведомлений | |
flight_number | Строка | Номер рейса |
sum | Дробное | Стоимость заказа без учета скидок (наценок) |
total_sum | Дробное | Итоговая стоимость заказа |
cash_sum | Дробное | Заплачено наличными |
cashless_sum | Дробное | Заплачено с безналичного счета клиента |
bonus_sum | Дробное | Заплачено с бонусного счета клиента |
bank_card_sum | Дробное | Заплачено банковской картой |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
bill | Массив | Чек TMDriver. Данный узел выводится только, если по заказу есть чек и если в списке фильтра полей fields запросили поле bill |
• code | Строка | Код элемента расчета |
• text | Строка | Наименование элемента расчета |
• value | Строка | Значение элемента расчета (количество) |
• sum | Строка | Стоимость элемента расчета |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_finished_orders?start_time=20220405142210&finish_time=20220405142710&fields=state_id,crew_id,prior_crew_id,driver_id,car_id,server_time_offset,start_time,source_time,finish_time,source,source_lat,source_lon,destination,destination_lat,destination_lon,stops,trip_distance,trip_time,customer,passenger,phone,phone_to_dial,client_id,client_name,client_group_id,client_group_name,client_employee_id,order_crew_group_id,tariff_id,order_params,attribute_values,creation_way,is_prior,email,flight_number,sum,total_sum,cash_sum,cashless_sum,bonus_sum,bank_card_sum,car_mark,car_model,car_color,car_number,bill Ответ: { "code":0, "descr":"OK", "data": { "orders": [ { "id":47834, "state_id":4, "crew_id":17, "prior_crew_id":0, "driver_id":17, "car_id":16, "server_time_offset":0, "start_time":"20220405142418", "source_time":"20220405142418", "finish_time":"20220405142708", "source":"5-Я ЯМСКОГО ПОЛЯ УЛ., 37", "source_lat":56.853062, "source_lon":53.20715, "destination":"ХОДЫНСКАЯ УЛ., 10А", "destination_lat":0, "destination_lon":0, "stops": [] , "trip_distance":10, "trip_time":3600, "customer":"Client 89872977005", "passenger":"", "phone":"89872977005", "phone_to_dial":"", "client_id":43111, "client_name":"Client 89872977005", "client_group_id":2, "client_group_name":"Физические", "client_employee_id":0, "order_crew_group_id":0, "tariff_id":2, "order_params": [ 28, 29, 30, 55, 58, 59, 62 ] , "attribute_values": [ { "id":28, "num_value":0 } , { "id":29, "num_value":0 } , { "id":30, "num_value":0 } , { "id":55, "num_value":1 } , { "id":58, "num_value":0 } , { "id":59, "num_value":0 } , { "id":62, "num_value":0 } ] , "creation_way":"operator", "is_prior":false, "email":"", "flight_number":"", "sum":100, "total_sum":100, "cash_sum":50, "cashless_sum":40, "bonus_sum":10, "bank_card_sum":0, "car_mark":"Баф", "car_model":"Fenix 3346", "car_color":"белая", "car_number":"а111аа" } ] } }
Проведение операции по клиенту
Метод: POST
Название запроса: create_client_operation
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
client_id | Целое | ИД клиента |
sum | Дробное | Сумма |
oper_type | Целое | Тип операции:
• "receipt" - приход • "expense" - расход |
Необязательные параметры | ||
oper_time | ГГГГММДДччммсс | Время создания операции (если не указано, текущее) |
comment | Строка | Комментарий |
pay_type | Целое | Тип оплаты:
• "cash" - наличный • "nocash" - безналичный |
bonus_oper | true или false | Операция по бонусному счёту. Данный параметр устарел - рекомендуется использовать "account_kind" |
account_kind | Целое | Тип счета:
|
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден клиент ИД=CLIENT_ID |
101 | Не найден тип счета ИД=ACCOUNT_KIND |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
oper_id | Целое | ИД операции |
Пример:
Запрос: POST https://ip:port/common_api/1.0/create_client_operation Signature: <...> Content-Type: application/x-www-form-urlencoded Content-Length: <...> client_id=112&oper_time=20130221100719&oper_sum=300&oper_type=receipt&pay_type=cash&comment=COMMENT&account_kind=0 Ответ: { "code":0, "descr":"OK", "data":{ "oper_id":31 } }
Запрос операций по клиенту
Метод: GET
Название запроса: get_client_operations
Параметры:
Параметры | Тип | Описание |
---|---|---|
Обязательные параметры | ||
client_id | Целое | ИД клиента |
start_time | ГГГГММДДччммсс | Начало периода |
finish_time | ГГГГММДДччммсс | Конец периода |
Необязательные параметры | ||
account_kind | Целое | Тип счета:
|
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден клиент ИД=CLIENT_ID |
101 | Не найден тип счета ИД=ACCOUNT_KIND |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
oper_id | Целое | ИД операции |
oper_time | ГГГГММДДччммсс | Время создания операции |
sum | Дробное | Сумма |
order_id | Целое | Заказ, связанный с операцией |
oper_type | Целое | Тип операции:
• "receipt" - приход • "expense" - расход |
pay_type | Целое | Тип оплаты:
• "cash" - наличный • "nocash" - безналичный |
account_kind | Целое | Тип счета:
|
name | Строка | Наименование |
comment | Строка | Комментарий |
cancelled_by_oper_id | Целое | ИД операции отмены (для отмененной операции) |
cancelled_oper_id | Целое | ИД отмененной операции (для операции отмены) |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_client_operations?client_id=112&start_time=20130201092112&finish_time=20130221092112&account_kind=0 HTTP/1.1 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "operations":[ { "oper_id":111, "oper_time":"20130219091328", "sum":"21,8", "order_id":11800, "oper_type":"receipt", "pay_type":"cash", "account_kind":0, "name":"Пополнение счета", "comment":"Комментарий", "cancelled_by_oper_id":0, "cancelled_oper_id":112 }, { "oper_id":112, "oper_time":"20130220112245", "sum":"4500", "order_id":11801, "oper_type":"receipt", "pay_type":"cash", "account_kind":0, "name":"Пополнение счета", "comment":"Комментарий" "cancelled_by_oper_id":111, "cancelled_oper_id":0 } ] } }
Проведение операции по водителю
Метод: POST
Название запроса: create_driver_operation
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
driver_id | Целое | ИД водителя |
oper_sum | Дробное | Сумма |
oper_type | Строка | Тип операции:
• receipt - приход • expense - расход |
Необязательные параметры | ||
name | Строка | Наименование операции |
oper_time | ГГГГММДДччммсс | Время создания операции (если не задано, текущее) !! Не используется с ТМ 3.7 |
comment | Строка | Комментарий |
account_kind | Целое | ИД типа счета (0 - основной счет), по умолчанию 0 |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Водитель не найден ИД=DRIVER_ID |
101 | Не найден тип счета ИД=ACCOUNT_KIND |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
oper_id | Целое | ИД операции |
Пример:
Запрос: POST https://ip:port/common_api/1.0/create_driver_operation Signature: <...> Content-Type: application/json Content-Length: 99 { "driver_id": 1, "oper_sum": 10.00, "oper_type": "receipt", "name": "Пополнение счета", "oper_time": "20141210100719", "comment": "Комментарий к операции" "account_kind": 1 } Ответ: { "code":0, "descr":"OK", "data":{ "oper_id":31 } }
Запрос операций по водителю
Метод: GET
Название запроса: get_driver_operations
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
driver_id | Целое | ИД водителя |
start_time | ГГГГММДДччммсс | Начало периода |
finish_time | ГГГГММДДччммсс | Конец периода |
Необязательные параметры | ||
account_kind | Целое | ИД типа счета (0 - основной счет), по умолчанию 0 |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден водитель ИД=DRIVER_ID |
101 | Не найден тип счета ИД=ACCOUNT_KIND |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
oper_id | Целое | ИД операции |
oper_time | ГГГГММДДччммсс | Время создания операции |
sum | Дробное | Сумма |
order_id | Целое | Заказ, связанный с операцией |
oper_type | Целое | Тип операции:
•"receipt" - приход •"expense" - расход |
name | Строка | Наименование |
comment | Строка | Комментарий |
account_kind | Целое | ИД типа счета |
cancelled_by_oper_id | Целое | ИД операции отмены (для отмененной операции) |
cancelled_oper_id | Целое | ИД отмененной операции (для операции отмены) |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_driver_operations? driver_id=112&start_time=20130201092112&finish_time=20130221092112 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "operations":[ { "oper_id":111, "oper_time":"20130219091328", "sum":"21,8", "order_id":11800, "oper_type":"receipt", "name":"DRIVER_OPERATION_1", "comment":"DRIVER_OPERATION_COMMENT_1", "account_kind":0, "cancelled_by_oper_id":0, "cancelled_oper_id":112 }, { "oper_id":112, "oper_time":"20130220112245", "sum":"4500", "order_id":11801, "oper_type":"receipt", "name":"DRIVER_OPERATION_2", "comment":"DRIVER_OPERATION_COMMENT_2", "account_kind":0, "cancelled_by_oper_id":111, "cancelled_oper_id":0 } ] } }
Назначение динамического приоритета водителю
Метод: POST
Название запроса: create_driver_dyn_priority
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
driver_id | Целое | ИД водителя (должно быть что-то одно: либо driver_id, либо crew_id) |
crew_id | Целое | ИД экипажа (должно быть что-то одно: либо driver_id, либо crew_id) |
priority | Целое | Приоритет |
start_time | ГГГГММДДччммсс | Время начала действия приоритета |
finish_time | ГГГГММДДччммсс | Время окончания действия приоритета |
name | Строка | Наименование приоритета |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Водитель не найден ИД=DRIVER_ID |
101 | Экипаж не найден ИД=CREW_ID |
102 | Время начала действия приоритета должно быть меньше времени окончания |
103 | Время действия приоритета уже истекло |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
dyn_priority_id | Целое | ИД созданного динамического приоритета |
Пример:
Запрос: POST https://ip:port/common_api/1.0/create_driver_dyn_priority Signature: <...> Content-Type: application/json Content-Length: <...> { "driver_id": 1, "priority": 10, "start_time": "20150101100000", "finish_time": "20150101200000", "name": "За выполнение заказа в отдаленный район" } Ответ: { "code":0, "descr":"OK", "data":{ "dyn_priority_id":123 } }
Задание координат экипажей
Метод: POST
Название запроса: set_crews_coords
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
crew_coords | Массив | Массив координат экипажей |
• crew_id | Целое | ИД экипажа |
• gps_id | Целое | GPS идентификатор (если не задан ИД экипажа). Данный параметр устарел - не применяется, начиная с версии 3.9 |
• lat | Дробное | Широта |
• lon | Дробное | Долгота |
Необязательные параметры | ||
speed | Дробное | Скорость |
direction | Целое | Направление движения (0-Север, 90-Восток, 180-Юг, 270-Запад, -1-не задано) |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос: POST https://ip:port/common_api/1.0/set_crews_coords HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "crews_coords":[ { "crew_id":1, "lat":11.111111, "lon":22.222222, "speed":66.66, "direction":333 }, { "gps_id":2, "lat":33.333333, "lon":44.444444 } ] } Ответ: { "code":0, "descr":"OK", "data":{} }
Изменение информации по заказу
Метод: POST
Название запроса: update_order
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
order_id | Целое | ИД заказа |
Необязательные параметры | ||
phone | Строка, <= 30 символов | Номер телефона |
source_time | ГГГГММДДччммсс | Время подачи |
is_prior | true или false | Предварительный заказ |
customer | Строка | Заказчик |
passenger | Строка | Пассажир |
comment | Строка | Комментарий |
crew_group_id | Целое | ИД группы экипажей |
client_id | Целое | ИД клиента |
uds_id | Целое | ИД службы ЕДС |
tariff_id | Целое | ИД тариф |
addresses | Массив | Массив адресов. Первый элемент — адрес
подачи(обязательно), последний — адрес назначения, между ними — остановки. |
• address | Строка | Адрес подачи |
• lat | Дробное | Широта адреса |
• lon | Дробное | Долгота адреса |
order_params | Массив | Массив параметров заказа. Устарело. Рекомендуется использовать параметр attribute_values. |
• | Целое | ИД параметра заказа |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
cost_order | Дробное | Сумма заказа |
state_id | Целое | ИД состояния заказа |
discount_id | Целое | ИД скидки |
auto_select_discount | true или false | Автоматически подобрать скидку, если не указана явно |
auto_select_tariff | true или false | Автоматически подобрать тариф, если не указан явно |
auto_recalc_cost | true или false | Автоматически пересчитать сумму заказа |
auto_update_order_params | true или false | Автоматически обновить параметры заказа по клиенту и группе клиента |
Строка | Email для уведомлений | |
prior_to_current_before_minutes | Целое | Время перехода из предварительного в текущие заказы, мин |
flight_number | Строка | Номер рейса |
need_custom_validate | true или false | Использовать специальную проверку перед изменением заказа |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Заказ не найден |
101 | Состояние заказа не найдено |
102 | Тариф не найден |
103 | Скидка не найдена |
104 | Группа экипажа не найдена |
105 | Служба не найдена |
106 | Клиент не найден |
107 | Изменение состояния не соответствует необходимым условиям |
108 | Параметр заказа не найден |
109 | Атрибут не может быть привязан к заказу |
110 | Ошибка специальной проверки заказа перед изменением. В ответе будет возвращаться:
"data": { "message":"Текст ошибки для пользователя." } |
111 | Недостаточно средств на безналичном счете клиента в ТМ |
112 | Для клиента запрещена оплата заказа наличными. Клиент должен максимально использовать в заказе безналичную оплату (оплату с основного счета) |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
POST https://ip:port/common_api/1.0/update_order HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "order_id": 12105, "phone": "555", "source_time": "20141216095044", "is_prior": true, "auto_select_discount": true, "auto_select_tariff": true, "auto_recalc_cost": true, "auto_update_order_params": true, "customer": "Заказчик", "passenger": "Пассажир", "comment": "Комментарий", "crew_group_id": 8, "client_id": 30, "tariff_id": 33, "addresses":[ {"address":"SOURCE","lat":56.896817,"lon":53.147830}, {"address":"STOP1","lat":56.845452,"lon":53.226775}, {"address":"STOP2"}, {"address":"DESTINATION","lat":56.861230,"lon":53.241870} ], "cost_order": 200, "state_id": 55, "discount_id": 1, "email" : "mail@mail.ru", "prior_to_current_before_minutes":30, "flight_number":"Number", "need_custom_validate":false, "attribute_values": [ { "id": 1, "bool_value": true }, { "id": 2, "num_value": 1 }, { "id": 3, "num_value": 10 }, { "id": 4, "str_value": "строка" } ] } Ответ: { "code":0, "descr":"OK", "data":{} }
Анализ телефона
Метод: GET
Название запроса: analyze_phone
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
phone | Строка | Номер телефона |
Необязательные параметры | ||
search_in_drivers_mobile | true или false | Искать среди телефонов водителей |
search_in_clients | true или false | Искать среди телефонов клиентов |
search_in_phones | true или false | Искать в справочнике телефонов |
Если параметры search_in_drivers_mobile, search_in_clients, search_in_phones не заданы, то поиск телефона будет происходить во всех справочниках.
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Телефон не найден |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
phone_type | Строка | Может принимать значения: «driver_mobile», «client», «phone». |
id | Целое | ИД водителя, клиента, телефона из справочника. |
client_employee_id | Целое | ИД сотрудника клиента (если телефон найден среди телефонов клиента) |
Пример:
Запрос: GET /common_api/1.0/analyze_phone? phone=89501234567&search_in_drivers_mobile=true&search_in_drivers_home=true&search_in_clients=true& search_in_phones=true Host: 127.0.0.1:8089 Keep-Alive: 300 Connection: keep-alive Signature: 4285286a446064353f4a951b721c54f7 Ответ: { "code":0, "descr":"OK", "data":{ "phone_type":"client", "id":1 "client_employee_id":2 } }
Показать сообщение в ТМ
Метод: POST
Название запроса: show_tm_message
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
text | Строка | Текст сообщения |
Необязательные параметры | ||
type | Строка | Тип сообщения ("warning", "error", "information", "confirmation"), по умолчанию "information" |
header | Строка | Заголовок сообщения |
timeout | Целое | Скрывать сообщение через, сек. (0 — не скрывать) |
users | Массив | Массив пользователей (если не указаны — отправлять всем) |
• | Целое | ИД пользователя |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Пользователи для отправки сообщения не найдены |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос: POST https://ip:port/common_api/1.0/show_tm_message HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "text": "Текст сообщения", "type": "warning", "users": [ 1, 2, 3 ], "header": "Заголовок", "timeout": 12 } Ответ: { "code":0, "descr":"OK", "data":{} }
Запрос списка купленных смен водителей
Метод: GET
Название запроса: get_driver_shifts
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
start_time | ГГГГММДДччммсс | Начало периода |
finish_time | ГГГГММДДччммсс | Конец периода |
Необязательные параметры | ||
driver_id | Целое | ИД водителя |
new_shifts | true или false | Включить в ответ новые смены (по умолчанию true) |
in_work_shifts | true или false | Включить в ответ смены в работе (по умолчанию true) |
finished_shifts | true или false | Включить в ответ выполненные смены (по умолчанию true) |
failed_shifts | true или false | Включить в ответ неуспешно завершенные смены (по умолчанию true) |
returned_shifts | true или false | Включить в ответ возвращенные смены (по умолчанию false) |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
shifts | Массив | Массив купленных смен |
• shift_id | Целое | ИД купленной смены |
• driver_id | Целое | ИД водителя |
•driver_name | Строка | ФИО водителя |
• plan_shift_id | Строка | ИД запланированной смены |
• plan_shift_name | Строка | Наименование запланированной смены |
• plan_shift_cost | Дробное | Цена смены |
• plan_shift_type | Строка | Тип смены («limited» - срочная, «unlimited» - бессрочная) |
• plan_shift_start_time | ГГГГММДДччммсс | План-начало смены (для срочных) |
• plan_shift_finish_time | ГГГГММДДччммсс | План-конец смены (для срочных) |
• plan_shift_length | Целое | План продолжительность смены, ч. (для бессрочных) |
• plan_shift_crew_group_id | Целое | ИД первой группы экипажей, которая может купить смену |
• plan_shift_crew_groups | Массив | ИД групп экипажей, которые могут купить смену |
• shift_state | Строка | Состояние смены («new» - новая, «in_work» - в работе, «finished» - завершена успешно, «failed» - завершена неуспешно) |
• buy_time | ГГГГММДДччммсс | Время продажи смены водителю |
• is_returned | true или false | Признак возвращенной смены |
• return_time | ГГГГММДДччммсс | Время возврата смены |
• orders_count | Целое | Количество заказов, выполненных водителем за смену |
• orders_sum | Дробное | Сумма заказов, выполненных водителем за смену |
• fact_length | Дробное | Фактическая продолжительность смены, ч. |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_driver_shifts?start_time=20140101101010&finish_time=20140101202020 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "shifts":[ { "shift_id":1, "driver_id":1, "driver_name":"DRIVER_1", "plan_shift_id":1, "plan_shift_name":"PLAN_SHIFT_1", "plan_shift_cost":100, "plan_shift_type":"limited", "plan_shift_start_time":"20140101101010", "plan_shift_finish_time":"20140101101010", "plan_shift_length":null, "plan_shift_crew_group_id":1, "shift_state":new, "buy_time":"20140101101010", "is_returned":false, "return_time":null, "orders_count":10, "orders_sum":1000, "fact_length":1.2 }, { "shift_id":2, "driver_id":2, "driver_name":"DRIVER_2", "plan_shift_id":2, "plan_shift_name":"PLAN_SHIFT_2", "plan_shift_cost":200, "plan_shift_type":"unlimited", "plan_shift_start_time":null, "plan_shift_finish_time":null, "plan_shift_length":8, "plan_shift_crew_group_id":null, "shift_state":new, "buy_time":"20140101101010", "is_returned":true, "return_time":"20140101101010", "orders_count":0, "orders_sum":0, "fact_length":0 } ] } }
Запрос списка запланированных смен водителей
Метод: GET
Название запроса: get_driver_plan_shifts
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
start_time | ГГГГММДДччммсс | Начало периода (если включаем в ответ срочные смены) |
finish_time | ГГГГММДДччммсс | Конец периода (если включаем в ответ срочные смены) |
Необязательные параметры | ||
limited_shifts | true или false | Включить в ответ срочные смены (по умолчанию true) |
unlimited_shifts | true или false | Включить в ответ бессрочные смены (по умолчанию true) |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
plan_shifts | Массив | Массив запланированных смен |
• plan_shift_id | Целое | ИД запланированной смены |
• plan_shift_name | Строка | Наименование запланированной смены |
• plan_shift_comment | Строка | Комментарий запланированной смены |
• plan_shift_cost | Дробное | Цена смены |
• plan_shift_type | Строка | Тип смены («limited» - срочная, «unlimited» - бессрочная) |
• plan_shift_start_time | ГГГГММДДччммсс | План-начало смены (для срочных) |
• plan_shift_finish_time | ГГГГММДДччммсс | План-конец смены (для срочных) |
• plan_shift_length | Целое | План продолжительность смены, ч. (для бессрочных) |
• plan_shift_crew_group_id | Целое | ИД первой группы экипажей, которая может купить смену |
• plan_shift_crew_groups | Массив | ИД групп экипажей, которые могут купить смену |
• max_sell_count | Целое | Максимальное количество продаж смены |
• sold_count | Целое | Количество продаж смены |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_driver_plan_shifts?start_time=20140101101010&finish_time=20140101202020 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "plan_shifts":[ { "plan_shift_id":1, "plan_shift_name":"PLAN_SHIFT_1", "plan_shift_comment":"PLAN_SHIFT_COMMENT_1", "plan_shift_cost":100, "plan_shift_type":"limited", "plan_shift_start_time":"20140101101010", "plan_shift_finish_time":"20140101101010", "plan_shift_length":null, "plan_shift_crew_group_id":1, "max_sell_count":100, "sold_count":10 }, { "plan_shift_id":2, "plan_shift_name":"PLAN_SHIFT_2", "plan_shift_comment":"PLAN_SHIFT_COMMENT_2", "plan_shift_cost":200, "plan_shift_type":"unlimited", "plan_shift_start_time":null, "plan_shift_finish_time":null, "plan_shift_length":8, "plan_shift_crew_group_id":2, "max_sell_count":200, "sold_count":20 } ] } }
Продажа смены водителю
Метод: POST
Название запроса: driver_buy_shift
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
crew_id | Целое | ИД экипажа |
plan_shift_id | Целое | ИД запланированной смены |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Запланированная смена не найдена |
101 | Экипаж не найден |
102 | Водитель не найден |
103 | Недостаточно денег на счете водителя |
104 | Водитель уволен либо заблокирован |
105 | Запланированная смена устарела |
106 | Не подходит группа экипажа |
107 | Превышено максимальное число покупок смены |
108 | Повторная покупка смены |
109 | Экипажу не назначен атрибут для доступа к смене |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос: POST https://ip:port/common_api/1.0/driver_buy_shift Signature: <...> Content-Type: application/x-www-form-urlencoded Content-Length: 25 crew_id=1&plan_shift_id=1 Ответ: { "code":0, "descr":"OK", "data":{} }
Сохранение отзыва клиента
Метод: POST
Название запроса: save_client_feed_back
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
phone | Строка | Телефон |
rating | Целое | Рейтинг (от 1 до 5) |
text | Строка | Текстовый отзыв |
Необязательные параметры | ||
order_id | Целое | ИД заказа |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Допускается указывать либо параметр rating либо text, либо оба параметра.
Специальные возвращаемые коды: нет.
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос: POST /common_api/1.0/save_client_feed_back Host: 127.0.0.1:8090 Keep-Alive: 300 Connection: keep-alive Content-Type: application/json Content-Length: 72 Signature: <...> { "phone":"89123456789", "rating":4, "text":"test feedback", "order_id":100 } Ответ: { "code":0, "descr":"OK", "data":{} }
Поиск экипажей по координатам
Метод: GET
Название запроса: find_crews_by_coords
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
lat | Дробное | Широта точки центра поиска |
lon | Дробное | Долгота точки центра поиска |
radius | Дробное | Радиус поиска, км или мили |
Необязательные параметры | ||
crews_without_coords | true или false | Искать экипажи без реальных координат по координатам стоянок |
crews_release_in | Целое | Допустимое время до освобождения в зоне поиска, если надо возвращать занятые экипажи (если 0, то искать только свободные экипажи), мин |
crew_group_id | Целое | ИД группы экипажей, заказы из которой должны видеть подходящие экипажи |
uds_id | Целое | ИД службы ЕДС, к которой должны принадлежать подходящие экипажи |
attributes | Строка | Список ИД атрибутов заказа, которыми должны обладать подходящие экипажи (через точку с запятой, пример: «1;2;3»). Устарело. Рекомендуется использовать параметр attribute_values. |
attribute_values | Массив | Массив значений атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
waiting_count | Целое | Количество свободных экипажей в зоне поиска |
on_order_count | Целое | Количество занятых экипажей, освобождающихся в зоне поиска |
Пример:
Запрос: GET https://ip:port/common_api/1.0/find_crews_by_coords? lat=11.111111&lon=22.222222&radius=2&crews_release_in=5 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "waiting_count":5, "on_order_count":2 } }
Подбор тарифа для заказа
Метод: POST
Название запроса: select_tariff_for_order
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Необязательные параметры | ||
client_id | Целое | ИД клиента |
crew_group_id | Целое | ИД группы экипажей |
uds_id | Целое | ИД службы ЕДС |
source_time | ГГГГММДДччммсс | Время подачи |
is_prize | true или false | Призовой заказ |
addresses | Массив | Массив координат адресов. Первый элемент — адрес подачи,
последний — адрес назначения, между ними — остановки. Заполняется если определены координаты всех адресов. |
• lon | Дробное | Долгота адреса |
• lat | Дробное | Широта адреса |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Клиент не найден |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
tariff_id | Целое | Тариф |
Пример:
Запрос: POST https://ip:port/common_api/1.0/select_tariff_for_order Signature: <...> Content-Type: application/json Content-Length: <...> { "client_id":1, "crew_group_id":2, "source_time":"20160101100000", "is_prize":true "addresses": [ { "lat": 11.111111, "lon": 22.222222 }, { "lat": 33.333333, "lon": 44.444444 } } Ответ: { "code":0, "descr":"OK", "data":{ "tariff_id":2 } }
Импорт марок автомобилей в БД
Метод: POST
Название запроса: import_car_marks
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
marks | Массив строк | Импортируемые марки автомобилей |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос: POST https://ip:port/common_api/1.0/import_car_marks Signature: <...> Content-Type: application/json Content-Length: <...> { "marks": [ "Mercedes", "BMW" ] } Ответ: { "code":0, "descr":"OK", "data":{} }
Импорт цветов автомобилей в БД
Метод: POST
Название запроса: import_car_colors
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
colors | Массив строк | Импортируемые цвета автомобилей |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос: POST https://ip:port/common_api/1.0/import_car_colors Signature: <...> Content-Type: application/json Content-Length: <...> { "colors": [ "красный", "синий" ] } Ответ: { "code":0, "descr":"OK", "data":{} }
Запрос информации по сотруднику клиента
Метод: GET
Название запроса: get_client_employee_info
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
client_employee_id | Целое | ИД сотрудника клиента |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден сотрудник клиента ИД=CLIENT_EMPLOYEE_ID |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
client_employee_id | Целое | ИД сотрудника |
client_id | Целое | ИД клиента |
name | Строка | ФИО сотрудника |
is_deleted | true или false | Признак удаленного сотрудника |
Строка | ||
use_email_informing | true или false | Использовать E-mail для отправки уведомлений по заказу |
default_crew_group | Целое | Группа экипажей по умолчанию |
phones | Массив | Массив телефонов сотрудника клиента |
• phone | Строка | Номер телефона сотрудника |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_client_employee_info?client_employee_id=10 Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "client_employee_id":5, "client_id":1, "name":"Иванов Иван", "is_deleted":false, "email":"mail@mail.ru", "use_email_informing":true, "default_crew_group":1, "phones":[ { "phone":"88" }, { "phone":"99" } ] } }
Создание сотрудника клиента
Метод: POST
Название запроса: create_client_employee
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
client_id | Целое | ИД клиента |
name | Строка | ФИО сотрудника |
Необязательные параметры | ||
Строка | ||
use_email_informing | true или false | Использовать E-mail для отправки уведомлений по заказу |
phones | Массив | Массив телефонов сотрудника |
• phone | Строка | Номер телефона |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Клиент с ИД=CLIENT_ID не найден |
101 | Клиент с ИД=ID имеет такой же номер телефона=PHONE |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос: POST https://ip:port/common_api/1.0/create_client_employee Signature: <...> Content-Type: application/json Content-Length: 104 { "client_id":10 "name":"Иванов Иван", "email":"mail@mail.ru", "use_email_informing":true, "phones":[ { "phone":"79999999999", }, { "phone":"79999999999", } ] } Ответ: { "code":0, "descr":"OK", "data":{} }
Обновление информации о сотруднике клиента
Метод: POST
Название запроса: update_client_employee_info
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
client_employee_id | Целое | ИД редактируемого сотрудника клиента |
Необязательные параметры | ||
name | Строка | ФИО сотрудника |
is_deleted | true или false | Признак удаленного сотрудника |
Строка | ||
use_email_informing | true или false | Использовать E-mail для отправки уведомлений по заказу |
phones | Массив | Массив телефонов сотрудника |
• phone | Строка | Номер телефона |
Примечание: запрещено редактировать телефоны удаленного сотрудника.
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Сотрудник с ИД=CLIENT_EMPLOYEE_ID не найден |
101 | Клиент с ИД=ID имеет такой же номер телефона=PHONE |
102 | Запрещено редактирование телефонов удаленного сотрудника |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос: POST https://ip:port/common_api/1.0/update_client_employee_info Signature: <...> Content-Type: application/json Content-Length: 104 { "client_employee_id":10 "name":"Иванов Иван", "is_deleted":false, "email":"mail@mail.ru", "use_email_informing":true, "phones":[ { "phone":"79999999999", }, { "phone":"79999999999", } ] } Ответ: { "code":0, "descr":"OK", "data":{} }
Запрос списка состояний заказа
Метод: GET
Название запроса: get_order_states_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
order_params | Массив | Список параметров заказа |
• id | Целое | ИД параметра |
• name | Строка | Название параметра |
• state_type | Строка | Тип состояния. Может принимать значения:
• "accepted" — заказ принят • "in_work" — заказ в работе • "finished" — заказ выполнен • "aborted" — заказ прекращен |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_order_states_list Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "order_params":[ { "id":1, "name":"Принят", "state_type":"accepted" }, { "id":2, "name":"В работе", "state_type":"in_work" }, ... ] } }
Запрос списка состояний экипажа
Метод: GET
Название запроса: get_crew_states_list
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
order_params | Массив | Список параметров заказа |
• id | Целое | ИД параметра |
• name | Строка | Название параметра |
• state_type | Строка | Тип состояния. Может принимать значения:
• "waiting" — экипаж свободен • "not_available" — экипаж не на линии • "on_order" — экипаж на заказе • "on_break" — экипаж на перерыве |
Пример:
Запрос: GET https://ip:port/common_api/1.0/get_crew_states_list Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "order_params":[ { "id":1, "name":"Свободен", "state_type":"waiting" }, { "id":2, "name":"Не работает", "state_type":"not_available" }, ... ] } }
Запрос глобальных атрибутов
Метод: GET
Название запроса: get_global_attributes
Версия ТМ: 3.9
Параметры: нет
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
attribute_values | Массив | Массив значений глобальных атрибутов |
• id | Целое | Идентификатор атрибута |
• bool_value | true или false | Значение, если тип атрибута «Логический» |
• num_value | Дробное | Значение, если тип атрибута:
|
• str_value | Строка | Значение, если тип атрибута «Строка» |
Пример:
Пример запроса: GET https://ip:port/common_api/1.0/get_global_attributes Пример ответа: { "code":0, "descr":"OK", "data":{ "global_attributes":[ { "id":123, "bool_value":true }, { "id":124, "num_value":314 }, { "id":125, "str_value": "AAA" } ] } }
Изменение глобального атрибута
Метод: POST
Название запроса: update_global_attribute
Версия ТМ: 3.9
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
id | Целое | ИД изменяемого атрибута |
Необязательные параметры | ||
bool_value | true или false | Значение, если тип атрибута «Логический» |
num_value | Дробное | Значение, если тип атрибута:
|
str_value | Строка | Значение, если тип атрибута «Строка» |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Атрибут не найден |
101 | Атрибут не глобальный |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Пример запроса: POST https://ip:port/common_api/1.0/update_global_attribute HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "id": 12, "bool_value": true } Пример ответа: { "code":0, "descr":"OK", "data":{} }
Создание резервирования автомобиля
Метод: POST
Название запроса: create_car_reservation
Версия ТМ: 3.9.46
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
car_id | Целое | ИД автомобиля |
driver_id | Целое | ИД водителя |
car_reservation_type_id | Целое | ИД типа резервирования |
start_time | ГГГГММДД
или ГГГГММДДччммсс |
Дата или дата/время начала.
Если указывается дата без времени, то планируемое время начала резервирования устанавливается исходя из времени начала, указанного в соответствующем типе резервирования |
Необязательные параметры | ||
finish_time | ГГГГММДДччммсс | Время окончания резервирования. Если не указано, рассчитывается на основании времени планируемого начала резервирования и продолжительности резервирования, указанного в соответствующем типе резервирования |
comment | Строка | Комментарий |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден автомобиль |
101 | Не найден водитель |
102 | Не найден тип резервирования |
103 | Время начала резервирования должно быть меньше времени завершения |
104 | Автомобиль уже зарезервирован в указанный период времени |
105 | Водитель уже имеет зарезервированный автомобиль в указанный период времени |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
car_reservation_id | Целое | ИД резервирования |
Пример запроса: POST https://ip:port/common_api/1.0/create_car_reservation HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "car_id": 1, "driver_id": 1, "car_reservation_type_id": 1, "start_date": "20201231", "comment": "COMMENT" } Пример ответа: { "code": 0, "descr": "OK", "data": { "car_reservation_id": 5 } }
Создание недоступности автомобиля
Метод: POST
Название запроса: create_car_inaccessibility
Версия ТМ: 3.9.46
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
car_id | Целое | ИД автомобиля |
car_inaccessibility_type_id | Целое | ИД типа недоступности |
start_time | ГГГГММДДччммсс | Время начала |
Необязательные параметры | ||
finish_time | ГГГГММДДччммсс | Время завершения |
comment | Строка | Комментарий |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден автомобиль |
101 | Не найден тип недоступности |
102 | Время начала недоступности должно быть меньше времени завершения |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
car_inaccessibility_id | Целое | ИД недоступности |
Пример запроса: POST https://ip:port/common_api/1.0/create_car_inaccessibility HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "car_id": 1, "car_inaccesibility_type_id": 1, "start_time": "20201231235959", "finish_time": "20210101050000", "comment": "COMMENT" } Пример ответа: { "code": 0, "descr": "OK", "data": { "car_inaccessibility_id": 5 } }
Вызвать системное событие
Метод: POST
Название запроса: run_system_event
Версия ТМ: 3.10
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
system_event_id | Целое | ИД системного события с типом "По запросу CommonAPI" |
Необязательные параметры | ||
Произвольный параметр | любой | В запросе можно передавать дополнительные произвольные параметры с любыми названиями и значениями. Эти параметры могут использоваться в системном событии. |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | У системного события тип не "По запросу CommonAPI" |
101 | Системное событие не найдено |
102 | Системное событие не активно |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример запроса: POST https://ip:port/common_api/1.0/run_system_event HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "system_event_id": 123, "custom_param_1": true "custom_param_2": 123, "custom_param_3": 123.45, "custom_param_4": "aaa" } Пример ответа: { "code":0, "descr":"OK", "data":{} }
Проверить штраф клиента за отмену заказа
Метод: GET
Название запроса: check_cancel_order_penalty
Версия ТМ: 3.11
Параметры в формате JSON:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
order_id | Целое | ИД заказа |
cancel_order_state_id | Целое | ИД состояния заказа, в которое переходит заказ при отмене |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден заказ ИД=order_id |
101 | Не найдено состояние заказа ИД=cancel_order_state_id |
102 | Состояние заказа не соответствует необходимым условиям |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
cancel_order_penalty_sum | Дробное | Величина штрафа, которая будет начислена клиенту в случае отмены заказа или 0, если штрафа нет |
Пример запроса: GET https://ip:port/common_api/1.0/check_cancel_order_penalty?order_id=12345&cancel_order_state_id=12 HTTP/1.1 Signature: <...> Пример ответа: { "code":0, "descr":"OK", "data":{ "cancel_order_penalty_sum":350 } }
Запрос трека экипажа
Метод: GET
Название запроса: get_crew_track
Версия ТМ: 3.11
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
crew_id | Целое | ИД экипажа |
start_time | ГГГГММДДччммсс | Начало периода |
finish_time | ГГГГММДДччммсс | Конец периода, должен отличаться о начала периода не более чем на 7 дней |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден экипаж ИД=crew_id |
101 | Задан период времени более 7 дней |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
track | Массив | Массив, трек экипажа за период времени |
• lat | Дробное | Широта точки маршрута |
• lon | Дробное | Долгота точки маршрута |
• time | ГГГГММДДччммсс | Время данной точки |
• speed | Целое | Скорость в данный момент, км/ч |
• direction | Целое | Направление движения, градусы (0 - север, 90 - восток, 180 - юг, 270 - запад) |
Пример запроса: GET https://ip:port/common_api/1.0/get_crew_track?crew_id=1&start_time=20210911120000&finish_time=20210911130000 HTTP/1.1 Signature: <...> Пример ответа: { "code":0, "descr":"OK", "data":{ "track": [ { "lat": 11.111111, "lon": 22.222222, "time": "20210911120000", "speed": 123, "direction": 0 } ] } }
Создание фиксированной смены водителя
Метод: POST
Название запроса: create_fixed_driver_shift
Версия ТМ: 3.12
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
driver_id | Целое | ИД водителя |
start_time | ГГГГММДДччммсс | Время начала |
finish_time | ГГГГММДДччммсс | Время завершения |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден водитель |
101 | Время начала фиксированной смены должно быть меньше времени завершения |
102 | Создаваемая смена пересекается по времени с уже существующей сменой данного водителя |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
fixed_driver_shift_id | Целое | ИД фиксированной смены |
Пример:
Запрос: POST https://ip:port/common_api/1.0/create_fixed_driver_shift HTTP/1.1 Signature: <...> Content-Type: application/json Content-Length: <...> { "driver_id": 1, "start_time": "20201231235959", "finish_time": "20210101050000" } Ответ: { "code": 0, "descr": "OK", "data": { "fixed_driver_shift_id": 5 } }
Удаление фиксированной смены водителя
Метод: POST
Название запроса: delete_fixed_driver_shift
Версия ТМ: 3.12
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
fixed_driver_shift_id | Целое | ИД фиксированной смены водителя |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Фиксированная смена водителя не найдена |
Возвращаемые данные в случае успешного выполнения запроса: нет.
Пример:
Запрос: POST https://ip:port/common_api/1.0/delete_fixed_driver_shift HTTP/1.1 Signature: <...> Content-Type: application/x-www-form-urlencoded Content-Length: <...> fixed_driver_shift_id=1 Ответ: { "code":0, "descr":"OK", "data":{} }
Описание протокола TMTAPI Версия 1.0
Общее описание протокола
Формат запроса
TM API принимает входящие запросы по протоколу HTTPS. В URI запроса после ip адреса и порта, который будет слушать TM API, должно идти название API (tm_tapi) и версия API.
Пример:
GET https://ip:port/tm_tapi/1.0/get_info_by_phone
Для получения данных из БД используются запросы типа GET. Для записи данных в БД используются запросы типа POST. В запросе типа GET параметры запроса передаются в URI.
Пример:
GET https://ip:port/tm_tapi/1.0/get_info_by_phone?phone=89058800565&fields=PHONE_TYPE-PHONE_ TO_DIAL&signature=661ce071eeefcb4f7fc8bc1f17bd520b
В запросе типа POST параметры передаются в теле запроса в формате application/x-www-form- urlencoded.
Пример:
POST https://ip:port/tm_tapi/1.0/change_order_state Content-Type: application/x-www-form-urlencoded Content-Length: 71 order_id=98798&need_state=12&signature=a204c50c7e48f0c6849a87485fe5e171
В любом запросе обязательно с другими полями должно передаваться поле signature. В нем передается MD5 хэш, рассчитанный для строки, которая получается сцеплением строки параметров запроса с секретным ключом. Секретный ключ задается в настройках модуля TMAPI в Такси-Мастер.
Пример:
Запрос: GET https://ip:port/tm_tapi/1.0/get_info_by_phone?phone=89058800565&fields=PHONE_TYPE &signature=ef17ea682d09e452af544a5758dba396 Секретный ключ: 321 Signature = MD5("phone=89058800565&fields=PHONE_TYPE" + "321") = ef17ea682d09e452af544a5758dba396
Формат ответа
TM API всегда возвращает HTTP код 200 ОК. Результат выполнения запроса содержится в теле ответа в формате XML. Общий вид возвращаемого результата:
<response> <code>Числовой код результата</code> <descr>Строковое описание результата</descr> <data>Дополнительная информация</data> </response>
Существуют общие для всех запросов коды результатов:
Код | Описание |
---|---|
0 | Успешное выполнение запроса |
1 | Неизвестная ошибка |
2 | Неизвестный тип API |
3 | API отключено в настройках модуля TM API в Такси-Мастер |
4 | Не совпадает секретный ключ |
5 | Неподдерживаемая версия API |
6 | Неизвестное название запроса |
7 | Неверный тип запроса GET |
8 | Не хватает входного параметра (в доп. информации ответа будет название отсутствующего параметра) |
9 | Некорректный входной параметр (в доп. информации ответа будет название некорректного параметра) |
10 | Внутренняя ошибка обработки запроса |
Описание запросов
Запрос информации по номеру телефона
Метод: GET
Название запроса: get_info_by_phone
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
PHONE | Строка, <= 16 символов | Номер телефона |
FIELDS | Строка | Список полей, которые необходимо вернуть. Поля перечисляются через символ "-" |
signature | Строка | Поле для проверки секретного ключа. |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: зависит от того какие поля были переданы в поле fields.
Параметр | Тип | Описание |
---|---|---|
PHONE_TYPE | Целое | Тип телефона звонящего:
1 - если звонит водитель с основного телефона; 2 - если звонит физическое лицо; 3 - если звонит юридическое лицо; 4 - если звонит номер из справочника Телефоны; 5 - если звонит водитель с неосновного телефона; 6 - если звонит ЦОЗ водитель; 0 - неизвестный номер. |
PHONE_TO_DIAL | Строка, <= 16 символов | Номер телефона для отзвона по заказу |
CREW_ID | Целое | ИД экипажа |
IS_PRIOR | 0 или 1 (false или true) | Признак предварительного заказа |
IS_PRIZE | 0 или 1 (false или true) | Признак призового заказа |
ORDER_CLIENT_ID | Целое | ИД клиента из заказа |
DRIVER_PHONE | Строка, <= 16 символов | Номер телефона водителя |
CREW_SYSTEMSTATE | Целое | Состояние экипажа |
CLIENT_ID | Целое | ИД клиента |
CLIENT_TYPE | Целое | Тип клиента |
CATEGORYID | Целое | ИД категории телефона |
PHONE_SYSTEM_CATEGORY | Целое | Системное значение категории телефона (0 - обычный, 1 - черный, 2 - белый, 3 - серый) |
ORDER_ID | Целое | ИД заказа |
DRIVER_ID | Целое | ИД водителя |
ORDER_STATE | Целое | Состояние заказа |
DRIVER_REMAINDER | Дробное | Баланс счета водителя |
DISCOUNTEDSUMM | Строка | Сумма заказа с учетом всех скидок |
CREW_GROUP_ID | Целое | ИД группы экипажа (если в заказе указан экипаж, то берется ИД группы экипажа, если нет — из карты заказа) |
FIRST_CREW_GROUP_ID | Целое | ИД первой группы экипажа |
CLIENT_BALANCE | Дробное | Баланс клиента |
DRIVER_TIMECOUNT | Целое | Время пути водителя до адреса подачи в минутах |
SOURCE_TIMECOUNT | Целое | Время оставшееся до подачи в минутах |
GOSNUMBER | Строка | Государственный номер автомобиля |
CAR_COLOR | Строка | Цвет автомобиля |
CAR_MARK | Строка | Марка автомобиля |
ORDER_COORDS | Строка | Координаты места подачи. Порядок координат: долгота адреса, широта адреса. |
CREW_COORDS | Строка | Координаты назначенного экипажа. Порядок координат: долгота адреса, широта адреса. |
MARKET_TYPE | Целое | Тип биржи заказов (2 — Яндекс, 3 — ЦОЗ). |
ORDERS_COUNT | Целое | Для телефона клиента — количество текущих и предварительных заказов по телефону; для телефона водителя — количество текущих заказов, на которые назначен данный водитель |
CLIENT_GROUP_ID | Целое | ИД группы клиента |
CLIENT_BONUS_BALANCE | Дробное | Бонусный баланс клиента |
AD_LIGHTHOUSE | Строка | Признак наличия шашек. Пустая строка – номер клиента или водителя без экипажа. 1 – есть шашки, 0 – нет шашек. |
CREW_STATE | Целое | Состояние экипажа. |
SOURCE_TIME | ГГГГММДДччммсс | Дата и время подачи |
DRV_SHIFT_START_TIME | ГГГГММДДччммсс | Начало фактической смены водителя |
START_USER_SIP_ACCOUNTS | Строка | Список логинов SIP–аккаунтов пользователя, принявшего заказ |
CREATION_WAY | Строка | Способ создания заказа (operator, sms, market, common_api, t_api, taxophone, driver, daily_order, taxophone_web, unknown) |
CREATOR_TAXI_PHONE | Строка | Телефон службы-создателя для заказов, принятых из ЦОЗ |
PERFORMER_TAXI_PHONE | Строка | Телефон службы-исполнителя для заказов, отданных в ЦОЗ |
CLIENT_IS_LOCKED | 0 или 1 (false или true) | Признак блокировки клиента |
Пример:
Запрос: GET https://ip:port/tm_tapi/1.0/get_info_by_phone?phone=89058800565l&fields=PHONE_TYPE-PHONE_ TO_DIAL-CREW_ID-ORDER_ID&signature=d35ab2765f2968d48c096d5f5327db26 Ответ: <response> <code>0</code> <descr>OK</descr> <data> <PHONE_TYPE>0</PHONE_TYPE> <PHONE_TO_DIAL></PHONE_TO_DIAL> <CREW_ID>3</CREW_ID> <ORDER_ID>6</ORDER_ID> <SOURCE_TIME>20140929134911</SOURCE_TIME> <DRV_SHIFT_START_TIME>20141007105050</DRV_SHIFT_START_TIME> </data> </response>
Запрос информации по ИД заказа
Метод: GET
Название запроса: get_info_by_order_id
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
ORDER_ID | Целое | ИД заказа |
FIELDS | Строка | Список полей, которые необходимо вернуть. Поля перечисляются через символ "-" |
signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: зависит от того какие поля были переданы в поле fields.
Параметр | Тип | Описание |
---|---|---|
DRIVER_TIMECOUNT | Строка, <= 16 символов | Время до подачи в минутах, указанное водителем |
CAR_MARK | Строка | Марка автомобиля |
CAR_COLOR | Строка | Цвет автомобиля |
GOSNUMBER | Строка | Государственный номер автомобиля |
CREW_GROUP_ID | Целое | ИД группы экипажа (значение из карты заказа) |
FIRST_CREW_GROUP_ID | Целое | ИД первой группы экипажа |
IS_PRIOR | 0 или 1 (false или true) | Признак предварительного заказа |
IS_PRIZE | 0 или 1 (false или true) | Признак призового заказа |
DISCOUNTEDSUMM | Строка | Сумма заказа с учетом всех скидок |
DRIVER_PHONE | Строка, <= 16 символов | Номер телефона водителя |
CATEGORYID | Целое | ИД категории телефона |
SOURCE_TIMECOUNT | Целое | Время до подачи в минутах |
ORDER_COORDS | Строка | Координаты места подачи. Порядок координат: долгота адреса, широта адреса. |
CREW_COORDS | Строка | Координаты назначенного экипажа. Порядок координат: долгота адреса, широта адреса. |
ORDER_STATE | Целое | ИД состояния заказа |
MARKET_TYPE | Целое | Тип биржи заказов (3 — ЦОЗ). |
AD_LIGHTHOUSE | Строка | Признак наличия шашек (1 – шашки есть, 0 – шашек нет). |
CREW_STATE | Целое | Состояние экипажа |
SOURCE_TIME | ГГГГММДДччммсс | Дата и время подачи |
START_USER_SIP_ACCOUNTS | Строка | Список логинов SIP–аккаунтов пользователя, принявшего заказ |
ORDER_PARAMS | Целое | Список ИД параметров заказа |
CREATION_WAY | Строка | Способ создания заказа (operator, sms, market, common_api, t_api, taxophone, driver, daily_order, taxophone_web, unknown) |
CREATOR_TAXI_PHONE | Строка | Телефон службы-создателя для заказов, принятых из ЦОЗ |
PERFORMER_TAXI_PHONE | Строка | Телефон службы-исполнителя для заказов, отданных в ЦОЗ |
Пример:
Запрос: GET https://ip:port/tm_tapi/1.0/get_info_by_order_id?order_id=60&fields=DRIVER_SOURCETIME-MARKCOLOR- GOSNUMBER-IS_PRIOR-MOBILE_PHONE-SOURCE_TIME&signature=fdcd04e570443b56176b83f44748dc23 Ответ: <response> <code>0</code> <descr>OK</descr> <data> <DRIVER_SOURCETIME></DRIVER_SOURCETIME> <MARK></MARK> <COLOR></COLOR> <GOSNUMBER></GOSNUMBER> <IS_PRIOR></IS_PRIOR> <MOBILE_PHONE></MOBILE_PHONE> <SOURCE_TIME>20140929134911</SOURCE_TIME> </data> </response>
Смена состояния заказа
Метод: POST
Название запроса: change_order_state
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
ORDER_ID | Целое | ИД заказа |
NEED_STATE | Целое | Новое состояние заказа |
signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Заказ с таким ИД не найден |
101 | Изменение состояния не соответствует необходимым условиям |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
ORDER_ID | Целое | ИД заказа |
NEED_STATE | Целое | Новое состояние заказа |
Пример:
Запрос: POST https://ip:port/tm_tapi/1.0/change_order_state Content-Type: application/x-www-form-urlencoded Content-Length: 71 order_id=18561&need_state=14&signature=3e8107e0c044e55d983db1fbed82fd8c Ответ: <response> <code>0</code> <descr>OK</descr> <data> <ORDER_ID>18561</ORDER_ID> <NEW_STATE>14</NEW_STATE> </data> </response>
Запись пути к файлу разговора в базу данных
Метод: POST
Название запроса: create_record_link
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
CALL_ID | Строка, <= 60 символов | ИД звонка (необязателен, если указан PHONE) |
PHONE | Строка, <= 16 символов | Номер телефона (необязателен, если указан CALL_ID) |
CALL_TYPE | 0 или 1 | 0 — Исходящий, 1 — Входящий |
signature | Строка | Поле для проверки секретного ключа |
Необязательные параметры | ||
RECORD_DATE | ДДММГГГГччммсс | Дата записи |
RECORD_LENGTH | Целое | Продолжительность записи (в секундах) |
FILE_PATH | Строка, <=255 символов | Путь к файлу записи |
TRANSFERED_TO | Строка,<=30 символов | Номер телефона(линии) на который(ую) был переведен звонок (доп. параметр для CALL_RESULT="transfered") |
CALL_RESULT | Строка | Результат звонка, возможны следующие значения:
|
Специальные возвращаемые коды: нет.
Возвращаемые данные в случае успешного выполнения запроса
Параметр | Тип | Описание |
---|---|---|
RECORD_ID | Целое | ИД созданной записи |
Пример:
Запрос: POST https://ip:port/tm_tapi/1.0/create_record_link HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: <...> RECORD_DATE=20130122180949&RECORD_LENGTH=215&CALL_ID=12345&PHONE=8987564&FILE_PATH=d%3A%5Ctemp%5CTM%5Ctrunk%5CSource%5CDevUtils%5CTMAPITest%5C&CALL_TYPE=1&CALL_RESULT=no_answer&signature=<...> Ответ: <response> <code>0</code> <descr>OK</descr> <data> <RECORD_ID>25</RECORD_ID> </data> </response>
Создать новый заказ
Метод: POST
Название запроса: make_new_order
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
PHONE | Строка, <= 16 символов | Номер телефона |
ORDER_STATE_ID | Целое | ИД состояния заказа |
signature | Строка | Поле для проверки секретного ключа |
Необязательные параметры | ||
CREWGROUPID | Целое | ИД группы экипажа |
TARIF_ID | Целое | ИД тарифа |
DISCOUNTEDSUMM | Дробное | Фиксированная сумма за заказ |
CUSTOMER | Строка, <=80 символов | Заказчик |
SOURCE | Строка, <=80 символов | Адрес подачи |
SOURCE_STREET | Целое | ИД улицы подачи |
SOURCE_HOUSE | Строка, <=10 символов | Дом подачи |
SOURCE_FLAT | Строка, <=10 символов | Квартира подачи |
SOURCE_POINT | Целое | ИД пункта подачи |
DESTINATION | Строка, <=80 символов | Адрес назначения |
DESTINATION_STREET | Целое | ИД улицы назначения |
DESTINATION_HOUSE | Строка, <=10 символов | Дом назначения |
DESTINATION_FLAT | Строка, <=10 символов | Квартира назначения |
DESTINATION_POINT | Целое | ИД пункта назначения |
CREWID | Целое | ИД экипажа |
SUMM | Дробное | Стоимость заказа без учета скидок (наценок) |
STARTUSER | Целое | Пользователь, создавший заказ |
STARTTIME | ГГГГММДДччммсс | Дата создания заказа |
FINISHUSER | Целое | Пользователь, завершивший заказ |
FINISHTIME | ГГГГММДДччммсс | Дата завершения заказа |
SOURCE_ZONE | Целое | Район подачи |
DESTINATION_ZONE | Целое | Район назначения |
SOURCE_PARKING | Целое | Стоянка подачи |
DESTINATION_PARKING | Целое | Стоянка назначения |
SOURCE_TIME | ГГГГММДДччммсс | Дата подачи |
SOURCE_COUNTRY | 0 или 1 (false или true) | Признак междугороднего заказа |
IS_PRIOR | 0 или 1 (false или true) | Признак предварительного заказа |
PRIZE | 0 или 1 (false или true) | Признак призового заказа |
NOTE | Строка, <=80 символов | Примечание |
BONUSPOINT | Дробное | Бонусные баллы, начисленные водителю за заказ |
DISTANCE | Дробное | Километраж по городу (в километрах) |
HOURLY_LEN | Целое | Длительность исполнения почасового заказа (в минутах) |
HOURLY_START | ГГГГММДДччммсс | Дата начала отсчета при почасовом заказе |
HOURLY_PAY | 0 или 1 (false или true) | Признак почасового заказа |
PHONE_TO_DIAL | Строка, <=16 символов | Номер телефона для отзвона по заказу |
FROMBORDER | 0 или 1 (false или true) | Признак заказа "с бордюра" |
WAITING_START | ГГГГММДДччммсс | Дата начала ожидания заказчика водителем |
WAITING_LENGTH | Целое | Общая длина периода ожидания заказчика водителем (в минутах) |
BACKFREE | Целое | Признак применения скидки в 50% на обратный путь |
INPUTTIME | ГГГГММДДччммсс | Дата принятия заказа (от даты создания заказа отличается тем, что может быть задана пользователем) |
MONEY_RECEIVE | 0 или 1 (false или true) | Подтверждение принятия денег наличными |
NOTIFY_BEFORE | Целое | Период времени, за который пользователь оповещается о наступлении даты подачи |
WANTCREWID | Целое | ИД желаемого экипажа |
DISTANCE_COUNTRY | Дробное | Километраж за границами города (в километрах) |
DISTANCE_CHECK | 0 или 1 (false или true) | Разрешение ручного ввода километража |
CLIENTID | Целое | ИД постоянного клиента |
INFRA_STATE | Целое | Состояние заявки в исходящей компании колцентра INFRA (1 - заявка передана в исходящую компанию, 2 - отзвон успешно произведен, 3 - занято, 4 - не берут трубку) |
INFRA_ORDER | Целое | INFRA-заказ (спец. поле для работы с колцентром компании Инфрател) |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса
Параметр | Тип | Описание |
---|---|---|
ORDER_ID | Целое | ИД созданного заказа |
Пример:
Запрос: POST https://ip:port/tm_tapi/1.0/make_new_order Content-Type: application/x-www-form-urlencoded Content-Length: 206 PHONE=89058770593&ORDER_STATE_ID=10&DISCOUNTED_SUMM=100&signature=afc947f610eba380df6d0e441b03ddad Ответ: <response> <code>0</code> <descr>OK</descr> <data> <order_id>27</order_id> </data> </response>
Поиск улицы в базе
Метод: POST
Название запроса: street_search
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
PHONE | Строка, <= 16 символов | Номер телефона |
CALL_ID | Целое | ИД звонка |
VOICE_STREET | Строка, <= 60 символов | Название улицы или пункта, полученное через преобразование голоса в текст |
signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
CALL_ID | Целое | ИД звонка |
PHONE | Строка, <= 16 символов | Номер телефона |
STREET_FOUND | 0 или 1 (false или true) | Признак того, что улица найдена |
STREET_NAME | Строка, <= 60 символов | Наименование улицы или пункта, найденное в базе данных |
Пример:
Запрос: POST https://ip:port/tm_tapi/1.0/street_search Content-Type: application/x-www-form-urlencoded Content-Length: 175 PHONE=89058770593&CALL_ID=56&VOICE_STREET=пушкинск&FIND_STREET=0&API_FIND_STREET=&NUM_HOUSE=&signat ure=9204a53e0f4842bb623c3a5f7683520a Ответ: <response> <code>0</code> <descr>OK</descr> <data> <CALL_ID>56</CALL_ID> <PHONE>89058770593</PHONE> <FIND_STREET>1</FIND_STREET> <API_FIND_STREET>Пушкинская</API_FIND_STREET> </data> </response>
Смена состояния заказа по результату автодозвона
Метод: POST
Название запроса: set_request_state
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
STATE_ID | Целое | Cостояние заказа до отзвона |
PHONE_TYPE | 0..2 | Признак, что звонили 1- клиенту, 0 – водителю, 2 -диспетчеру |
ORDER_ID | Целое | ИД заказа |
STATE | Целое (0, 1, 2, 3, 4, 5) | Состояние отзвона (0 – начальное, 1 — в процессе, 2 — успешно, 3 — занято, 4 — нет ответа, 5 — ошибка) |
signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды: нет
Возвращаемые данные в случае успешного выполнения запроса: нет
Настройки смены состояний заказа с использованием автодозвона задаются в карточке состояний заказа.
Пример:
Запрос: POST https://ip:port/tm_tapi/1.0/set_request_state Content-Type: application/x-www-form-urlencoded Content-Length: 71 state_id=7&phone_type=1&order_id=50&state=4&signature=0eb50db401d3540e038fde68eb260333 Ответ: <response> <code>0</code> <descr>OK</descr> </response>
Соединить клиента и водителя
Метод: POST
Название запроса: connect_client_and_driver
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
order_id | Целое | ИД заказа |
signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Не найден заказ с таким ИД |
103 | В заказе нет водителя |
104 | У водителя не определен телефон |
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос: POST https://ip:port/tm_tapi/1.0/connect_client_and_driver Content-Type: application/x-www-form-urlencoded Content-Length: 53 order_id=13&signature=6a4b16da44a495b67eb7af11d51954d4 Ответ: <response> <code>0</code> <descr>OK</descr> </response>
Количество свободных экипажей на линии
Метод: GET
Название запроса: get_free_crews_count
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
signature | Строка | Поле для проверки секретного ключа |
Необязательные параметры | ||
crew_group_id | Целое | ИД группы экипажа предполагаемого заказа |
uds_id | Целое | ИД службы ЕДС предполагаемого заказа |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
COUNT | Целое | Количество свободных экипажей на линии |
Пример:
Запрос: GET https://ip:port/tm_tapi/1.0/get_free_crews_count? crew_group_id=1&uds_id=1&signature=88ca2091061c3e90123275f2c5df55a6 Content-Type: application/x-www-form-urlencoded Ответ: <response> <code>0</code> <descr>OK</descr> <data> <COUNT>5</COUNT> </data> </response>
Запрос пользователя по логину софтфона
Метод: GET
Название запроса: get_user_by_sip_login
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
signature | Строка | Поле для проверки секретного ключа |
login | Строка | Логин SIP-аккаунта |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
ID | Целое | ИД пользователя, который использует указанный логин SIP-аккаунта софтфона в данный момент |
NAME | Строка | Имя пользователя, который использует указанный логин SIP-аккаунта софтфона в данный момент |
Пример:
Запрос: GET https://ip:port/tm_tapi/1.0/get_user_by_sip_login? login=LOGIN&signature=9b06455cdfe933e7af12a35a70e9b1c6 Content-Type: application/x-www-form-urlencoded Ответ: <response> <code>0</code> <descr>OK</descr> <data> <ID>1</ID> <NAME>ADMINISTRATOR</NAME> </data> </response>
Установить режим «Перерыв» для линий софтфона
Метод: POST
Название запроса: set_sip_account_dnd_mode
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
dnd | Строка | 0 или 1 |
user_login | Строка | Логин пользователя ТМ |
lines | Строка | Список линий, разделенных символом «|» |
signature | Строка | Поле для проверки секретного ключа |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Пользователь с таким логином или линиями не найден. |
Возвращаемые данные в случае успешного выполнения запроса: нет
Пример:
Запрос: POST https://ip:port/tm_tapi/1.0/set_sip_account_dnd_mode Content-Type: application/x-www-form-urlencoded Content-Length: 66 dnd=1&user_login=USER&lines=101%7C102&signature=3e8107e0c044e55d983db1fbed82fd8c Ответ: <response> <code>0</code> <descr>OK</descr> </response>
Запрос телефонов водителя по позывному экипажа
Метод: GET
Название запроса: get_driver_phones_by_crew_code
Параметры:
Параметр | Тип | Описание |
---|---|---|
Обязательные параметры | ||
crew_code | Строка | Позывной экипажа |
Специальные возвращаемые коды:
Код | Описание |
---|---|
100 | Водитель не найден |
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
mobile_phone | Строка | Основной телефон водителя |
home_phone | Строка | Неосновной телефон водителя |
Пример:
Запрос: GET https://ip:port/tm_tapi/1.0/get_driver_phones_by_crew_code? crew_code=CODE&signature=6f03bc45d3aa17f7738672180a3ee5de Content-Type: application/x-www-form-urlencoded Ответ: <response> <code>0</code> <descr>OK</descr> <data> <mobile_phone>123456789</mobile_phone> <home_phone>987654321</home_phone> </data> </response>
Запрос информации о ключе защиты
Метод: GET
Название запроса: get_key_info
Параметры: нет.
Специальные возвращаемые коды: нет.
Возвращаемые данные в случае успешного выполнения запроса:
Параметр | Тип | Описание |
---|---|---|
company_name | Строка | Наименование организации |
company_id | Целое | ИД организации |
tm_server_license_count | Целое | Количество лицензий для TMServer |
tm_license_count | Целое | Количество лицензий для TM2 |
tm_terminal_license_count | Целое | Количество лицензий для терминала |
tm_driver_server_license_count | Целое | Количество лицензий для TMDriverServer |
tm_driver_license_count | Целое | Количество лицензий для водителей |
tm_sms_server_license_count | Целое | Количество лицензий для TMSMSServer |
Пример:
Запрос: GET https://ip:port/tm_tapi/1.0/get_key_info Content-Type: application/x-www-form-urlencoded signature=6f03bc45d3aa17f7738672180a3ee5de Ответ: <response> <code>0</code> <descr>OK</descr> <data> company_name>ООО БИТ-Мастер</company_name> <company_id>000</company_id> <tm_server_license_count>1</tm_server_license_count> <tm_license_count>10</tm_license_count> <tm_terminal_license_count>1</tm_terminal_license_count> <tm_driver_server_license_count>1</tm_driver_server_license_count> <tm_driver_license_count>30</tm_driver_license_count> <tm_sms_server_license_count>1</tm_sms_server_license_count> </data> </response>
Пример формы для заказа такси
Приведенная форма является примером, на основе которого можно построить собственную форму для принятия интернет-заказов. Форму можно использовать либо в исходном варианте, либо применяя запросы TM API. Для того, чтобы данная форма функционировала, необходимо открыть файл в любом текстовом редакторе и указать корректные IP-адрес сервера Такси-Мастер, порт TM API и секретный ключ. Далее вам следует загрузить файл на хостинг.
Форма, представленная в примере, будет выглядеть следующим образом: