TM API | ТМ: Корпоративные поездки
Ижевск, Советская, 12А
пн-пт 09:00-18:00
sales@tmcorp.pro
8 (800) 350-29-09
7 (495) 128-06-80
Заказать звонок
Бесплатный пилот
Заказать звонок
Проконсультируйтесь со специалистом
по программному комплексу «ТМ: Корпоративные поездки»
Оставить заявку
Проконсультируйтесь со специалистом
по программному комплексу «ТМ: Корпоративные поездки»
Заявка успешно отправлена
Скоро мы свяжемся с вами
Спасибо!

TM API

В статье:
1. Запрос-пинг
2. Запрос списка групп экипажей
3. Запрос списка групп клиентов
4. Запрос списка тарифов
5. Запрос списка услуг
6. Запрос списка атрибутов
7. Запрос списка скидок
8. Создание нового заказа
9. Создание нового заказа 2
10. Расчет суммы заказа
11. Расчет суммы заказа 2
12. Изменение состояния заказа
13. Запрос информации об экипаже
14. Запрос информации об экипажах
15. Создание экипажа
16. Обновление информации об экипаже
17. Запрос информации о водителе
18. Запрос списка водителей
19. Создание водителя
20. Обновление информации о водителе
21. Запрос информации об автомобиле
22. Запрос списка автомобилей
23. Создание автомобиля
24. Обновить информацию об автомобиле
25. Запрос координат экипажей
26. Запрос адресов, содержащих нужную строку
27. Запрос адресов, содержащих нужную строку 2
28. Поиск ближайшего адреса
29. Анализ маршрута
30. Анализ маршрута 2
31. Запрос информации о состоянии заказа
32. Создание задачи СМС серверу
33. Проверка авторизации
34. Регистрация клиента
35. Регистрация клиента 2
36. Запрос информации по клиенту
37. Запрос информации по клиентам
38. Изменение информации по клиенту
39. Изменение информации по клиенту 2
40. Запрос текущих заказов
41. Запрос выполненных заказов
42. Проведение операции по клиенту
43. Запрос операций по клиенту
44. Проведение операции по водителю
45. Запрос операций по водителю
46. Назначение динамического приоритета водителю
47. Задание координат экипажей
48. Изменение информации по заказу
49. Анализ телефона
50. Показать сообщение в ТМ

51. Запрос списка купленных смен водителей
52. Запрос списка запланированных смен водителей
53. Продажа смены водителю
54. Сохранение отзыва клиента
55. Поиск экипажей по координатам
56. Подбор тарифа для заказа
57. Импорт марок автомобилей в БД
58. Импорт цветов автомобилей в БД
59. Запрос информации по сотруднику клиента
60. Создание сотрудника клиента
61. Обновление информации о сотруднике клиента
62. Запрос списка состояний заказа
63. Запрос списка состояний экипажа
64. Запрос глобальных атрибутов
65. Изменение глобального атрибута
66. Создание резервирования автомобиля
67. Изменение резервирования автомобиля
68. Создание недоступности автомобиля
69. Удаление недоступности автомобиля
70. Создание недоступности водителя
71. Удаление недоступности водителя
72. Вызвать системное событие
73. Проверить штраф клиента за отмену заказа
74. Запрос трека экипажа
75. Создание фиксированной смены водителя
76. Изменение фиксированной смены водителя
77. Удаление фиксированной смены водителя
78. Создание путевого листа
79. Изменение путевого листа
80. Создание осмотра по путевому листу
81. Запрос информации о заявке спецтехники
82. Удаление заявки спецтехники
83. Запрос текущих заявок спецтехники
84. Создание заявки спецтехники
85. Изменение заявки спецтехники
86. Удаление техники из заявки спецтехники
ОПИСАНИЕ ПРОТОКОЛА TMTAPI ВЕРСИЯ 1.0
1. Запрос информации по номеру телефона
2. Запрос информации по ИД заказа
3. Смена состояния заказа
4. Запись пути к файлу разговора в базу данных
5. Создать новый заказ
6. Поиск улицы в базе
7. Смена состояния заказа по результату автодозвона
8. Соединить клиента и водителя
9. Количество свободных экипажей на линии
10. Запрос пользователя по логину софтфона
11. Установить режим «Перерыв» для линий софтфона
12. Запрос телефонов водителя по позывному экипажа
13. Запрос информации о ключе защиты




TM API - специальный набор инструментов ТМ: Корпоративные поездки, который позволит объединить систему с различными полезными сервисами.

Параметры TM API

Задать настройки для корректной работы TM API вы сможете в ТМ в меню Настройки в одноименной ветке TM API.

  1. Установите флажок Использовать TM API.
  2. В поле Локальный порт введите номер порта подключения к интернету, на котором работает и будет ожидать запросы о новых заказах ТМ Сервер. Рекомендуется оставить номер порта по умолчанию.
  3. При необходимости установите флажок Использовать автопроброс порта с помощью UPnP, также укажите Внешний порт и Локальный IP.

Ветка "Открытое API"

В данной ветке регулируется доступ к синхронизации ТМ со сторонним сервисом.

  1. Установите флажок Использовать открытое API для того, чтобы запустить работу протокола TMCommonAPI.
  2. В поле Секретный ключ укажите произвольный номер. В дальнейшем этот номер следует использовать в API-запросах на сайте.
  3. В таблице "Пользователи CommonAPI" можно настроить доступ к CommonAPI. Для этого нужно создать пользователей, у которых будет отдельный секретный ключ, и отметить доступные запросы CommonAPI.

Ветка "API для телефонии"

В данной ветке регулируются настройки API для телефонии, т.е. взаимодействие ТМ с call-центром через программный интерфейс.

  1. Установите флажок Использовать открытое API для телефонии для того, чтобы запустить работу протокола TMTAPI.
  2. В поле Секретный ключ укажите номер секретного ключа для работы.

Ветка "TMK Пассажир API"

В данной ветке находятся параметры, необходимые для взаимосвязи клиентского приложения с программным комплексом ТМ: Корпоративные поездки.

Общее описание протокола

Формат запроса

TMAPI принимает входящие запросы по протоколу HTTPS. В URI запроса после ip адреса и порта, который будет слушать TM API, должно идти название API (common_api) и версия API. Пример:

GET https://ip:port/common_api/1.0/get_crew_groups_list HTTP/1.1 

Для получения данных из БД используются запросы типа 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 или application/json в зависимости от запроса. Пример:

POST https://ip:port/common_api/1.0/create_order HTTP/1.1
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 HTTP/1.1

Секретный ключ:
1234567890

Signature = MD5("tariff_id=1&distance_city=10" + "1234567890") = d7b8fb11b5499b64d750b8efe53e2877

Также в запросе может содержаться заголовок "X-User-Id" c ИД пользователя CommonAPI, если запрос делается от какого-то конкретного пользователя CommonAPI. Если будет передан этот заголовок, то секретный ключ будет проверяться именно для указанного пользователя CommonAPI, а также будут проверяться права доступа пользователя CommonAPI к данному запросу. Если заголовок "X-User-Id" не будет передан, то тогда будет проверяться общий секретный ключ CommonAPI, и будет разрешен доступ ко всем запросам CommonAPI. Пример запроса с указанием ИД пользователя:

POST https://ip:port/common_api/1.0/create_order HTTP/1.1
Signature: <...>
X-User-Id: 123
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

Формат ответа

TM API всегда возвращает HTTP код 200 ОК. Результат выполнения запроса содержится в теле ответа в формате JSON. Общий вид возвращаемого результата:

{
  "code":<Числовой код результата>,
  "descr":"<Строковое описание результата>",
  "data":{<Дополнительная информация>}
}

Существуют общие для всех запросов коды результатов:

КодОписание
0Успешное выполнение запроса
1Неизвестная ошибка
2Неизвестный тип API
3API отключено в настройках модуля TM API в ТМ2
4Не совпадает секретный ключ
5Неподдерживаемая версия API
6Неизвестное название запроса
7Неверный тип запроса GET/POST
8Не хватает входного параметра (в доп. информации ответа будет название отсутствующего параметра)
9Некорректный входной параметр (в доп. информации ответа будет название некорректного параметра)
10 Внутренняя ошибка обработки запроса
13 Не найден пользователь CommonAPI с ИД, указанным в заголовке X-User-Id
14 Запрос недоступен для пользователя CommonAPI с ИД, указанным в заголовке X-User-Id

Описание запросов

1. Запрос-пинг

Для данного запроса не проверяется версия API, секретный ключ и тип запроса GET/POST.

Метод: GET или POST

Название запроса: ping

Параметры: нет

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса: нет

Пример:

Запрос:
GET https://ip:port/common_api/1.0/ping HTTP/1.1 
Ответ:
{
  "code":0,
  "descr":"OK",
  "data":{}
}

2. Запрос списка групп экипажей

Метод: GET

Название запроса: get_crew_groups_list

Параметры: нет

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
crew_groupsМассивСписок групп экипажей
• idЦелоеИД группы экипажей
• name Строка Название группы экипажей

Пример:

Запрос:

GET https://ip:port/common_api/1.0/get_crew_groups_list HTTP/1.1
Signature: <...>

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{
    "crew_groups":[
     {
       "id":1,
       "name":"CREW_GROUP1"
     },
     {
       "id":2,
       "name":"CREW_GROUP2"
     }
    ]
  }
}

3. Запрос списка групп клиентов

Метод: GET

Название запроса: get_client_groups_list

Параметры: нет

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
client_groupsМассивСписок групп клиентов
• idЦелоеИД группы клиентов
• nameСтрокаНазвание группы клиентов

Пример:

Запрос:
GET https://ip:port/common_api/1.0/get_client_groups_list HTTP/1.1
Signature: <...>

Ответ:
{
  "code":0,
  "descr":"OK",
  "data":{
    "client_groups":[
      {
        "id":1,
        "name":"CLIENT_GROUP1"
      },
      {
        "id":2,
        "name":"CLIENT_GROUP2"
      }
    ]
  }
}

4. Запрос списка тарифов

Метод: GET

Название запроса: get_tariffs_list

Параметры: нет

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
tariffsМассивСписок тарифов
• idЦелоеИД тарифа
• nameСтрокаНазвание тарифа
• is_activetrue или falseАктивный тариф

Пример:

Запрос:

GET https://ip:port/common_api/1.0/get_tariffs_list HTTP/1.1
Signature: <...>

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{
    "tariffs":[
      {
        "id":1,
        "name":"TARIFF1"
        "is_active":true 
      },
      {
         "id":2,
         "name":"TARIFF2"
         "is_active":true
      }
    ]
  }
}

5. Запрос списка услуг

Запрос устарел. Рекомендуется использовать запрос списка параметров заказа

Метод: GET

Название запроса: get_services_list

Параметры: нет

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
servicesМассивСписок услуг
• idЦелоеИД услуги
• nameСтрокаНазвание услуги
• sumДробноеАбсолютная сумма услуги, руб
• percentДробноеПроцент услуги от стоимости заказа, %

Пример:

Запрос:

GET https://ip:port/common_api/1.0/get_services_list HTTP/1.1
Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "services":[ { "id":1, "name":"SERVICE1", "sum":100, "percent":0 }, { "id":2, "name":"SERVICE2" "sum":0, "percent":10 } ] } }

6. Запрос списка атрибутов

Метод: GET

Название запроса: get_order_params_list

Параметры: нет

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
order_paramsМассивСписок параметров заказа
• idЦелоеИД параметра
• nameСтрокаНазвание параметра
• sumДробноеАбсолютная сумма параметра, руб. (Возвращает сумму только для логических атрибутов)
• percentДробноеПроцент параметра от стоимости заказа, %
• order_access_controltrue или falseРегулирует доступ к заказу

Пример:

Запрос:

GET https://ip:port/common_api/1.0/get_order_params_list HTTP/1.1
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 } ] } }

7. Запрос списка скидок

Метод: GET

Название запроса: get_discounts_list

Параметры: нет

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
discountsМассивСписок скидок
• idЦелоеИД скидки
• nameСтрокаНазвание скидки
• sumДробноеАбсолютная сумма скидки, руб
• percentДробноеПроцент скидки от стоимости заказа, %

Пример:

Запрос:

GET https://ip:port/common_api/1.0/get_discounts_list  HTTP/1.1 
Signature: <...> Ответ: { "code":0, "descr":"OK", "data":{ "discounts":[ { "id":1, "name":"DISCOUNT1", "sum":100, "percent":0 }, { "id":2, "name":"DISCOUNT2" "sum":0, "percent":10 } ] } }

8. Создание нового заказа

Метод: POST

Название запроса: create_order

Параметры:

ПараметрТипОписание
Обязательные параметры
phoneСтрока, <= 30 символовНомер телефона
sourceСтрокаАдрес подачи
source_timeГГГГММДДччммссВремя подачи
Необязательные параметры
destСтрокаАдрес назначения
customerСтрокаЗаказчик
commentСтрокаКомментарий
crew_group_idЦелоеИД группы экипажей
tariff_idЦелоеИД тарифа
is_priortrue или falseПредварительный заказ
source_lonДробноеДолгота адреса подачи
source_latДробноеШирота адреса подачи
dest_lonДробноеДолгота адреса назначения
dest_latДробноеШирота адреса назначения

Специальные возвращаемые коды:

КодОписание
100Заказ с такими параметрами уже создан
101Тариф не найден
102Группа экипажа не найдена
110Клиент заблокирован
111Не найден клиент, который может использовать собственный счет для оплаты заказов
114Недостаточно средств на безналичном счете клиента в ТМ
115Отрицательный баланс на безналичном счете клиента в ТМ
116Для клиента запрещена оплата заказа наличными. Клиент должен максимально использовать в заказе безналичную оплату (оплату с основного счета)

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
order_idЦелоеИД созданного заказа

Пример:

Запрос:

POST https://ip:port/common_api/1.0/create_order HTTP/1.1
Signature: <...>
Content-Type: application/x-www-form-urlencoded
Content-Length: <...>

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 } }

9. Создание нового заказа 2

Метод: POST

Название запроса: create_order2

Параметры в формате JSON:

ПараметрТипОписание
Обязательные параметры
phoneСтрока, <= 30 символовНомер телефона (необязателен, если client_id присутствует).
client_idЦелоеИД клиента (необязателен, если phone присутствует).
addressesМассивМассив адресов. Первый элемент — адрес подачи(обязательно), последний — адрес назначения, между ними — остановки.
• addressСтрокаАдрес подачи
• latДробноеШирота адреса
• lonДробноеДолгота адреса
• zone_idЦелоеИД района
• parking_idЦелоеИД стоянки
source_timeГГГГММДДччммссВремя подачи
Необязательные параметры
server_time_offsetЦелоеСмещения относительно серверного времени
passengerСтрокаПассажир
phone_to_dialСтрока, <= 30 символовТелефон для отзвона
customerСтрокаЗаказчик
commentСтрокаКомментарий
crew_group_idЦелоеИД группы экипажей
tariff_idЦелоеИД тарифа
is_priortrue или falseПредварительный заказ
check_duplicatetrue или falseПроверка на дубликат
servicesМассивМассив услуг. Устарело. Рекомендуется использовать параметр attribute_values.
ЦелоеИД услуги
crew_propsМассивМассив признаков экипажей. Устарело. Рекомендуется использовать параметр attribute_values.
ЦелоеИД признака экипажа
order_paramsМассивМассив параметров заказа. Устарело. Рекомендуется использовать параметр attribute_values.
ЦелоеИД параметра заказа
total_costДробноеСумма заказа
use_cashlesstrue или falseОплата по возможности всей суммы заказа с безналичного счета клиента (насколько хватает средств на счете).
use_bonustrue или falseОплата по возможности всей суммы заказа с бонусного счета клиента (насколько хватает средств на бонусном счете).
cashless_sumДробноеФиксированная сумма оплаты заказа с безналичного счета клиента (не используется, если use_cashless = true).
bonus_sumДробноеФиксированная сумма оплаты заказа с бонусного счета клиента (не используется, если use_bonus = true).
client_employee_idЦелоеИД сотрудника клиента (если задан client_id)
emailСтрокаEmail для отправки уведомлений
prior_to_current_before_minutesЦелоеВремя перехода из предварительного в текущие заказы, мин
flight_numberСтрокаНомер рейса
need_custom_validate true или false Использовать специальную проверку перед созданием заказа
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»
payment_pay_system Строка Тип платежной системы ("qr", либо пусто, если не используется)

Специальные возвращаемые коды:

КодОписание
100Заказ с такими параметрами уже создан
101Тариф не найден
102Группа экипажа не найдена
104Клиент не найден
105Район не найден
106Стоянка не найдена
107Сотрудник клиента не найден
108Атрибут не найден
109Атрибут не может быть привязан к заказу
110Клиент заблокирован
111Не найден клиент, который может использовать собственный счет для оплаты заказов
112 Сотрудник клиента заблокирован
113 Ошибка специальной проверки заказа перед созданием.
В ответе будет возвращаться:

 "data": {
    "message":"Текст ошибки для пользователя.",
    "can_create_order":true|false // можно ли создать заказ несмотря на ошибки проверки
  }
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": "строка"
      }
  ],
  "payment_pay_system": "qr"
} Ответ: { "code":0, "descr":"OK", "data":{ "order_id":1672 } }

10. Расчет суммы заказа

Метод: GET

Название запроса: calc_order_cost

Параметры:
ПараметрТипОписание
Обязательные параметры
tariff_idЦелоеИД тарифа
Необязательные параметры
source_timeГГГГММДДччммссВремя подачи
is_priortrue или 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_countrytrue или falseЗагородный заказ
waiting_minutesЦелоеВремя ожидания посадки клиента в минутах
is_hourlytrue или falseПочасовой заказ
hourly_minutesЦелоеДлительность почасового заказа в минутах
is_prizetrue или falseПризовой заказ
back_waytrue или falseОбратный путь за городом
servicesСтрокаСписок ИД услуг через точку с запятой, пример: «1;2;3»

Устарело. Рекомендуется использовать параметр order_params.

order_paramsСтрокаСписок ИД параметров заказа через точку с запятой, пример: «1;2;3»
cashlesstrue или falseПризнак безналичного заказа

Специальные возвращаемые коды:

КодОписание
100Тариф не найден
101Ошибка при расчете по тарифу
102Скидка не найдена
103Клиент не найден
104Район подачи не найден
105Район назначения не найден
106Дисконтная карта не найдена
107Район остановки не найден
108Группа экипажа не найдена
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" } ] } }

11. Расчет суммы заказа 2

Метод: POST

Название запроса: calc_order_cost2

Параметры в формате JSON:

ПараметрТипОписание
Необязательные параметры
order_id
ЦелоеИД заказа
tariff_idЦелоеИД тарифа
source_timeГГГГММДДччммссВремя подачи
is_priortrue или 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_countrytrue или falseЗагородный заказ
waiting_minutesЦелоеВремя ожидания посадки клиента в минутах
is_hourlytrue или falseПочасовой заказ
hourly_minutesЦелоеДлительность почасового заказа в минутах
is_prizetrue или falseПризовой заказ
back_waytrue или falseОбратный путь за городом
order_paramsМассивМассив параметров заказа. Устарело. Рекомендуется использовать параметр attribute_values.
ЦелоеИД параметра заказа
cashlesstrue или falseПризнак безналичного заказа
stopsМассивСписок остановок
• zone_idЦелоеИД района остановки
• latДробноеШирота адреса остановки
• lonДробноеДолгота адреса остановки
crew_group_idЦелоеИД группы экипажа
analyze_routetrue или 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 Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Специальные возвращаемые коды:

КодОписание
100Тариф не найден
101Ошибка при расчете по тарифу
102Скидка не найдена
103Клиент не найден
104Район подачи не найден
105Район назначения не найден
106Дисконтная карта не найдена
107Район остановки не найден
108Группа экипажа не найдена
110Дисконтная карта не действительна
111Сотрудник клиента не найден
112 Атрибут не найден
113 Атрибут не может быть привязан к заказу
114 Заказ не найден

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
sumДробноеРассчитанная общая сумма заказа
infoМассивДополнительная информация по расчету суммы заказа
• commentСтрокаОписание позиции дополнительной информации по расчету суммы заказа
• sumСтрокаСумма позиции дополнительной информации по расчету суммы заказа

Пример:

Запрос: 

POST https://ip:port/common_api/1.0/calc_order_cost2 
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" } ] } }

12. Изменение состояния заказа

Метод: 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 HTTP/1.1
Signature: <...>

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{
    "order_id":6,
    "new_state":4
  }
} 

13. Запрос информации об экипаже

Метод: GET

Название запроса: get_crew_info

Параметры:

ПараметрТипОписание
Обязательные параметры
crew_idЦелоеИД экипажа
Необязательные параметры
fieldsСтрокаСписок возвращаемых полей через запятую

Специальные возвращаемые коды:

КодОписание
100Экипаж не найден

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
crew_idЦелоеИД экипажа
codeСтрокаПозывной экипажа
nameСтрокаНаименование экипажа
driver_idЦелоеИД водителя
car_idЦелоеИД автомобиля
crew_group_idЦелоеИД группы экипажа
crew_state_idЦелоеИД состояния экипажа
onlinetrue или falseВодитель подключен к серверу «Связи с водителями»
work_shift_sumДробноеСумма, списываемая за смену
min_balanceДробноеМинимальный баланс, при котором можно выйти на смену
common_priorityЦелоеОбщий приоритет
static_priorityЦелоеСтатический приоритет
dynamic_priorityЦелоеДинамический приоритет
rating_priorityЦелоеПриоритет по рейтингу
order_change_idЦелоеИндивидуальная сдача с заказа
has_light_housetrue или falseШашка
has_labeltrue или falseНаклейка
use_plan_shiftstrue или falseЗапрет работы вне запланированных смен
fuel_levelДробноеУровень топлива в автомобиле
order_paramsМассивМассив параметров экипажа. Устарело. Рекомендуется использовать параметр attribute_values.
ЦелоеИД параметра 
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
•  str_value Строка Значение, если тип атрибута «Строка»

Пример:

Запрос: 

GET https://ip:port/common_api/1.0/get_crew_info?crew_id=1 HTTP/1.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,
    "fuel_level":8.15,
    "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": "строка"
        }
    ]
  }
}

14. Запрос информации об экипажах

Метод: GET

Название запроса: get_crews_info

Параметры:

ПараметрТипОписание
Необязательные параметры
not_working_crewstrue или falseНужно ли возвращать экипажи не на линии. По умолчанию возвращаются только экипажи на линии
fieldsСтрокаСписок возвращаемых полей через запятую

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
crews_infoМассивМассив экипажей
• crew_idЦелоеИД экипажа
• codeСтрокаПозывной экипажа
• nameСтрокаНаименование экипажа
• driver_idЦелоеИД водителя
• car_idЦелоеИД автомобиля
• crew_group_idЦелоеИД группы экипажа
• crew_state_idЦелоеИД состояния экипажа
• onlinetrue или falseВодитель подключен к серверу «Связи с водителями»
• work_shift_sumДробноеСумма, списываемая за смену
• min_balanceДробноеМинимальный баланс, при котором можно выйти на смену
• common_priorityЦелоеОбщий приоритет
• static_priorityЦелоеСтатический приоритет
• dynamic_priorityЦелоеДинамический приоритет
• rating_priorityЦелоеПриоритет по рейтингу
• order_change_idЦелоеИндивидуальная сдача с заказа
• has_light_housetrue или falseШашка
• has_labeltrue или falseНаклейка
• use_plan_shiftstrue или falseЗапрет работы вне запланированных смен
• fuel_levelДробноеУровень топлива в автомобиле
• order_paramsМассивМассив параметров экипажа. Устарело. Рекомендуется использовать параметр attribute_values.
• •ЦелоеИД параметра 
• attribute_values Массив Массив значений атрибутов
• • id Целое Идентификатор атрибута
• • bool_value true или false Значение, если тип атрибута «Логический»
• • num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• •  str_value Строка Значение, если тип атрибута «Строка»

Пример:

Запрос:
GET https://ip:port/common_api/1.0/get_crews_info HTTP/1.1
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":[]
      }
    ]
  }
}

15. Создание экипажа

Метод: 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_housetrue или falseШашка
has_labeltrue или falseНаклейка
use_plan_shiftstrue или falseЗапрет работы вне запланированных смен
order_paramsМассивМассив параметров экипажа. Устарело. Рекомендуется использовать параметр attribute_values.
ЦелоеИД параметра
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Специальные возвращаемые коды:

КодОписание
100Автомобиль с ИД=ID не найден
101Водитель с ИД=ID не найден
102Группа экипажа с ИД=ID не найдена
103Параметр с ИД=ID не найден или не может быть привязан к экипажу
104Экипаж с таким водителем и автомобилем уже существует

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
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 } }

16. Обновление информации об экипаже

Метод: 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_housetrue или falseШашка
has_labeltrue или falseНаклейка
crew_gps_idЦелоеGPS идентификатор экипажа
use_plan_shiftstrue или falseЗапрет работы вне запланированных смен
order_paramsМассивМассив параметров экипажа. Устарело. Рекомендуется использовать параметр attribute_values.
ЦелоеИД параметра
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Специальные возвращаемые коды:

КодОписание
100Автомобиль с ИД=ID не найден
101Водитель с ИД=ID не найден
102Группа экипажа с ИД=ID не найдена
103Параметр с ИД=ID не найден или не может быть привязан к экипажу
104Экипаж с таким водителем и автомобилем уже существует
106Экипаж с ИД=ID не найден
107Экипаж на линии, запрещено редактирование полей: водитель, автомобиль, позывной, группа экипажа, сумма за смену, минимальный баланс, запрет выхода вне запланированной смены.

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/update_crew_info HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "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":{}
}

17. Запрос информации о водителе

Метод: GET

Название запроса: get_driver_info

Параметры:

ПараметрыТипОписание
Обязательные параметры
driver_idЦелоеИД водителя
Необязательные параметры
need_phototrue или falseНужна ли фотография водителя
fieldsСтрокаСписок возвращаемых полей через запятую

Специальные возвращаемые коды:

КодОписание
100Водитель не найден

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
driver_idЦелоеИД водителя
nameСтрокаФИО водителя
balanceДробноеБаланс основного счета водителя
birthdayДД.ММ.ГГГГДень рождения водителя
numberСтрокаТабельный номер
car_idЦелоеИД основного автомобиля водителя
driver_licenseСтрокаВодительское удостоверение
licenseСтрокаРазрешение на перевозку
home_phoneСтрокаЛюбой неосновной телефон водителя (устаревшее поле)
mobile_phoneСтрокаОсновной телефон водителя (устаревшее поле)
is_lockedtrue или falseВодитель заблокирован
is_dismissedtrue или falseВодитель уволен
self_employedtrue или falseВодитель самозанятый
innСтрокаИНН водителя
insurance_numberСтрокаСНИЛС водителя
passportСтрокаПаспортные данные
employee_typeЦелоеТип работника (0 - работник компании, 1 - частник)
start_dateГГГГММДДччммссДата приема на работу
lic_dateГГГГММДДччммссДата окончания договора
commentСтрокаОписание
driver_photoBase64Фото водителя (только если need_photo = true или поле driver_photo указано в списке фильтра полей fields)
order_paramsМассивМассив параметров водителя. Устарело. Рекомендуется использовать параметр attribute_values
ЦелоеИД параметра
phonesМассивМассив телефонов водителя
• phoneСтрокаНомер телефона
• is_defaulttrue или falseПризнак основного телефона
• use_for_calltrue или falseИспользовать для отзвона
term_accountСтрокаТерминальный аккаунт
name_for_taxophoneСтрокаИмя для мобильного приложения пассажира
accountsМассивМассив балансов счетов
•account_kindЦелоеТип счета
•balanceДробноеБаланс счета
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»
kpi Дробное Показатель эффективности (KPI) водителя

Пример:

Запрос:

GET https://ip:port/common_api/1.0/get_driver_info?driver_id=1&need_photo=false HTTP/1.1
Signature: <...>

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{
    "driver_id":1,
    "name":"DRIVER_NAME",
    "balance":100,
    "birthday":"01.01.1980",
    "number":"111",
    "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": "строка"
        }
    ],
    "kpi":3.12
  }
}

18. Запрос списка водителей

Метод: GET

Название запроса: get_drivers_info

Параметры:

ПараметрТипОписание
Необязательные параметры
locked_driverstrue или falseВключить в ответ запроса заблокированных водителей (по умолчанию false)
dismissed_driverstrue или falseВключить в ответ запроса уволенных водителей (по умолчанию false)
fieldsСтрокаСписок возвращаемых полей через запятую


Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
drivers_infoМассивМассив не удаленных водителей
• driver_idЦелоеИД водителя
• nameСтрокаФИО водителя
• balanceДробноеБаланс водителя
• birthdayДД.ММ.ГГГГДень рождения водителя
• numberСтрокаТабельный номер
• car_idЦелоеИД основного автомобиля водителя
• driver_licenseСтрокаВодительское удостоверение
• licenseСтрокаРазрешение на перевозку
• home_phoneСтрокаЛюбой неосновной телефон водителя (устаревшее поле)
• mobile_phoneСтрокаОсновной телефон водителя (устаревшее поле)
• is_lockedtrue или falseВодитель заблокирован
• is_dismissedtrue или falseВодитель уволен
• self_employedtrue или falseВодитель самозанятый
• innСтрокаИНН водителя
• insurance_numberСтрокаСНИЛС водителя
• passportСтрокаПаспортные данные
• employee_typeЦелоеТип работника (0 - работник компании, 1 - частник)
• start_dateГГГГММДДччммссДата приема на работу
• lic_dateГГГГММДДччммссДата окончания договора
• commentСтрокаОписание
• order_paramsМассивМассив параметров водителя. Устарело. Рекомендуется использовать параметр attribute_values
• •ЦелоеИД параметра
• phonesМассивМассив телефонов водителя
• • phoneСтрокаНомер телефона
• • is_defaulttrue или falseПризнак основного телефона
• • use_for_calltrue или falseИспользовать для отзвона
• term_accountСтрокаТерминальный аккаунт
• attribute_values Массив Массив значений атрибутов
• • id Целое Идентификатор атрибута
• • bool_value true или false Значение, если тип атрибута «Логический»
• • num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• • str_value Строка Значение, если тип атрибута «Строка»
• kpi Дробное Показатель эффективности (KPI) водителя

Пример:

Запрос:

GET https://ip:port/common_api/1.0/get_drivers_info?locked_drivers=true&dismissed_drivers=true HTTP/1.1
Signature: <...>


Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{
    "drivers_info":[
      {
        "driver_id":1,
        "name":"DRIVER_NAME1",
        "balance":100.00,
        "birthday":"01.01.1980",
        "number":"111",
        "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": "строка"
            }
        ],
        "kpi":3.12
      },
      {
        "driver_id":2,
        "name":"DRIVER_NAME2",
        "balance":-50.00,
        "birthday":"01.01.1980",
        "number":"222",
        "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": "строка"
            }
        ],
        "kpi":3.12
      }
    ]
  }
}

19. Создание водителя

Метод: POST

Название запроса: create_driver

Параметры в формате JSON:

ПараметрТипОписание
Обязательные параметры
nameСтрокаФИО водителя
car_idЦелоеИД основного автомобиля
Необязательные параметры
passwordСтрокаПароль. Если не передали пароль, то он будет сгенерирован автоматически
home_phoneСтрокаНеосновной телефон водителя (устаревший параметр)
mobile_phoneСтрокаОсновной телефон водителя (устаревший параметр)
passportСтрокаПаспортные данные
driver_licenseСтрокаВодительское удостоверение
licenseСтрокаРазрешение на перевозку
employee_typeЦелоеТип работника (0 - работник компании, 1 - частник)
birthdayГГГГММДДччммссДень рождения
numberСтрокаТабельный номер
start_dateГГГГММДДччммссДата приема на работу
lic_dateГГГГММДДччммссДата окончания договора
term_accountСтрокаТерминальный аккаунт (если не указан, будет сгенерирован автоматически), должен состоять из 5 цифр
self_employedtrue или falseВодитель самозанятый
innСтрокаИНН водителя
insurance_numberСтрокаСНИЛС водителя
commentСтрокаОписание
order_paramsМассивМассив параметров водителя. Устарело. Рекомендуется использовать параметр attribute_values
ЦелоеИД параметра
driver_photoBase64Фотография водителя
phonesМассивМассив телефонов водителя
• phoneСтрокаНомер телефона
• is_defaulttrue или falseПризнак основного телефона
• use_for_calltrue или falseИспользовать для отзвона
name_for_taxophoneСтрокаИмя для мобильного приложения пассажира
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Специальные возвращаемые коды:

КодОписание
100Автомобиль с ИД=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
 }
}

20. Обновление информации о водителе

Метод: POST

Название запроса: update_driver_info

Параметры в формате JSON:

ПараметрТипОписание
Обязательные параметры
driver_idЦелоеИД редактируемого водителя
Необязательные параметры
nameСтрокаФИО водителя
car_idЦелоеИД основного автомобиля
passwordСтрокаПароль
home_phoneСтрокаНеосновной телефон водителя (устаревший параметр)
mobile_phoneСтрокаОсновной телефон водителя (устаревший параметр)
passportСтрокаПаспортные данные
driver_licenseСтрокаВодительское удостоверение
licenseСтрокаРазрешение на перевозку
employee_typeЦелоеТип работника (0 - работник компании, 1 - частник)
birthdayГГГГММДДччммссДень рождения
numberСтрокаТабельный номер
start_dateГГГГММДДччммссДата приема на работу
lic_dateГГГГММДДччммссДата окончания договора
term_accountСтрокаТерминальный аккаунт
commentСтрокаОписание
time_blockГГГГММДДччммссВременная блокировка до
is_lockedtrue или falseЗаблокирован
lock_descriptionСтрокаПричина блокировки
is_dismissedtrue или falseУволен
dismiss_descriptionСтрокаПричина увольнения
self_employed
true или false
Водитель самозанятый
inn
Строка
ИНН водителя
insurance_number
Строка
СНИЛС водителя
order_paramsМассивМассив параметров водителя. Устарело. Рекомендуется использовать параметр attribute_values
ЦелоеИД параметра
driver_photoBase64Фотография водителя
phonesМассивМассив телефонов водителя
• phoneСтрокаНомер телефона
• is_defaulttrue или falseПризнак основного телефона
• use_for_calltrue или falseИспользовать для отзвона
name_for_taxophoneСтрокаИмя для мобильного приложения пассажира
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Специальные возвращаемые коды:

КодОписание
100Автомобиль с ИД=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":{}
}

21. Запрос информации об автомобиле

Метод: GET

Название запроса: get_car_info

Параметры:

ПараметрыТипОписание
Обязательные параметры
car_idЦелоеИД автомобиля
Необязательные параметры
need_phototrue или falseНужна ли фотография автомобиля
fields
Строка
Список возвращаемых полей через запятую

Специальные возвращаемые коды:

КодОписание
100Автомобиль не найден

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
car_idЦелоеИД автомобиля
codeСтрокаПозывной автомобиля
nameСтрокаНаименование автомобиля
gos_numberСтрокаГосударственный номер автомобиля
colorСтрокаЦвет автомобиля
markСтрокаМарка автомобиля
modelСтрокаМодель автомобиля
short_nameСтрокаКраткое название автомобиля
production_yearЦелоеГод выпуска автомобиля
is_lockedtrue или falseАвтомобиль заблокирован
fuel_levelДробноеУровень топлива в автомобиле
car_classСтрокаКласс автомобиля (A, B, C, ...)
vinСтрокаVIN
body_numberСтрокаНомер кузова
engine_numberСтрокаНомер двигателя
permitСтрокаРазрешение на перевозку
commentСтрокаОписание
order_paramsМассивМассив параметров автомобиля. Устарело. Рекомендуется использовать параметр attribute_values
ЦелоеИД параметра
car_photoBase64Фото автомобиля (только если need_photo = true или поле driver_photo указано в списке фильтра полей fields)
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Пример:

Запрос:

GET https://ip:port/common_api/1.0/get_car_info?car_id=1&need_photo=false HTTP/1.1
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,
    "fuel_level":8.15,
    "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": "строка"
        }
    ]
  }
}

22. Запрос списка автомобилей

Метод: GET

Название запроса: get_cars_info

Параметры:

ПараметрыТипОписание
Необязательные параметры
locked_carstrue или falseВключить в ответ заблокированных автомобилей (по умолчанию false)
fieldsСтрокаСписок возвращаемых полей через запятую


Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрыТипОписание
crews_infoМассивМассив автомобилей
• car_idЦелоеИД автомобиля
• codeСтрокаПозывной автомобиля
• nameСтрокаНаименование автомобиля
• gos_numberСтрокаГос. номер автомобиля
• colorСтрокаЦвет автомобиля
• markСтрокаМарка автомобиля
• modelСтрокаМодель автомобиля
• short_nameСтрокаКраткое название автомобиля
• production_yearЦелоеГод выпуска автомобиля
• is_lockedtrue или falseАвтомобиль заблокирован
• car_classСтрокаКласс автомобиля (A, B, C, ...)
• vinСтрокаVIN
• body_numberСтрокаНомер кузова
• engine_numberСтрокаНомер двигателя
• permitСтрокаРазрешение на перевозку
• commentСтрокаОписание
• fuel_levelДробноеУровень топлива в автомобиле
• order_paramsМассивМассив параметров автомобиля. Устарело. Рекомендуется использовать параметр attribute_values
• •ЦелоеИД параметра
• attribute_values Массив Массив значений атрибутов
• • id Целое Идентификатор атрибута
• • bool_value true или false Значение, если тип атрибута «Логический»
• • num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• • str_value Строка Значение, если тип атрибута «Строка»

Пример:

Запрос:

GET https://ip:port/common_api/1.0/get_cars_info?locked_cars=true HTTP/1.1
Signature: <...>


Ответ:

{
  "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,
        "fuel_level":8.15,
        "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,
        "fuel_level":null,
        "order_params":[3,4],
        "attribute_values": [
            {
                  "id": 3,
                  "num_value": 10
            },
            {
                  "id": 4,
                  "str_value": "строка"
            }
        ]
      }
    ]
  }
}

23. Создание автомобиля

Метод: POST

Название запроса: create_car

Параметры в формате JSON:

ПараметрыТип Описание
Обязательные параметры
codeСтрокаПозывной
markСтрокаМарка
colorСтрокаЦвет
gos_numberСтрокаГосударственный номер
Необязательные параметры
modelСтрокаМодель
short_nameСтрокаКраткое название
production_yearЦелоеГод выпуска
car_classСтрокаКласс автомобиля (A, B, C, ...)
vinСтрокаVIN
body_numberСтрокаНомер кузова
engine_numberСтрокаНомер двигателя
permitСтрокаРазрешение на перевозку
commentСтрокаОписание
order_paramsМассивМассив параметров автомобиля. Устарело. Рекомендуется использовать параметр attribute_values.
ЦелоеИД параметра
car_photoBase64Фотография автомобиля
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»
crew_group_id
Целое ИД группы экипажей

Специальные возвращаемые коды:

КодОписание
100Автомобиль с ИД=ID имеет такой же позывной=CODE (проверка на дубликат позывного убрана из CommonAPI в ТМ 3.14.101)
104Атрибут с ИД=ID не найден или не может быть привязан к автомобилю
105Группа экипажей не найдена

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
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
 }
}

24. Обновить информацию об автомобиле

Метод: POST

Название запроса: update_car_info

Параметры в формате JSON:

ПараметрыТипОписание
Обязательные параметры
car_idЦелоеИД автомобиля
Необязательные параметры
dont_check_car_on_shift
true или false
Не проверять, что автомобиль уже на линии
code
СтрокаПозывной
markСтрокаМарка
colorСтрокаЦвет
gos_numberСтрокаГосударственный номер
modelСтрокаМодель
short_nameСтрокаКраткое название
production_yearЦелоеГод выпуска
car_classСтрокаКласс автомобиля (A, B, C, ...)
vinСтрокаVIN
body_numberСтрокаНомер кузова
engine_numberСтрокаНомер двигателя
permitСтрокаРазрешение на перевозку
commentСтрокаОписание
order_paramsМассивМассив параметров автомобиля. Устарело. Рекомендуется использовать параметр attribute_values
ЦелоеИД параметра
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»
is_lockedtrue или falseАвтомобиль заблокирован
lock_descriptionСтрокаПричина блокировки
car_photoBase64Фотография автомобиля
crew_group_id
ЦелоеИД группы экипажей

Специальные возвращаемые коды:

КодОписание
102Автомобиль с ИД=ID не найден
103Экипаж на линии, запрещено редактирование полей: марка, модель, краткое наименование, цвет, гос. номер.
104Параметр с ИД=ID не найден или не может быть привязан к автомобилю
105Группа экипажей не найдена

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/update_car_info HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "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":{}
}

25. Запрос координат экипажей

Метод: 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 HTTP/1.1
Signature: <...>

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{
    "crews_coords":[
      {
         "crew_id":1,
         "crew_code":"111",
         "coords_time":"20120101101010",
         "lat":11.111111,
         "lon":22.222222,
         "speed":67,
         "direction":333,
         "state_kind":"waiting"
      },
      {
         "crew_id":2,
         "crew_code":"222",
         "coords_time":"20120101101010",
         "lat":33.333333,
         "lon":44.444444,
         "speed":0,
         "direction":-1,
         "state_kind":"on_order"
      }
    ]
  }
}

Запрос:

GET https://ip:port/common_api/1.0/get_crews_coords?crew_id=1 HTTP/1.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"
      }
    ]
  }
}

26. Запрос адресов, содержащих нужную строку

Метод: GET

Название запроса: get_addresses_like

Параметры:

ПараметрыТипОписание
Обязательные параметры
get_streetstrue или falseИскать улицы
get_pointstrue или falseИскать пункты
get_housestrue или falseИскать дома. Не может быть равно true, если get_streets = true или get_points = true.
streetСтрокаЧасть названия улицы или пункта, если идет поиск улиц или пунктов, или полное название улицы, если идет поиск домов
Необязательные параметры
houseСтрокаЧасть номера дома. Нужно только если get_houses = true.
cityСтрокаГород, в котором искать адреса
max_addresses_countЦелоеМаксимальное количество адресов в ответе
search_in_tmtrue или falseИскать адреса в ТМ (по умолчанию = true)
search_in_yandextrue или falseИскать адреса в Яндекс (по умолчанию = false)
search_in_googletrue или falseИскать адреса в Google (по умолчанию = false)
search_in_2gistrue или falseИскать адреса в 2GIS (по умолчанию = false)
search_in_tmgeoservicetrue или falseИскать адреса в TMGeoService (по умолчанию = false)
search_in_mapmd
true или false
Искать адреса в Map.md (по умолчанию = false)

Специальные возвращаемые коды:

КодОписание
100Подходящие адреса не найдены
101Не указано место для поиска адресов

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
addressesМассивСписок подходящих адресов
• address_sourceСтрокаИсточник адреса. Может принимать значения:

•"tm" — ТМ (адрес из базы данных или из карты)

•"yandex" — Яндекс

•"google" — Google

•"2gis" — 2GIS

•"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 HTTP/1.1
Signature: <...>

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{
    "addresses":[
      {
         "address_source":"tm",
         "street":"STREET1",
         "house":"",
         "kind":"street",
         "comment":"",
         "coords":{
             "lat":0,
             "lon":0
         }
      },
      {
         "address_source":"tm",
         "street":"STREET2",
         "house":"",
         "kind":"street",
         "comment":"",
         "coords":{
             "lat":0,
             "lon":0
         }
      },
      {
         "address_source":"tm",
         "street":"POINT_STREET1",
         "house":"",
         "kind":"point",
         "comment":"Point at street STREET1",
         "coords":{
             "lat":11.111111,
             "lon":22.222222
         }
      }
    ]
  }
}

Запрос:

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 HTTP/1.1
Signature: <...>

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{
    "addresses":[
      {
         "address_source":"tm",
         "street":"STREET1",
         "house":"1",
         "kind":"house",
         "comment":"",
         "coords":{
             "lat":11.111111,
             "lon":22.222222
         }
      },
      {
         "address_source":"tm",
         "street":"STREET1",
         "house":"10",
         "kind":"house",
         "comment":"",
         "coords":{
             "lat":33.333333,
             "lon":44.444444
         }
      }
    ]
  }
}

27. Запрос адресов, содержащих нужную строку 2

Метод: GET

Название запроса: get_addresses_like2

Параметры:

ПараметрыТипОписание
Обязательные параметры
get_streetstrue или falseИскать улицы
get_pointstrue или falseИскать пункты
get_housestrue или falseИскать дома
addressСтрокаСтрока для поиска адреса
Необязательные параметры
cityСтрокаГорода, разделенные запятой, в которых искать адреса
max_addresses_countЦелоеМаксимальное количество адресов в ответе
search_in_tmtrue или falseИскать адреса в ТМ (по умолчанию = true)
search_in_yandextrue или falseИскать адреса в Яндекс (по умолчанию = false)
search_in_googletrue или falseИскать адреса в Google (по умолчанию = false)
search_in_2gistrue или falseИскать адреса в 2GIS (по умолчанию = false)
search_in_tmgeoservicetrue или falseИскать адреса в TMGeoService (по умолчанию = false)
search_in_mapmd
true или false
Искать адреса в Map.md (по умолчанию = false)

Специальные возвращаемые коды:

КодОписание
100Подходящие адреса не найдены
101Не указано место для поиска адресов

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
addressesМассивСписок подходящих адресов
• address_sourceСтрокаИсточник адреса. Может принимать значения:

•"tm" — ТМ (адрес из базы данных или из карты)

•"yandex" — Яндекс

•"google" — Google

•"2gis" — 2GIS

•"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 HTTP/1.1
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
         }
      }
    ]
  }
}


28. Поиск ближайшего адреса

Метод: GET

Название запроса: find_nearest_address

Параметры:

ПараметрыТипОписание
Обязательные параметры
lattrue или falseИскать улицы
lontrue или falseИскать пункты
Необязательные параметры
radiusЦелоеРадиус в метрах
search_in_tmtrue или falseИскать адреса в ТМ (по умолчанию = true)
search_in_googletrue или falseИскать адреса в Google (по умолчанию = false)
search_in_tmgeoservicetrue или falseИскать адреса в TMGeoService (по умолчанию = false)
search_in_mapmd
true или false
Искать адреса в Map.md (по умолчанию = false)
search_in_2gistrue или falseИскать адреса в 2GIS (по умолчанию = false)

Специальные возвращаемые коды:

КодОписание
100Подходящий адрес не найден
101Не указано место для поиска адресов

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
address_sourceСтрокаИсточник адреса. Может принимать значения:

•"tm" — ТМ (адрес из базы данных или из карты)

•"tmgeoservice" — TMGeoService

•"google" — Google

•"2gis" — 2GIS

•"mapmd" — Map.md

cityСтрокаНазвание города
pointСтрокаНазвание пункта
streetСтрокаНазвание улицы
houseСтрокаНомер дома
kindСтрокаТип адреса. Может принимать значения:

• "street" — улица

• "house" — дом

• "point" — пункт

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
    }
  }
}


29. Анализ маршрута

Метод: 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 HTTP/1.1
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
  }
}

30. Анализ маршрута 2

Метод: POST

Название запроса: analyze_route2

Параметры в формате JSON:

ПараметрТипОписание
Обязательные параметры
addressesМассивМассив адресов. Первый элемент — адрес подачи, последний — адрес назначения, между ними — остановки.
• addressСтрокаАдрес подачи
• latДробноеШирота адреса
• lonДробноеДолгота адреса
Необязательные параметры
get_full_route_coordstrue или 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 https://ip:port/common_api/1.0/analyze_route2 HTTP/1.1
Content-Type: application/json
Content-Length: <...>
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
    }
  ]
}



Ответ:
{
  "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
      },
      ...
    ]
  }
}

31. Запрос информации о состоянии заказа

Метод: 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МассивМассив параметров заказа экипажа. Устарело. Рекомендуется использовать параметр attribute_values
ЦелоеИД параметра заказа
creation_wayСтрокаСпособ создания заказа. Может принимать значения:

• "operator" — заказ создан оператором

• "sms" — заказ создан через смс

• "market" — заказ из биржи

• "common_api" — заказ создан через api

• "t_api" — заказ создан через api

• "taxophone" — заказ создан через таксофон с телефона

• "driver" — заказ создан водителем

• "daily_order" — ежедневный заказ

• "taxophone_web" — заказ создан через таксофон с сайта

• "unknown" — неизвестный

is_priortrue или falseПредварительный заказ
is_really_priortrue или falseПредварительный заказ на вкладке "Предварительные"
emailСтрокаEmail для уведомлений
prior_to_current_before_minutesЦелоеВремя перехода из предварительного в текущие заказы, мин
flight_numberСтрокаНомер рейса
order_bundle_id Целое ИД заявки спецтехники
is_combined
true или false
Признак того, что заказ составной
сombined_order_parts_ids
Массив
Массив ИД заказов-частей, передается только для составного заказа

ЦелоеИД заказа-части
is_part_of_combined
true или false
Признак того, что заказ является частью составного
combined_order_id
ЦелоеИД составного заказа, передается, только если заказ является частью составного
sum Дробное Сумма без скидки
total_sum Дробное Итоговая сумма заказа
cash_sum
Дробное
Сумма наличными
cashless_sum
Дробное
Сумма безналичными
bonus_sum
Дробное
Сумма бонусами
bank_card_sum
Дробное
Сумма банковской картой
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»
bill Массив Чек TMDriver. Данный узел выводится только, если по заказу есть чек
• code Строка Код элемента расчета
• text Строка Наименование элемента расчета
• value Строка Значение элемента расчета (количество)
• sum Строка Стоимость элемента расчета
fact_route Массив Фактический маршрут по заказу, выводится только если поле fact_route передали в списке фильтра полей fields
• lat Дробное Широта точки маршрута
• lon Дробное Долгота точки маршрута
• time ГГГГММДДччммсс Время данной точки
• speed Целое Скорость в данный момент, км/ч
• direction Целое Направление движения, градусы (0 - север, 90 - восток, 180 - юг, 270 - запад)
is_auction true или false Признак заказа-аукциона
payment_pay_system Строка Тип платежной системы ("card", "gpay", "apple_pay", "qr", "sber_pay", "sbp", либо пусто, если не используется)

Пример:

Запрос: 

GET https://ip:port/common_api/1.0/get_order_state?order_id=1 HTTP/1.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
      }
    ],
    "is_auction":false,
    "payment_pay_system": "qr"
  }
}

32. Создание задачи СМС серверу

Метод: POST

Название запроса: send_sms

Параметры:

ПараметрыТипОписание
Обязательные параметры
phoneСтрока, <= 30 символовНомер телефона
messageСтрокаТекст СМС

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса: нет

Пример:

Запрос:

POST https://ip:port/common_api/1.0/send_sms HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: <...>
Signature: <...>

message=SMSText&phone=89050057216

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{}
}

33. Проверка авторизации

Метод: 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 HTTP/1.1
Signature: <...>

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{
    "client_id":131
 }
}

34. Регистрация клиента

Метод: POST

Название запроса: register_client

Параметры:

Параметры Тип Описание
Обязательные параметры
name Строка, <= 60 символов ФИО
login Строка, <= 60 символов Логин
password Строка, <= 60 символов Пароль
phones Строка Номера телефонов (через запятую)
Необязательные параметры
client_group Целое ИД группы клиента
parent_id Целое ИД клиента-родителя
address Строка Домашний адрес
birthday ГГГГММДДччммсс Дата рождения
gender Строка Пол. Может принимать значения:

• "male" - мужской

• "female" - женский

email Строка E-mail
use_email_informing true или false Использовать E-mail для отправки уведомлений по заказу
comment Строка Комментарий
use_own_account true или false Использовать собственный счет для оплаты заказов

Специальные возвращаемые коды:

Код Описание
100 Дублирование номера телефона=PHONE в списке
101 Клиент с логином=LOGIN уже существует
102 Группа клиента с ИД=CLIENT_GROUP не найдена
103 Клиент указанный в качестве родителя с ИД=PARENT_ID не найден
109 Пароль клиента не соответствует политике паролей

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
client_idЦелоеИД созданного клиента

Пример:

Запрос:

POST https://ip:port/common_api/1.0/register_clientHTTP/1.1
Signature: <...>
Content-Type: application/x-www-form-urlencoded
Content-Length: <...>

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
  }
}

35. Регистрация клиента 2

Метод: POST

Название запроса: register_client2

Параметры в формате JSON:

Параметры Тип Описание
Обязательные параметры
name Строка, <= 60 символов ФИО
login Строка, <= 60 символов Логин
password Строка, <= 60 символов Пароль
phones Массив Массив телефонов клиента
phone Строка Номер телефона
is_default true или false Признак основного телефона
Необязательные параметры
client_group_id Целое ИД группы клиента
parent_id Целое ИД клиента-родителя
address Строка Домашний адрес
birthday ГГГГММДДччммсс Дата рождения
gender Строка Пол. Может принимать значения:

• "male" - мужской

• "female" - женский

email Строка E-mail
use_email_informing true или false Использовать E-mail для отправки уведомлений по заказу
comment Строка Комментарий
use_own_account true или false Использовать собственный счет для оплаты заказов
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• 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
  }
}

36. Запрос информации по клиенту

Метод: 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 Целое Сколько заказов осталось до призового
email Строка E-mail
use_email_informing true или false Использовать E-mail для отправки уведомлений по заказу
default_crew_group Целое Группа экипажей по умолчанию
use_own_account true или false Использовать собственный счет для оплаты заказа
comment Строка Комментарий
employees Массив Массив сотрудников клиента. Поля аналогичны полям основного клиента, только у сотрудников отсутствует поле employees
accounts Массив Массив счетов клиента. Для сотрудников счета возвращаются, только если их явно запросили в фильтре полей "employees.accounts"
• account_kind Целое Тип счета:
- 0 - Основной счет
- 1- Бонусный счет
- Остальные - нестандартные счета
• balance Дробное Баланс счета клиента
• balance_with_children Дробное Баланс счета клиента с учетом вложенных клиентов
attribute_values Массив Массив значений атрибутов. Возвращается, только если явно запросили в фильтре полей "attribute_values" или "employees.attribute_values" для сотрудников
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Пример:

Запрос:

GET https://ip:port/common_api/1.0/get_client_info?client_id=140 HTTP/1.1
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
      }
    ]
  }
}

37. Запрос информации по клиентам

Метод: GET

Название запроса: get_clients_info

Параметры:

Параметр Тип Описание
Необязательные параметры
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 Целое Сколько заказов осталось до призового
email Строка E-mail
use_email_informing true или false Использовать E-mail для отправки уведомлений по заказу
default_crew_group Целое Группа экипажей по умолчанию
use_own_account true или false Использовать собственный счет для оплаты заказа
comment Строка Комментарий
accounts Массив Массив счетов клиента. Для сотрудников счета возвращаются, только если их явно запросили в фильтре полей "employees.accounts"
• account_kind Целое Тип счета:
- 0 - Основной счет
- 1- Бонусный счет
- Остальные - нестандартные счета
• balance Дробное Баланс счета клиента
• balance_with_children Дробное Баланс счета клиента с учетом вложенных клиентов
attribute_values Массив Массив значений атрибутов. Возвращается, только если явно запросили в фильтре полей "attribute_values" или "employees.attribute_values" для сотрудников
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• 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"
      }
    ]
  }
}


38. Изменение информации по клиенту

Метод: POST

Название запроса: update_client_info

Параметры:

Параметры Тип Описание
Обязательные параметры
client_id Целое ИД клиента
Необязательные параметры
name Строка, <= 60 символов ФИО
login Строка, <= 60 символов Логин
password Строка, <= 60 символов Пароль
phones Строка Номера телефонов (через запятую)
address Строка Домашний адрес
birthday ГГГГММДДччммсс Дата рождения
gender Строка Пол. Может принимать значения:

• "male" - мужской

• "female" - женский

parent_id Целое ИД клиента-родителя
client_group_id Целое ИД группы клиента
email Строка E-mail
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 не найден
109 Пароль клиента не соответствует политике паролей

Возвращаемые данные в случае успешного выполнения запроса: нет

Пример:

Запрос:

POST https://ip:port/common_api/1.0/update_client_info HTTP/1.1
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":{}
}

39. Изменение информации по клиенту 2

Метод: POST

Название запроса: update_client_info2

Параметры в формате 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" - женский

email Строка E-mail
use_email_informing true или false Использовать E-mail для отправки уведомлений по заказу
comment Строка Комментарий
use_own_account true или false Использовать собственный счет для оплаты заказов
attribute_values Массив Массив значений атрибутов. Возвращается, только если явно запросили в фильтре полей "attribute_values" или "employees.attribute_values" для сотрудников
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Специальные возвращаемые коды:

Код Описание
100 Клиент с ИД=CLIENT_ID не найден
101 Дублирование номера телефона=PHONE в списке
102 Клиент с логином=LOGIN уже существует
103 Группа клиента с ИД=CLIENT_GROUP_ID не найдена
104 Клиент указанный в качестве родителя с ИД=PARENT_ID не найден
105 Основной телефон может быть только один
106 Клиент должен иметь основной телефон
107 Атрибут с ИД=ID не найден
108 Атрибут с ИД=ID не может быть привязан к клиенту
109 Пароль клиента не соответствует политике паролей

Возвращаемые данные в случае успешного выполнения запроса: нет

Пример:

Запрос:

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":{}
}

40. Запрос текущих заказов

Метод: 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 Строка Тип состояния заказа. Может принимать значения:

• "new_order" — новый заказ

• "driver_assigned" — водитель назначен

• "car_at_place" — машина подъехала на место

• "client_inside" — клиент в машине

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 Строка Состояние подтвержденности заказа водителем или оператором. Может принимать значения:
• "not_confirmed" — не подтверждено
• "confirmed_by_driver" — заказ принят водителем
• "confirmed_by_oper" — заказ подтвержден оператором
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 Строка Email для уведомлений
prior_to_current_before_minutes Целое Время перехода из предварительного в текущие заказы, мин
flight_number Строка Номер рейса
order_bundle_id Целое ИД заявки спецтехники
is_combined
true или false
Признак того, что заказ составной
сombined_order_parts_ids
Массив
Массив ИД заказов-частей, передается только для составного заказа

ЦелоеИД заказа-части
is_part_of_combined
true или false
Признак того, что заказ является частью составного
combined_order_id
ЦелоеИД составного заказа, передается, только если заказ является частью составного
sum Дробное Сумма без скидки
total_sum Дробное Итоговая сумма заказа
cash_sum
Дробное
Сумма наличными
cashless_sum
Дробное
Сумма безналичными
bonus_sum
Дробное
Сумма бонусами
bank_card_sum
Дробное
Сумма банковской картой
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»
bill Массив Чек TMDriver. Данный узел выводится только, если по заказу есть чек
• code Строка Код элемента расчета
• text Строка Наименование элемента расчета
• value Строка Значение элемента расчета (количество)
• sum Строка Стоимость элемента расчета
is_auction true или false Признак заказа-аукциона
payment_pay_system Строка Тип платежной системы ("card", "gpay", "apple_pay", "qr", "sber_pay", "sbp", либо пусто, если не используется)

Пример:

Запрос:
GET https://ip:port/common_api/1.0/get_current_orders?client_id=140&phone=18 HTTP/1.1
Signature: <...>

Ответ:
{
  "code":0,
  "descr":"OK",
  "data":{
    "orders":[
      {
        "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"
          }
        ],
        "is_auction":false,
        "payment_pay_system":"qr"
      }
    ]
  }
}

41. Запрос выполненных заказов

Метод: 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 Строка Email для уведомлений
flight_number Строка Номер рейса
order_bundle_id Целое ИД заявки спецтехники
is_combined
true или false
Признак того, что заказ составной
сombined_order_parts_ids
Массив
Массив ИД заказов-частей, передается только для составного заказа

ЦелоеИД заказа-части
is_part_of_combined
true или false
Признак того, что заказ является частью составного
combined_order_id
ЦелоеИД составного заказа, передается, только если заказ является частью составного
sum Дробное Сумма без скидки
total_sum Дробное Итоговая сумма заказа
cash_sum
Дробное
Сумма наличными
cashless_sum
Дробное
Сумма безналичными
bonus_sum
Дробное
Сумма бонусами
bank_card_sum
Дробное
Сумма банковской картой
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»
bill Массив Чек TMDriver. Данный узел выводится только, если по заказу есть чек
• code Строка Код элемента расчета
• text Строка Наименование элемента расчета
• value Строка Значение элемента расчета (количество)
• sum Строка Стоимость элемента расчета
is_auction true или false Признак заказа-аукциона
payment_pay_system Строка Тип платежной системы ("card", "gpay", "apple_pay", "qr", "sber_pay", "sbp", либо пусто, если не используется)

Пример:

Запрос:
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
 HTTP/1.1
Signature: <...>

Ответ:
{
  "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аа",
        "is_auction":false,
        "payment_pay_system": "qr"
      }
    ]
  }
}

42. Проведение операции по клиенту

Метод: POST

Название запроса: create_client_operation

Параметры:

Параметры Тип Описание
Обязательные параметры
client_id Целое ИД клиента
sum Дробное Сумма
oper_type Целое Тип операции:

• "receipt" - приход

• "expense" - расход

Необязательные параметры
oper_time ГГГГММДДччммсс Время создания операции (если не указано, текущее)
comment Строка Комментарий
pay_type Целое Тип оплаты:

• "cash" - наличный

• "nocash" - безналичный

bonus_oper true или false Операция по бонусному счёту
account_kind Целое Тип счета:

• 0 - Основной счет

• 1- Бонусный счет

• Остальные - нестандартные счета

Специальные возвращаемые коды:

Код Описание
100 Не найден клиент ИД=CLIENT_ID
101 Не найден тип счета ИД=ACCOUNT_KIND

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
oper_id Целое ИД операции

Пример:

Запрос:

POST https://ip:port/common_api/1.0/create_client_operation HTTP/1.1
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

  }
}

43. Запрос операций по клиенту

Метод: GET

Название запроса: get_client_operations

Параметры:

Параметры Тип Описание
Обязательные параметры
client_id Целое ИД клиента
start_time ГГГГММДДччммсс Начало периода
finish_time ГГГГММДДччммсс Конец периода
Необязательные параметры
account_kind Целое Тип счета:

• 0 - Основной счет

• 1- Бонусный счет

• Остальные - нестандартные счета

Специальные возвращаемые коды:

Код Описание
100 Не найден клиент ИД=CLIENT_ID
101 Не найден тип счета ИД=ACCOUNT_KIND

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
oper_id Целое ИД операции
oper_time ГГГГММДДччммсс Время создания операции
sum Дробное Сумма
order_id Целое Заказ, связанный с операцией
oper_type Целое Тип операции:

• "receipt" - приход

• "expense" - расход

pay_type Целое Тип оплаты:

• "cash" - наличный

• "nocash" - безналичный

account_kind Целое Тип счета:

• 0 - Основной счет

• 1- Бонусный счет

• Остальные - нестандартные счета

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
      }
    ]
  }
}

44. Проведение операции по водителю

Метод: POST

Название запроса: create_driver_operation

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
driver_id Целое ИД водителя
oper_sum Дробное Сумма
oper_type Строка Тип операции:

• receipt - приход

• expense - расход

Необязательные параметры
name Строка Наименование операции
oper_time ГГГГММДДччммсс Время создания операции (если не задано, текущее)
comment Строка Комментарий
account_kind Целое ИД типа счета (0 - основной счет), по умолчанию 0

Специальные возвращаемые коды:

Код Описание
100 Водитель не найден ИД=DRIVER_ID
101 Не найден тип счета ИД=ACCOUNT_KIND

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
oper_id Целое ИД операции


Пример:

Запрос:

POST https://ip:port/common_api/1.0/create_driver_operation HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
    "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
   }
}

45. Запрос операций по водителю

Метод: 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 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",
        "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
      }
    ]
  }
}

46. Назначение динамического приоритета водителю

Метод: 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 HTTP/1.1
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
  }
}

47. Задание координат экипажей

Метод: 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":{}
}

48. Изменение информации по заказу

Метод: POST

Название запроса: update_order

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
order_id Целое ИД заказа
Необязательные параметры
phone Строка, <= 30 символов Номер телефона
source_time ГГГГММДДччммсс Время подачи
is_prior true или false Предварительный заказ
customer Строка Заказчик
passenger Строка Пассажир
comment Строка Комментарий
crew_group_id Целое ИД группы экипажей
client_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 Строка Email для уведомлений
prior_to_current_before_minutes Целое Время перехода из предварительного в текущие заказы, мин
flight_number Строка Номер рейса
need_custom_validate true или false Использовать специальную проверку перед изменением заказа
client_employee_id Целое ИД сотрудника, должен быть подчиненным старого ИД клиента в заявке, если не передавали новый ИД клиента, либо подчиненным нового ИД клиента, если передали новый ИД клиента

Специальные возвращаемые коды:

Код Описание
100 Заказ не найден
101 Состояние заказа не найдено
102 Тариф не найден
103 Скидка не найдена
104 Группа экипажа не найдена
105 Служба не найдена
106 Клиент не найден
107 Изменение состояния не соответствует необходимым условиям
108 Параметр заказа не найден
109 Атрибут не может быть привязан к заказу
110 Ошибка специальной проверки заказа перед изменением. В ответе будет возвращаться:
  "data": {
    "message":"Текст ошибки для пользователя."
  }
111 Недостаточно средств на безналичном счете клиента в ТМ
112 Для клиента запрещена оплата заказа наличными. Клиент должен максимально использовать в заказе безналичную оплату (оплату с основного счета)
113 Клиент заблокирован
114 Сотрудник клиента не найден
115 Не найден клиент, который может использовать собственный счет для оплаты заказов
116 Сотрудник клиента заблокирован

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

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":{}
}

49. Анализ телефона

Метод: 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 https://ip:port/common_api/1.0/analyze_phone?phone=89501234567&search_in_drivers_mobile=true&
search_in_clients=true&search_in_phones=true HTTP/1.1
Signature: <...>

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{
  "phone_type":"client",
  "id":1
  "client_employee_id":2
   }
}

50. Показать сообщение в ТМ

Метод: POST

Название запроса: show_tm_message

Параметры:

Параметр Тип Описание
Обязательные параметры
text Строка Текст сообщения
Необязательные параметры
type Строка Тип сообщения ("warning", "error", "information", "confirmation"), по умолчанию "information"
header Строка Заголовок сообщения
timeout Целое Скрывать сообщение через, сек. (0 — не скрывать)
users Массив Массив пользователей (если не указаны — отправлять всем)
Целое ИД пользователя
color Строка Цвет уведомления в формате RGB: #FFFFFF
order_id Целое ИД заказа для кнопки открытия карточки в уведомлении
car_id Целое ИД автомобиля для кнопки открытия карточки в уведомлении
driver_id Целое ИД водителя для кнопки открытия карточки в уведомлении
crew_id Целое ИД экипажа для кнопки открытия карточки в уведомлении
client_id Целое ИД клиента для кнопки открытия карточки в уведомлении
transport_entry_task_id Целое ИД заявки на въезд транспорта для кнопки открытия карточки в уведомлении


Специальные возвращаемые коды:

Код Описание
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,
    "color":"#FFFF80",
    "car_id":55
}

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{}
}

51. Запрос списка купленных смен водителей

Метод: 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
      }
    ]
  }
}

52. Запрос списка запланированных смен водителей

Метод: 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 HTTP/1.1
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
      }
    ]
  }
}

53. Продажа смены водителю

Метод: 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 HTTP/1.1
Signature: <...>
Content-Type: application/x-www-form-urlencoded
Content-Length: <...>

crew_id=1&plan_shift_id=1


Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{}
}

54. Сохранение отзыва клиента

Метод: POST

Название запроса: save_client_feed_back

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
phone Строка Телефон
rating Целое Рейтинг (от 1 до 5)
text Строка Текстовый отзыв
Необязательные параметры
order_id Целое ИД заказа
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Допускается указывать либо параметр rating, либо text, либо оба параметра.

Специальные возвращаемые коды: нет.

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/save_client_feed_back HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "phone":"89123456789",
  "rating":4,
  "text":"test feedback",
  "order_id":100
}

Ответ:
{
  "code":0,
  "descr":"OK",
  "data":{}
}

55. Поиск экипажей по координатам

Метод: GET

Название запроса: find_crews_by_coords

Параметры:

Параметр Тип Описание
Обязательные параметры
lat Дробное Широта точки центра поиска
lon Дробное Долгота точки центра поиска
radius Дробное Радиус поиска, км или мили
Необязательные параметры
crews_without_coords true или false Искать экипажи без реальных координат по координатам стоянок
crews_release_in Целое Допустимое время до освобождения в зоне поиска, если надо возвращать занятые экипажи (если 0, то искать только свободные экипажи), мин
crew_group_id Целое ИД группы экипажей, заказы из которой должны видеть подходящие экипажи
attributes Строка Список ИД атрибутов заказа, которыми должны обладать подходящие экипажи (через точку с запятой, пример: «1;2;3»). Устарело. Рекомендуется использовать параметр attribute_values
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• 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&attributes=1;2;3 HTTP/1.1
Signature: <...>

Ответ:
{
  "code":0,
  "descr":"OK",
  "data":{
    "waiting_count":5,
    "on_order_count":2
  }
}

56. Подбор тарифа для заказа

Метод: POST

Название запроса: select_tariff_for_order

Параметры в формате JSON:

Параметр Тип Описание
Необязательные параметры
client_id Целое ИД клиента
crew_group_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 HTTP/1.1
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
 }
}

57. Импорт марок автомобилей в БД

Метод: POST

Название запроса: import_car_marks

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
marks Массив строк Импортируемые марки автомобилей

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса: нет

Пример:

Запрос: 

POST https://ip:port/common_api/1.0/import_car_marks HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "marks": [
    "Mercedes",
    "BMW"
  ]
}

Ответ:

 {
  "code":0,
  "descr":"OK",
  "data":{}
 }

58. Импорт цветов автомобилей в БД

Метод: POST

Название запроса: import_car_colors

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
colors Массив строк Импортируемые цвета автомобилей

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса: нет

Пример:

Запрос: 

POST https://ip:port/common_api/1.0/import_car_colors HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "colors": [
    "красный",
    "синий"
  ]
}

 Ответ:

 {
  "code":0,
  "descr":"OK",
  "data":{}
 }

59. Запрос информации по сотруднику клиента

Метод: GET

Название запроса: get_client_employee_info

Параметры:

Параметр Тип Описание
Обязательные параметры
client_employee_id Целое ИД сотрудника клиента

Специальные возвращаемые коды:

Код Описание
100 Не найден сотрудник клиента ИД=CLIENT_EMPLOYEE_ID

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
client_employee_id Целое ИД сотрудника
client_id Целое ИД клиента
name Строка ФИО сотрудника
is_deleted true или false Признак удаленного сотрудника
email Строка E-mail
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 HTTP/1.1
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"
      }
    ]
  }
 }

60. Создание сотрудника клиента

Метод: POST

Название запроса: create_client_employee

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
client_id Целое ИД клиента
name Строка ФИО сотрудника
Необязательные параметры
email Строка E-mail
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 HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "client_id":10
  "name":"Иванов Иван",
  "email":"mail@mail.ru",
  "use_email_informing":true,
  "phones":[
    {
      "phone":"79999999999",
    },
    {
      "phone":"79999999999",
    }
  ]
 }

 Ответ:
 {
  "code":0,
  "descr":"OK",
  "data":{}
 }

61. Обновление информации о сотруднике клиента

Метод: POST

Название запроса: update_client_employee_info

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
client_employee_id Целое ИД редактируемого сотрудника клиента
Необязательные параметры
name Строка ФИО сотрудника
is_deleted true или false Признак удаленного сотрудника
email Строка E-mail
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 HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "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":{}
 }

62. Запрос списка состояний заказа

Метод: GET

Название запроса: get_order_states_list

Параметры: нет

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
order_states Массив Список состояний заказа
• id Целое ИД состояния
• name Строка Название состояния
• state_type Строка Тип состояния. Может принимать значения:

• "accepted" — заказ принят

• "in_work" — заказ в работе

• "finished" — заказ выполнен

• "aborted" — заказ прекращен

Пример:

Запрос:


GET https://ip:port/common_api/1.0/get_order_states_list HTTP/1.1
Signature: <...>

Ответ:


{
  "code":0,
  "descr":"OK",
  "data":{
    "order_states":[
      {
        "id":1,
        "name":"Принят",
        "state_type":"accepted"
      },
      {
        "id":2,
        "name":"В работе",
        "state_type":"in_work"
      },
      ...
    ]
  }
}

63. Запрос списка состояний экипажа

Метод: GET

Название запроса: get_crew_states_list

Параметры: нет

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
crew_states Массив Список состояний экипажа
• id Целое ИД состояния
• name Строка Название состояния
• state_type Строка Тип состояния. Может принимать значения:

• "waiting" — экипаж свободен

• "not_available" — экипаж не на линии

• "on_order" — экипаж на заказе

• "on_break" — экипаж на перерыве

Пример:

Запрос:
GET https://ip:port/common_api/1.0/get_crew_states_list HTTP/1.1
Signature: <...>

Ответ:
{
  "code":0,
  "descr":"OK",
  "data":{
    "crew_states":[
      {
        "id":1,
        "name":"Свободен",
        "state_type":"waiting"
      },
      {
        "id":2,
        "name":"Не работает",
        "state_type":"not_available"
      },
      ...
    ]
  }
}


64. Запрос глобальных атрибутов

Метод: GET

Название запроса: get_global_attributes

Параметры: нет.

Специальные возвращаемые коды: нет.

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
global_attributes Массив Массив значений глобальных атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• 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"
      }
    ]
  }
}


65. Изменение глобального атрибута

Метод: POST

Название запроса: update_global_attribute

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
id Целое ИД изменяемого атрибута
Необязательные параметры
bool_value true или false Значение, если тип атрибута «Логический»
num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
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":{}
}


66. Создание резервирования автомобиля

Метод: POST

Название запроса: create_car_reservation

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
car_id Целое ИД автомобиля
driver_id Целое ИД водителя
car_reservation_type_id Целое ИД типа резервирования
start_time ГГГГММДД или ГГГГММДДччммсс Дата или дата/время начала. Если указывается дата без времени, то планируемое время начала резервирования устанавливается исходя из времени начала, указанного в соответствующем типе резервирования
Необязательные параметры
finish_time ГГГГММДДччммсс Время окончания резервирования. Если не указано, рассчитывается на основании времени планируемого начала резервирования и продолжительности резервирования, указанного в соответствующем типе резервирования
comment Строка Комментарий
dont_check_intersection_with_reservations true или false Не проверять пересечение с резервированиями

Специальные возвращаемые коды:

Код Описание
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_time": "20201231",
  "comment": "COMMENT" 
}

Ответ:

{
  "code": 0,
  "descr": "OK",
  "data": {
    "car_reservation_id": 5
  }
}


67. Изменение резервирования автомобиля

Метод: POST

Название запроса: update_car_reservation_info

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
car_reservation_id Целое ИД резервирования
Необязательные параметры
car_id Целое ИД автомобиля
driver_id Целое ИД водителя
car_reservation_type_id Целое ИД типа резервирования
start_time ГГГГММДД или ГГГГММДДччммсс Дата или дата/время начала. Если указывается дата без времени, то планируемое время начала резервирования устанавливается исходя из времени начала, указанного в соответствующем типе резервирования
finish_time ГГГГММДДччммсс Время окончания резервирования. Если не указано, рассчитывается на основании времени планируемого начала резервирования и продолжительности резервирования, указанного в соответствующем типе резервирования
comment Строка Комментарий
dont_check_intersection_with_reservations true или false Не проверять пересечение с резервированиями

Специальные возвращаемые коды:

Код Описание
100 Не найден автомобиль
101 Не найден водитель
102 Не найден тип резервирования
103 Время начала резервирования должно быть меньше времени завершения
104 Автомобиль уже зарезервирован в указанный период времени
105 Водитель уже имеет зарезервированный автомобиль в указанный период времени
106 Не найдено резервирование автомобиля

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/update_car_reservation_info HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "car_reservation_id": 1,
  "car_id": 1,
  "driver_id": 1,
  "car_reservation_type_id": 1,
  "start_time": "20201231",
  "comment": "COMMENT" 
}

Ответ:

{
  "code": 0,
  "descr": "OK",
  "data": {}
}


68. Создание недоступности автомобиля

Метод: POST

Название запроса: create_car_inaccessibility

Параметры в формате 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
  }
}

69. Удаление недоступности автомобиля

Метод: POST

Название запроса: delete_car_inaccessibility

Параметры:

Параметр Тип Описание
Обязательные параметры
car_inaccessibility_id Целое ИД недоступности автомобиля

Специальные возвращаемые коды:

Код Описание
100 Недоступность автомобиля не найдена

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/delete_car_inaccessibility HTTP/1.1
Signature: <...>
Content-Type: application/x-www-form-urlencoded
Content-Length: <...>

car_inaccessibility_id=1

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{}
}

70. Создание недоступности водителя

Метод: POST

Название запроса: create_driver_inaccessibility

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
driver_id Целое ИД водителя
driver_inaccessibility_type_id Целое ИД типа недоступности
start_time ГГГГММДДччммсс Время начала
Необязательные параметры
finish_time ГГГГММДДччммсс Время завершения
comment Строка Комментарий

Специальные возвращаемые коды:

Код Описание
100 Не найден водитель
101 Не найден тип недоступности
102 Время начала недоступности должно быть меньше времени завершения

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
driver_inaccessibility_id Целое ИД недоступности водителя

Пример:

Запрос:
POST https://ip:port/common_api/1.0/create_driver_inaccessibility HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "driver_id": 1,
  "driver_inaccesibility_type_id": 1,
  "start_time": "20201231235959",
  "finish_time": "20210101050000",
  "comment": "COMMENT" 
}

Ответ:

{
  "code": 0,
  "descr": "OK",
  "data": {
    "driver_inaccessibility_id": 5
  }
}

71. Удаление недоступности водителя

Метод: POST

Название запроса: delete_driver_inaccessibility

Параметры:

Параметр Тип Описание
Обязательные параметры
driver_inaccessibility_id Целое ИД недоступности водителя

Специальные возвращаемые коды:

Код Описание
100 Недоступность водителя не найдена

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/delete_driver_inaccessibility HTTP/1.1
Signature: <...>
Content-Type: application/x-www-form-urlencoded
Content-Length: <...>

driver_inaccessibility_id=1

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{}
}

72. Вызвать системное событие

Метод: POST

Название запроса: run_system_event

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
system_event_id Целое ИД системного события с типом "По запросу CommonAPI". Если не передан, то system_event_id будет определен исходя из переданного кода системного события. Обязательно должен передаваться system_event_id или system_event_code
system_event_code Строка Код системного события с типом "По запросу CommonAPI". Обязательно должен передаваться system_event_id или system_event_code
Необязательные параметры
Произвольный параметр любой В запросе можно передавать дополнительные произвольные параметры с любыми названиями и значениями. Эти параметры могут использоваться в системном событии. Зарезервированный параметр "json_data": может быть любого типа, в т.ч. объект или массив, внутри которого могут быть в т.ч. вложенные объекты и массивы.
wait_for_completion true или false Признак необходимости ожидать завершения действий системного события.

Специальные возвращаемые коды:

Код Описание
100 У системного события тип не "По запросу CommonAPI"
101 Системное событие не найдено
102 Системное событие не активно

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
Произвольный параметр любой Выходные параметры, заданные скриптом. Зарезервированный параметр "json_data": может быть любого типа, в т.ч. объект или массив, внутри которого могут быть в т.ч. вложенные объекты и массивы.

Пример:

Запрос:
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",
  "json_data": {
    "aaa":"bbb",
    "ccc":"ddd" 
  } 
}

Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{
    "custom_param_1": true,
    "custom_param_2": 123,
    "json_data": {
      "aaa":"bbb",
      "ccc":"ddd" 
    }
  }
}

73. Проверить штраф клиента за отмену заказа

Метод: GET

Название запроса: check_cancel_order_penalty

Параметры в формате 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
  }
}

74. Запрос трека экипажа

Метод: GET

Название запроса: get_crew_track

Параметры:

Параметр Тип Описание
Обязательные параметры
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
      }
    ]
  }
}

75. Создание фиксированной смены водителя

Метод: POST

Название запроса: create_fixed_driver_shift

Параметры:

Параметр Тип Описание
Обязательные параметры
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
  }
}

76. Изменение фиксированной смены водителя

Метод: POST

Название запроса: update_fixed_driver_shift_info

Параметры:

Параметр Тип Описание
Обязательные параметры
fixed_driver_shift_id Целое ИД фиксированной смены водителя
Необязательные параметры
driver_id Целое ИД водителя
start_time ГГГГММДДччммсс Время начала
finish_time ГГГГММДДччммсс Время завершения

Специальные возвращаемые коды:

Код Описание
100 Не найден водитель
101 Время начала фиксированной смены должно быть меньше времени завершения
102 Создаваемая смена пересекается по времени с уже существующей сменой данного водителя
103 Не найдена фиксированная смена водителя

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/update_fixed_driver_shift_info HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "fixed_driver_shift_id": 22,
  "driver_id": 12,
  "start_time": "20221231235959",
  "finish_time": "20230101050000"
}

Ответ:

{
  "code": 0,
  "descr": "OK",
  "data": {}
}

77. Удаление фиксированной смены водителя

Метод: POST

Название запроса: delete_fixed_driver_shift

Параметры:

Параметр Тип Описание
Обязательные параметры
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":{}
}

78. Создание путевого листа

Метод: POST

Название запроса: create_way_bill

Параметры:

Параметр Тип Описание
Обязательные параметры
start_time ГГГГММДДччммсс Время начала
finish_time ГГГГММДДччммсс Время завершения
driver_id Целое ИД водителя
car_id Целое ИД автомобиля
Необязательные параметры
number Строка Номер путевого листа
comment Строка Комментарий

Специальные возвращаемые коды:

Код Описание
100 Нет лицензии на использование путевых листов
101 Не найден водитель
102 Не найден автомобиль

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
way_bill_id Целое ИД созданного путевого листа

Пример:

Запрос:
POST https://ip:port/common_api/1.0/create_way_bill HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "number": "api_123",
  "start_time": "20230508000000",
  "finish_time": "20230509000000",
  "driver_id": 123,
  "car_id": 123,
  "comment": "Комментарий"
}

Ответ:

{
  "code": 0,
  "descr": "OK",
  "data": {
    "way_bill_id": 5
  }
}

79. Изменение путевого листа

Метод: POST

Название запроса: update_way_bill_info

Параметры:

Параметр Тип Описание
Обязательные параметры
way_bill_id Целое ИД путевого листа
Необязательные параметры
start_time ГГГГММДДччммсс Время начала
finish_time ГГГГММДДччммсс Время завершения
driver_id Целое ИД водителя
car_id Целое ИД автомобиля
number Строка Номер путевого листа
comment Строка Комментарий

Специальные возвращаемые коды:

Код Описание
100 Нет лицензии на использование путевых листов
101 Не найден водитель
102 Не найден автомобиль
103 Не найден путевой лист

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/update_way_bill_info HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "way_bill_id": 55,
  "number": "api_123",
  "start_time": "20230508000000",
  "finish_time": "20230509000000",
  "driver_id": 123,
  "car_id": 123,
  "comment": "Комментарий"
}

Ответ:

{
  "code": 0,
  "descr": "OK",
  "data": {}
}

80. Создание осмотра по путевому листу

Метод: POST

Название запроса: create_way_bill_check

Параметры:

Параметр Тип Описание
Обязательные параметры
way_bill_id Целое ИД путевого листа (должен быть задан либо ИД либо номер)
way_bill_number Строка Номер путевого листа (должен быть задан либо ИД либо номер)
kind Строка Тип осмотра ("med/tech")
user_name Строка Имя пользователя
success true или false Результат осмотра
Необязательные параметры
number Строка Номер осмотра
comment Строка Комментарий

Специальные возвращаемые коды:

Код Описание
100 Нет лицензии на использование путевых листов
101 Не найден путевой лист

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/create_way_bill_check HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "way_bill_id": 123,
  "number": "api_med_123",
  "kind": "med",
  "user_name": "Имя",
  "success": true,
  "comment": "Комментарий"
}

Ответ:

{
  "code": 0,
  "descr": "OK",
  "data": {}
}

81. Запрос информации о заявке спецтехники

Метод: GET

Название запроса: get_order_bundle_info

Параметры:

Параметр Тип Описание
Обязательные параметры
order_bundle_id Целое ИД заявки спецтехники
Необязательные параметры
fields Строка Список возвращаемых полей через запятую.

Специальные возвращаемые коды:

Код Описание
100 Нет лицензии на использование спецтехники
101 Заявка спецтехники не найдена

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
order_bundle_id Целое ИД заявки спецтехники
order_bundle_type_id Целое ИД типа заявки спецтехники
state Строка Состояние заявки на спецтехнику. Может принимать значения:
- "new" — новая заявка
- "confirmed" — заявка подтверждена
- "completed" — заявка выполнена
start_time ГГГГММДДччммсс Время начала
addresses Массив Массив адресов заявки
• address Строка Адрес подачи
• lat Дробное Широта
• lon Дробное Долгота
client_id Целое ИД клиента
client_employee_id Целое ИД заказчика
phone Строка Телефон
orders Массив Массив заказов заявки спецтехники
• order_id Целое ИД заказа
duration Целое Длительность заявки спецтехники, в часах
priority Целое Приоритет
fixed_priority true или false Фиксированный приоритет (признак того, что приоритет задан вручную)
comment Строка Комментарий
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Пример:

Запрос:
GET https://ip:port/common_api/1.0/get_order_bundle_info?order_bundle_id=1 HTTP/1.1
Signature: <...>

Ответ:

{
  "code":0,
  "descr":"OK",
  "data": {
    "order_bundle_id":13,
    "order_bundle_type_id":4,
    "state":"completed",
    "client_id":175,
    "client_employee_id":554,
    "phone":"+994124657082",
    "start_time":"20240307183400",
    "duration":4,
    "priority":150,
    "fixed_priority":false,
    "comment":"Comments",
    "attribute_values": [
      {
        "id":5,
        "bool_value":true
      },
      {
        "id":12,
        "bool_value":true
      }
    ],
    "addresses": [
      {
        "address":"Tufandag Hotel Gabala",
        "lat":56,
        "lon":54
      },
      {
        "address":"Home, 12",
        "lat":57,
        "lon":55
      }
    ],
    "orders": [
      {
        "order_id":1866484
      }
    ]
  }
}

82. Удаление заявки спецтехники

Метод: POST

Название запроса: delete_order_bundle

Параметры:

Параметр Тип Описание
Обязательные параметры
order_bundle_id Целое ИД заявки спецтехники

Специальные возвращаемые коды:

Код Описание
100 Нет лицензии на использование спецтехники
101 Заявка спецтехники не найдена

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/delete_order_bundle HTTP/1.1
Signature: <...>
Content-Type: application/x-www-form-urlencoded
Content-Length: <...>

order_bundle_id=1


Ответ:

{
  "code":0,
  "descr":"OK",
  "data":{}
}

83. Запрос текущих заявок спецтехники

Метод: GET

Название запроса: get_current_order_bundles

Параметры:

Параметр Тип Описание
Необязательные параметры
state_type Строка Тип состояния заявки. Может принимать значения:
- "new" — новые заявки
- "confirmed" — подтвержденные заявки
start_time ГГГГММДДччммсс Фильтр на время начала заявки, начальная дата.
finish_time ГГГГММДДччммсс Фильтр на время начала заявки, конечная дата.

Специальные возвращаемые коды:

Код Описание
100 Нет лицензии на использование спецтехники

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
order_bundles Массив Массив заявок на спецтехнику
• order_bundle_id Целое ИД заявки спецтехники
• order_bundle_type_id Целое ИД типа заявки спецтехники
• state Строка Состояние заявки на спецтехнику. Может принимать значения:
- "new" — новая заявка
- "confirmed" — заявка подтверждена
- "completed" — заявка выполнена
• start_time ГГГГММДДччммсс Время начала
• addresses Массив Массив адресов заявки
• • address Строка Адрес подачи
• • lat Дробное Широта
• • lon Дробное Долгота
• client_id Целое ИД клиента
• client_employee_id Целое ИД заказчика
• phone Строка Телефон
• orders Массив Массив заказов заявки спецтехники
• • order_id Целое ИД заказа
• duration Целое Длительность заявки спецтехники, в часах
• priority Целое Приоритет
• fixed_priority true или false Фиксированный приоритет (признак того, что приоритет задан вручную)
• comment Строка Комментарий
• attribute_values Массив Массив значений атрибутов
• • id Целое Идентификатор атрибута
• • bool_value true или false Значение, если тип атрибута «Логический»
• • num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• • str_value Строка Значение, если тип атрибута «Строка»

Пример:

Запрос:
GET https://ip:port/common_api/1.0/get_current_order_bundles?start_time=20240305000000&finish_time=20240310000000&state_type=new HTTP/1.1
Signature: <...>

Ответ:

{
  "code":0,
  "descr":"OK",
  "data": {
    "order_bundles": [
      {
        "order_bundle_id":9,
        "order_bundle_type_id":2,
        "state":"new",
        "client_id":5680,
        "client_employee_id":77,
        "phone":"994125651121",
        "start_time":"20240308182933",
        "duration":2,
        "priority":100,
        "fixed_priority":true,
        "comment":"Редактор2",
        "attribute_values": [
          {
            "id":5,
            "bool_value":true
          },
          {
            "id":12,
            "bool_value":true
          }
        ],
        "addresses": [
          {
            "address":"Новый адрес",
            "lat":78,
            "lon":78
          },
          {
            "address":"Новый адрес 3",
            "lat":54,
            "lon":55
          }
        ],
        "orders": []
      }, 
      {
        "order_bundle_id":12,
        "order_bundle_type_id":3,
        "state":"new",
        "client_id":5680,
        "client_employee_id":55,
        "phone":"994125651121",
        "start_time":"20240308172515",
        "duration":33,
        "priority":44,
        "fixed_priority":true,
        "comment":"коммент",
        "attribute_values": [],
        "addresses": [
          {
            "address":"Адрес подачи",
            "lat":123,
            "lon":123
          },
          {
            "address":"Адрес назначения",
            "lat":123,
            "lon":123
          }
        ],
        "orders": []
      }
    ]
  }
}

84. Создание заявки спецтехники

Метод: POST

Название запроса: create_order_bundle

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
client_id Целое ИД клиента. Если будет передан клиент, не имеющий собственного счета, то он будет подставляться в поле "Заказчик", а в поле "Клиент" подставится его вышестоящее подразделение, имеющее свой счет.
order_bundle_type_id Целое ИД типа заявки спецтехники
start_time ГГГГММДДччммсс Время начала заявки спецтехники
addresses Массив Массив адресов. Первый элемент — адрес подачи(обязательно), последний — адрес назначения, между ними — остановки.
• address Строка Адрес
• lat Дробное Широта
• lon Дробное Долгота
Необязательные параметры
client_employee_id Целое ИД сотрудника, используется только если передали client_id
duration Целое Длительность. Если не передали, то в новой заявке длительность будет взята из типа заявки.
priority Целое Приоритет. Если не передали, то приоритет берется из типа заявки.
fixed_priority true или false Признак того, что приоритет задан вручную
comment Строка Комментарий
attribute_values Массив Массив значений атрибутов
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Специальные возвращаемые коды:

Код Описание
100 Нет лицензии на использование спецтехники
103 Тип заявки спецтехники с ИД=ID не найден
104 Атрибут с ИД=ID не найден
105 Атрибут с ИД=ID не соответствует настройкам типа заявки
106 Клиент с ИД=ID не найден
107 Клиент с ИД=ID не имеет доступ к заявкам спецтехники
108 Клиент с ИД=ID не имеет доступ к типу заявки с ИД=ID
109 Клиент с ИД=ID заблокирован
110 Клиент с ИД=ID и его предки не имеют собственного счета
111 Сотрудник с ИД=ID не найден
112 Сотрудник с ИД=ID заблокирован

Возвращаемые данные в случае успешного выполнения запроса:

Параметр Тип Описание
order_bundle_id Целое ИД созданной заявки

Пример:

Запрос:
POST https://ip:port/common_api/1.0/create_order_bundle HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
    "start_time": "20240312153354",
    "client_id": 5680,
    "client_employee_id": 13431,
    "order_bundle_type_id": 4,
    "duration": 4,
    "priority": 100,
    "fixed_priority": true,
    "comment": "Комментарий к заявке",
    "addresses": [
        {
            "address": "Адрес подачи",
            "lat": 45.334,
            "lon": 56.554
        }, 
        {
            "address": "Адрес остановки",
            "lat": 45.776,
            "lon": 56.998
        }, 
        {
            "address": "Адрес назначения",
            "lat": 45.986,
            "lon": 56.9776
        }
    ],
    "attribute_values": [
        {
            "id": 5,
            "bool_value": true
        }, 
        {
            "id": 39,
            "num_value": 20
        }
    ]
}

Ответ:

{
  "code":0,
  "descr":"OK",
  "data": {
    "order_bundle_id":34
  }
}

85. Изменение заявки спецтехники

Метод: POST

Название запроса: update_order_bundle_info

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
order_bundle_id Целое ИД редактируемой заявки спецтехники
Необязательные параметры
client_id Целое ИД клиента, если будет передан клиент, не имеющий собственного счета, то он будет подставляться в поле "Заказчик", а в поле "Клиент" подставится его вышестоящее подразделение, имеющее свой счет. Если же переданный клиент имеет свой счет, то он будет подставляться в поле client_id, а поле client_employee_id будет очищаться. Можно менять, только если заявка в статусе "Новая"
client_employee_id Целое ИД сотрудника. Переданный ИД сотрудника должен быть подчиненным старого ИД клиента в заявке, если не передавали новый ИД клиента, либо подчиненным нового ИД клиента, если передали новый ИД клиента. Можно менять, только если заявка в статусе "Новая"
start_time ГГГГММДДччммсс Время начала. Можно менять, только если заявка в статусе "Новая"
duration Целое Длительность. Можно менять, только если заявка в статусе "Новая"
priority Целое Приоритет. Можно менять, только если заявка в статусе "Новая"
fixed_priority true или false Признак того, что приоритет задан вручную. Можно менять, только если заявка в статусе "Новая"
addresses Массив Массив адресов. Первый элемент — адрес подачи(обязательно), последний — адрес назначения, между ними — остановки. Можно менять, только если заявка в статусе "Новая"
• address Строка Адрес
• lat Дробное Широта
• lon Дробное Долгота
comment Строка Комментарий
attribute_values Массив Массив значений атрибутов. Можно менять, только если заявка в статусе "Новая"
• id Целое Идентификатор атрибута
• bool_value true или false Значение, если тип атрибута «Логический»
• num_value Дробное Значение, если тип атрибута:
- «Число» (непосредственное значение)
- «Число (выбор из списка)» (непосредственное значение выбранного элемента списка)
- «Перечисляемый» (значение выбранного элемента перечисления)
- «Дата» и «Дата/время» (Unix-время, всегда целое число)
• str_value Строка Значение, если тип атрибута «Строка»

Специальные возвращаемые коды:

Код Описание
100 Нет лицензии на использование спецтехники
101 Заявка спецтехники с ИД=ID не найдена
102 Поле можно менять, только если заявка в статусе "Новая"
104 Атрибут с ИД=ID не найден
105 Атрибут с ИД=ID не соответствует настройкам типа заявки
106 Клиент с ИД=ID не найден
107 Клиент с ИД=ID не имеет доступ к заявкам спецтехники
108 Клиент с ИД=ID не имеет доступ к типу заявки с ИД=ID
109 Клиент с ИД=ID заблокирован
110 Клиент с ИД=ID и его предки не имеют собственного счета
111 Сотрудник с ИД=ID не найден
112 Сотрудник с ИД=ID заблокирован

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/update_order_bundle_info HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
    "order_bundle_id": 23,
    "start_time": "20240312153354",
    "client_id": 5680,
    "client_employee_id": 13431,
    "duration": 4,
    "priority": 150,
    "fixed_priority": true,
    "comment": "Комментарий к измененной заявке",
    "addresses": [
        {
            "address": "Новый адрес подачи",
            "lat": 44.986,
            "lon": 55.455
        }
    ],
    "attribute_values": [
        {
            "id": 5,
            "bool_value": null
        }, 
        {
            "id": 39,
            "num_value": null
        }, 
        {
            "id": 8,
            "bool_value": true
        }
    ]
}

Ответ:

{
  "code":0,
  "descr":"OK",
  "data": {}
}

86. Удаление техники из заявки спецтехники

Метод: POST

Название запроса: clear_order_bundle_vehicles

Параметры в формате JSON:

Параметр Тип Описание
Обязательные параметры
order_bundle_id Целое ИД заявки спецтехники

Специальные возвращаемые коды:

Код Описание
100 Нет лицензии на использование спецтехники
101 Заявка спецтехники не найдена
102 Удалять технику можно только из заявки в статусе "Подтверждена"
103 Нельзя очищать технику в заявке, если уже есть заказы по заявке в статусе "Выполнен" или "В работе"

Возвращаемые данные в случае успешного выполнения запроса: нет.

Пример:

Запрос:
POST https://ip:port/common_api/1.0/clear_order_bundle_vehicles HTTP/1.1
Signature: <...>
Content-Type: application/json
Content-Length: <...>

{
  "order_bundle_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
3API отключено в настройках модуля TM API в ТМ
4Не совпадает секретный ключ
5Неподдерживаемая версия API
6Неизвестное название запроса
7Неверный тип запроса GET
8Не хватает входного параметра (в доп. информации ответа будет название отсутствующего параметра)
9Некорректный входной параметр (в доп. информации ответа будет название некорректного параметра)
10Внутренняя ошибка обработки запроса

Описание запросов

1. Запрос информации по номеру телефона

Метод: 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_PRIOR0 или 1 (false или true)Признак предварительного заказа
IS_PRIZE0 или 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ЦелоеВремя оставшееся до подачи в минутах
SOUND_COLORСтрокаЗапись с информацией о цвете
SOUND_MARKСтрокаЗапись с информацией о марке автомобиля
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_LOCKED0 или 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>

2. Запрос информации по ИД заказа

Метод: GET

Название запроса: get_info_by_order_id

Параметры:

ПараметрТипОписание
Обязательные параметры
ORDER_IDЦелоеИД заказа
FIELDSСтрокаСписок полей, которые необходимо вернуть. Поля перечисляются через символ "-"
signatureСтрокаПоле для проверки секретного ключа

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса: зависит от того какие поля были переданы в поле fields.

ПараметрТипОписание
DRIVER_TIMECOUNTСтрока, <= 16 символовВремя до подачи в минутах, указанное водителем
SOUND_COLORСтрокаЗапись с информацией о цвете
CAR_MARKСтрокаМарка автомобиля
CAR_COLORСтрокаЦвет автомобиля
GOSNUMBERСтрокаГосударственный номер автомобиля
SOUND_MARKСтрокаЗапись с информацией о марке автомобиля
CREW_GROUP_IDЦелоеИД группы экипажа (значение из карты заказа)
FIRST_CREW_GROUP_IDЦелоеИД первой группы экипажа
IS_PRIOR0 или 1 (false или true)Признак предварительного заказа
IS_PRIZE0 или 1 (false или true)Признак призового заказа
DISCOUNTEDSUMMСтрокаСумма заказа с учетом всех скидок
DRIVER_PHONEСтрока, <= 16 символовНомер телефона водителя
CATEGORYIDЦелоеИД категории телефона
SOURCE_TIMECOUNTЦелоеВремя до подачи в минутах
ORDER_COORDSСтрокаКоординаты места подачи. Порядок координат: долгота адреса, широта адреса.
CREW_COORDSСтрокаКоординаты назначенного экипажа. Порядок координат: долгота адреса, широта адреса.
ORDER_STATEЦелоеИД состояния заказа
MARKET_TYPEЦелоеТип биржи заказов (2 — Яндекс, 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>

3. Смена состояния заказа

Метод: 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>

4. Запись пути к файлу разговора в базу данных

Метод: POST

Название запроса: create_record_link

Параметры:

ПараметрТипОписание
Обязательные параметры
RECORD_DATEДДММГГГГччммссДата записи
RECORD_LENGTHЦелоеПродолжительность записи (в секундах)
CALL_IDСтрока, <= 60 символовИД звонка (необязателен, если указан PHONE)
PHONEСтрока, <= 16 символовНомер телефона (необязателен, если указан CALL_ID)
FILE_PATHСтрока, <=255 символовПуть к файлу записи
CALL_TYPE0 или 10 — Исходящий, 1 — Входящий
signatureСтрокаПоле для проверки секретного ключа

Специальные возвращаемые коды: нет.

Возвращаемые данные в случае успешного выполнения запроса

ПараметрТипОписание
RECORD_IDЦелоеИД созданной записи

Пример:

Запрос:

POST https://ip:port/tm_tapi/1.0/create_record_link 
Content-Type: application/x-www-form-urlencoded
Content-Length: 185

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&signature=56851c4e8d2d4bb9ba615615f76ad7f7

Ответ:
<response>
  <code>0</code>
  <descr>OK</descr>
  <data>
    <RECORD_ID>25</RECORD_ID>
  </data>
</response>

5. Создать новый заказ

Метод: 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_COUNTRY0 или 1 (false или true)Признак междугороднего заказа
IS_PRIOR0 или 1 (false или true)Признак предварительного заказа
PRIZE0 или 1 (false или true)Признак призового заказа
NOTEСтрока, <=80 символовПримечание
BONUSPOINTДробноеБонусные баллы, начисленные водителю за заказ
DISTANCEДробноеКилометраж по городу (в километрах)
HOURLY_LENЦелоеДлительность исполнения почасового заказа (в минутах)
HOURLY_STARTГГГГММДДччммссДата начала отсчета при почасовом заказе
HOURLY_PAY0 или 1 (false или true)Признак почасового заказа
PHONE_TO_DIALСтрока, <=16 символовНомер телефона для отзвона по заказу
FROMBORDER0 или 1 (false или true)Признак заказа "с бордюра"
WAITING_STARTГГГГММДДччммссДата начала ожидания заказчика водителем
WAITING_LENGTHЦелоеОбщая длина периода ожидания заказчика водителем (в минутах)
BACKFREEЦелоеПризнак применения скидки в 50% на обратный путь
INPUTTIMEГГГГММДДччммссДата принятия заказа (от даты создания заказа отличается тем, что может быть задана пользователем)
MONEY_RECEIVE0 или 1 (false или true)Подтверждение принятия денег наличными
NOTIFY_BEFOREЦелоеПериод времени, за который пользователь оповещается о наступлении даты подачи
WANTCREWIDЦелоеИД желаемого экипажа
DISTANCE_COUNTRYДробноеКилометраж за границами города (в километрах)
DISTANCE_CHECK0 или 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>

6. Поиск улицы в базе

Метод: POST

Название запроса: street_search

Параметры:

ПараметрТипОписание
Обязательные параметры
PHONEСтрока, <= 16 символовНомер телефона
CALL_IDЦелоеИД звонка
VOICE_STREETСтрока, <= 60 символовНазвание улицы или пункта, полученное через преобразование голоса в текст
signatureСтрокаПоле для проверки секретного ключа

Специальные возвращаемые коды: нет

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
CALL_IDЦелоеИД звонка
PHONEСтрока, <= 16 символовНомер телефона
STREET_FOUND0 или 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>

7. Смена состояния заказа по результату автодозвона

Метод: POST

Название запроса: set_request_state

Параметры:

ПараметрТипОписание
Обязательные параметры
STATE_IDЦелоеCостояние заказа до отзвона
PHONE_TYPE0 или 1Признак, что звонили клиенту (если 0 - водителю)
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>

8. Соединить клиента и водителя

Метод: 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>

9. Количество свободных экипажей на линии

Метод: GET

Название запроса: get_free_crews_count

Параметры:

ПараметрТипОписание
Обязательные параметры
signatureСтрокаПоле для проверки секретного ключа
Необязательные параметры
crew_group_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>

10. Запрос пользователя по логину софтфона

Метод: 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>

11. Установить режим «Перерыв» для линий софтфона

Метод: 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>

12. Запрос телефонов водителя по позывному экипажа

Метод: 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>

13. Запрос информации о ключе защиты

Метод: GET

Название запроса: get_key_info

Параметры: нет.

Специальные возвращаемые коды: нет.

Возвращаемые данные в случае успешного выполнения запроса:

ПараметрТипОписание
company_nameСтрокаНаименование организации
company_idЦелоеИД организации
tm_server_license_countЦелоеКоличество лицензий для TMServer
tm_license_countЦелоеКоличество лицензий для TM
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>

Все настройки в разделе "Настройки и руководство"