Биржа - это сервис, для обмена заказами, как между организациями такси, так и организациями смежных направлений.
Участник биржи - организация, выразившая согласие с условиями сервиса и предоставившая информацию о себе достаточную для заполнения биржевого профиля.
API биржи - http://api.exchange.cloudtaxi.ru. Набор HTTP методов и HTTP уведомлений реализующих схему обмена заказами.
Контрольная панель, Панель управления биржи - веб-приложение, для контроля и наблюдения, участником биржи за процессами, связанными с обменом заказов. Доступ к панели управления возможен только для зарегистрированных участников биржи с персональным сертификатом доступа.
Биржевой профиль, Профиль участника биржи - формальное представление участника биржи во внутренней структуре. Профиль участника заполняется технической поддержкой компании СКАТ если участник заранее предоставил достаточную информацию, либо самим участником биржи в контрольной панели.
Баланс участника биржи - участник биржи должен иметь внутренний счет в той валюте, в которой, происходит обмен. Покупка заказов возможна только при положительном балансе. Продажа возможна независимо от состояния баланса.
Продавец заказа - Организация, Участник биржи, Биржевой профиль, Служба - все эти сущности могут быть названы продавцами заказов в зависимости от контекста.
Роль продавца - установка стоимости заказов, настройка распределения по участникам, отправка заказа на биржу. После исполнения заказа баланс соответствующего биржевого профиля будет пополнен на указанную стоимость.
Исполнитель заказа - Организация, Участник биржи, Биржевой профиль, Служба, Водитель - все эти сущности могут быть названы исполнителями заказов в зависимости от контекста. Роль исполнителя - установка условий покупки, указание доверенных источников, покупка и исполнение заказа.
Сервер - Сервис способный общаться с биржей согласно API биржи в двухстороннем формате.
Служба - Логическая единица сервера, позволяющая группировать и таргетировать заказы. Заказ на бирже может быть передан только от имени какой-то службы в другую службу.
Комиссия биржи - Биржа забирает определенный размер комиссии за каждую операцию покупки/продажи между её участниками. Размер комиссии не регулируется данным документом.
Персональный сертификат доступа - PKCS#12 сертификат для установки в браузер. Служит для идентификации участника биржи в контрольной панели. Выдается технической поддержкой компании СКАТ. Биржа доверяет только сертификатам издателя "SKAT root certification authority (CA)" и его промежуточным центрам сертификации.
Условные обозначения
>>> - направление запроса
Server >>> Exchange - Сервер оправляет запрос на биржу
Server <<< Exchange - Биржа отправлет запрос на сервер
Server >>> Exchange : POST /session
В ответ биржа вернет токен, который не имеет срока действия, но привязан к серверу, для которого он выдан. На другом сервере этот токен использовать невозможно.
Регистрация заказа на бирже
После авторизации, сервер продавца может отправлять заказ на биржу. У заказа обязательно должны быть указаны координаты начала маршрута.
Server >>> Exchange : POST /order
Биржа в ответ вернет внутренний ID заказа и поставит его в очередь обработки. Если с заказом "всё хорошо", то биржа отправит
уведомление на сервер, о том, что заказ успешно зарегистрирован:
Server <<< Exchange : POST /on/order/registered
иначе, она отправит уведомление о невозможности регистрации данного заказа
Server <<< Exchange : POST /on/order/refusedО заказе уведомлены другие участники
После успешной регистрации заказа, биржа начнет уведомлять всех заинтересованных участников рассылая им уведомления на /on/order/received. После того как она
завершит этот процесс на сервер продавца придет новое уведомление
Server <<< Exchange : POST /on/order/accepted
Теперь остается ждать, когда один из водителей не примет заказ
Заказ в исполнении
Когда кто-то берёт заказ на бирже в исполнение, она отправляет уведомление:
Server <<< Exchange : POST /on/order/taken
Внутри уведомления будут переданы данные о водителе. Продавец должен уведомить(СМС, телефония, push...) пассажира, что на его заказ назначен водитель.
Дальше биржа будет присылать изменения статуса заказа
Server <<< Exchange : POST /on/order/updated
И в заключении, когда заказ будет выполнен, биржа отправит:
Server <<< Exchange : POST /on/order/completed
0 - NOT_REGISTERED - Заказ сохранен в базе данных, но еще не обработан сервером;
1 - SENT_TO_DRIVER - Заказ был отправлен водителю;
2 - CONFIRMED - Водитель подтвердил заказ;
3 - AWAITING_CLIENT - Водитель ожидает клиента;
4 - IN_PROCESS - Заказ в исполнении;
5 - RECEIVED_BY_DRIVER - Водитель получил заказ;
7 - AWAITING_CLIENT_LONG - Водитель ожидает клиента. Время бесплатного ожидания уже истекло;
8 - FREE_LONG - Заказ остается свободным (не был взят в исполнение ни одним водителем) слишком долго;
9 - FREE - Свободный заказ. Любой водитель может взять его в исполнение;
10 - CONFIRMED_CLIENT_NOTIFIED - Клиент был уведомлен что заказ взят водителем;
11 - AWAITING_CLIENT_NOTIFIED - Клиент был уведомлен что его ожидает водитель;
16 - NO_REPLY - Клиент не отвечает на звонки. Требуется действие диспетчера;
19 - CANCELLED_BY_CLIENT - Заказ был отменен клиентом. Требуется действие диспетчера;
51 - PREORDER_ATTACHED - Предварительный заказ закреплен за водителем;
87 - AWAITING_PAYMENT - Поездка завершена, но платеж еще не поступил. (Безналичная оплата);
88 - REJECTED_BY_DRIVER Заказ был отклонен водителем. Требуется действите диспетчера;
89 - AWAITING_COMPLETION - Поездка завершена. Требуется действие диспетчера;
91 - DONE_REMOVED - Заказ был удален из обработки;
92 - DONE_NOT_PAID - Заказ был удален из обработки с причиной "Клиент не оплатил";
93 - DONE_NO_CARS - Заказ был удален из обработки с причиной "Нет машин";
94 - DONE_CALL_FAILED - Заказ был удален из обработки с причиной "Клиент не отвечает на звонки";
95 - DONE_CANCELLED - Заказ был удален из обработки с причиной "Клиент отказался";
95 - DONE_OPERATOR_REJECTED - Заказ был удален из обработки с причиной "Диспетчер отменил заказ";
99 - DONE_DRIVER_REJECTED - Заказ был удален из обработки с причиной "Водитель отменил заказ";
100 - DONE_SUCCESSFUL - Заказ завершен успешно и удален из обработки;
Псевдостатусы
NOT_DONE = [0..89]
DONE = [90..100]
DONE_NOT_SUCCESSFUL = [90..99]
Разрешенные переходы
Например: заказ из статуса 0 (NOT_REGISTERED) может перейти в SENT_TO_DRIVER, ORDER_ON_RADIO, PREORDER_FREE а также во FREE, DONE_REMOVED, DONE_NOT_PAID, DONE_NO_CARS, DONE_CALL_FAILED, DONE_CANCELLED, DONE_OPERATOR_REJECTED, DONE_DRIVER_REJECTED, DONE_SUCCESSFUL как псевдостатус NOT_DONE
NOT_REGISTERED: [],
SENT_TO_DRIVER: [NOT_REGISTERED, FREE, FREE_LONG, REJECTED_BY_DRIVER],
CONFIRMED: [SENT_TO_DRIVER, RECEIVED_BY_DRIVER],
AWAITING_CLIENT: [
CONFIRMED, BOUND, CONFIRMED_CLIENT_NOTIFIED, PREORDER_ATTACHED, PREORDER_ATTACHED_NOTIFIED,
PREORDER_CONFIRM_SUCCESSFUL
],
IN_PROCESS: [
AWAITING_CLIENT, AWAITING_CLIENT_NOTIFIED, AWAITING_CLIENT_LONG, CONFIRMED, BOUND,
CONFIRMED_CLIENT_NOTIFIED
],
RECEIVED_BY_DRIVER: [SENT_TO_DRIVER],
AWAITING_CLIENT_LONG: [AWAITING_CLIENT_NOTIFIED],
FREE_LONG: [FREE],
FREE: NOT_DONE,
CONFIRMED_CLIENT_NOTIFIED: [CONFIRMED],
AWAITING_CLIENT_NOTIFIED: [AWAITING_CLIENT],
ORDER_ON_RADIO: [NOT_REGISTERED, FREE, FREE_LONG],
PREORDER_FREE: [NOT_REGISTERED, PREORDER_ATTACHED, PREORDER_ATTACHED_NOTIFIED, PREORDER_CONFIRM_REQUESTED,
PREORDER_CONFIRM_SUCCESSFUL, PREORDER_CLIENT_CANCELLED, PREORDER_CONFIRM_REJECTED,
PREORDER_CONFIRM_TIMEOUT],
PREORDER_ATTACHED: [PREORDER_FREE],
PREORDER_ATTACHED_NOTIFIED: [PREORDER_ATTACHED],
PREORDER_CLIENT_CANCELLED: [PREORDER_FREE, PREORDER_ATTACHED, PREORDER_ATTACHED_NOTIFIED, PREORDER_CONFIRM_SUCCESSFUL,
PREORDER_CONFIRM_REQUESTED, PREORDER_CONFIRM_REJECTED, PREORDER_CONFIRM_TIMEOUT],
PREORDER_CONFIRM_REJECTED: [PREORDER_CONFIRM_REQUESTED],
PREORDER_CONFIRM_TIMEOUT: [PREORDER_CONFIRM_REQUESTED],
PREORDER_CONFIRM_SUCCESSFUL: [PREORDER_CONFIRM_REQUESTED],
PREORDER_CONFIRM_REQUESTED: [PREORDER_ATTACHED, PREORDER_ATTACHED_NOTIFIED],
BOUND: [FREE, FREE_LONG],
AWAITING_PAYMENT: [IN_PROCESS],
DONE_REMOVED: NOT_DONE,
DONE_NOT_PAID: NOT_DONE,
DONE_NO_CARS: NOT_DONE,
DONE_CALL_FAILED: NOT_DONE,
DONE_CANCELLED: NOT_DONE,
DONE_OPERATOR_REJECTED: NOT_DONE,
DONE_DRIVER_REJECTED: NOT_DONE,
DONE_SUCCESSFUL: NOT_DONE
Данные о водителе
Parameters
String id: Уникальный идентификатор водителя (id)Response
Object data:Object data.driver: Данные водителяString data.driver.id: Уникальный идентификатор водителя (id)String data.driver.callSign: Позывной (уникален внутри одногосервера)String data.driver.name: Полное имя (имя, отчество, фамилия)String data.driver.phone: ТелефонString data.driver.registrationNumber: Регистрационный номер автомобиляString data.driver.brand: Марка автомобиляString data.driver.model: Модель автомобиляString data.driver.modelCode: Код модели автомобиляString data.driver.color: Цвет автомобиляString data.driver.colorCode: Код цвета автомобиляString data.driver.carage: Год выпуска автомобиляString data.driver.connectBy: Метод подключения водителяInteger data.driver.carClass: Класс автомобиляInteger[] data.driver.options: Список опцийКлассы автомобилей
Response
Object data:Object[] data.classes: Классы автомобилейString data.classes.id: Уникальный идентификатор классаObject data.classes.name: Название класса(ключ - язык, значение - текст)Object[] data.classes.cars: Информация об автомобилях данного классаObject[] data.classes.cars.brand: Марка автомобиляObject[] data.classes.cars.model: Модель автомобиляObject[] data.classes.cars.year: Год выпуска автомобиляОпции автомобиля
Response
Object data:Object[] data.options: Опции автомобиляString data.options.id: Уникальный идентификатор опцииString data.options.name: Название опцииString data.options.type: Тип опции('general', 'extra')String data.options.access: Доступ(Набор значений через '|': 'all', 'driver', 'admin', 'operator')Список водителей
Parameters
json .: Параметры фильтрации. JSON в виде синтаксиса waterline передается внутри тела запроса. Информация о синтаксисе: https://github.com/balderdashy/waterline-docs/blob/master/queries/query-language.mdResponse
Object data:Object[] data.drivers: Список водителейString data.drivers.id: Уникальный идентификатор водителя (id)String data.drivers.callSign: Позывной (уникален внутри одногосервера)String data.drivers.name: Полное имя (имя, отчество, фамилия)String data.drivers.phone: ТелефонString data.drivers.registrationNumber: Регистрационный номер автомобиляString data.drivers.brand: Марка автомобиляString data.drivers.model: Модель автомобиляString data.drivers.modelCode: Код модели автомобиляString data.drivers.color: Цвет автомобиляString data.drivers.colorCode: Код цвета автомобиляString data.drivers.carage: Год выпуска автомобиляString data.drivers.connectBy: Метод подключения водителяInteger data.drivers.carClass: Класс автомобиляInteger[] data.drivers.options: Список опцийСписок участников биржи
Response
Object data:Object[] data.profiles: Список профилейString data.profiles.id: Уникальный идентификатор участникаString data.profiles.name: Имя участникаString data.profiles.details: Информация об участникеString data.profiles.email: Адрес электронной почты компанииString data.profiles.phone: Номер телефона диспетчерской таксопаркаObject data.profiles.country: СтранаObject data.profiles.country.name: НазваниеString data.profiles.country.name.en: Название на русскомString data.profiles.country.name.ru: Название на английском языкеObject data.profiles.location: МестоположениеObject data.profiles.location.name: НазваниеString data.profiles.location.name.en: Название на русскомString data.profiles.location.name.ru: Название на английском языкеFloat data.profiles.location.lat: ШиротаFloat data.profiles.location.lon: ДолготаObject data.profiles.currency: ВалютаObject data.profiles.code: Код по стандарту ISO 4217 (например RUB)Обновить состояние водителя на бирже
Parameters
Object meta:String meta.token: авторизационный билетObject data:String data.id: Биржевой идентификатор водителя-исполнителя заказаObject data.attributes: данные о водителеObject data.attributes.callSign: позывнойObject data.attributes.latitude: текущая координата - широтаObject data.attributes.longitude: текущая координата - долготаObject data.attributes.status: статус исполняемого заказаObject data.attributes.speed: текущая скоростьObject data.attributes.bearing: азимутError
Регистрация сессии
Parameters
Object data:String data.key: Response
Object data:String data.token: сессионный билет доступа к биржеString data.slaves: вторичные адреса биржи, к ним тоже можно отправлять запросыString data.trusted: список адресов которым должно быть обеспечено доверие со стороны клиента, участника биржиError
Отменить заказ
Parameters
Object data:String data.id: Биржевой идентификатор заказаInteger data.status: Статус, с которым отменился заказString data.reason: Текстовое описание причины отмены заказаResponse
Object data:Integer data.id: Идентификатор заказаError
Завершить заказ
Parameters
Object data:String data.id: Идентификатор заказаString data.attributes:String data.attributes.fare: Итоговая стоимость заказаString data.attributes.distance: дистанция пройденная водителем во время выполнения заказа(в метрах)Object data.attributes.time:Object data.attributes.time.completed: Время завершения заказа(таймстамп)Object data.attributes.time.standing: Общее время стоянки водителя во время выполнения заказаObject data.attributes.time.waiting: Общее время ожидания водителя во время выполнения заказаResponse
Object data:String data.id: Биржевой идентификатор заказаError
Получить информацию о заказе
Parameters
Object data:String data.id: Идентификатор заказа. Если передан данный параметр, то data содержит один объектString data.orders: Массив идентификаторов заказа. Если передан данный параметр, то data содержит массив объектовResponse
Object data: результатString data.type: тип данных("order")Object data.attributes: данные о заказеObject data.attributes.client: данные о клиентеString data.attributes.client.phone: номер телефонаString data.attributes.client.name: имя клиентаObject data.attributes.from: информация о начале маршрутаString data.attributes.from.street: улицаString data.attributes.from.house: домString data.attributes.from.porch: подъездFloat data.attributes.from.latitude: координата широтыFloat data.attributes.from.longitude: координата долготыObject data.attributes.to: конечная точка маршрутаString data.attributes.to.street: улицаString data.attributes.to.house: домString data.attributes.to.porch: подъездFloat data.attributes.to.latitude: координата широтыFloat data.attributes.to.longitude: координата долготыObject data.attributes.time: информация о времениISODateString data.attributes.time.registered: время регистрации заказаInteger data.attributes.carClass: Идентификатор класса автоFloat data.attributes.fare: стоимость заказаString data.attributes.note: примечание к заказуObject data.attributes.tariff: правила расчета стоимости - тарифString data.attributes.tariff.name: наименование тарифаString data.attributes.tariff.minFare: минимальная стоимость заказаString data.attributes.tariff.farePerKm: стоимоcть километраString data.attributes.tariff.secondFarePerKm: стоимоcть километра - втораяString data.attributes.tariff.secondFareStart: начало действия второй стоимости километра (км)String data.attributes.tariff.skipFirstKm: не считать первые километрыString data.attributes.tariff.timeUnitSize: единица времени(в минутах)String data.attributes.tariff.timeUnitFare: стоимость единицы времениString data.attributes.tariff.freeTime: не считать первые единицы времениString data.attributes.tariff.markupRatio: наценочный коэффициент в процентахString data.attributes.tariff.stationaryFare: стоимость одной минуты стоянкиString data.attributes.tariff.freeStationaryTime: не считать первые минуты стоянкиString data.attributes.tariff.enableAutoStationaryFare: автоматически включать стоянкуString data.attributes.tariff.freeWaitingTime: время бесплатного ожидания (мин)String data.attributes.tariff.waitingRate: стоимость ожидания (стоимость одной минуты)String data.attributes.tariff.changeoverSpeed: порог стоянки (км/ч)String data.attributes.tariff.trafficLightPause: светофорная паузаString data.attributes.tariff.roundTo: округлять доInteger data.attributes.tariff.roundType: тип округления(-1 - всегда вниз, 0 - по правилам арифметики, 1 - всегда вверх)String data.attributes.tariff.pickUp: посадкаString data.attributes.tariff.roundFareRealtime: округлять цену сразуString data.attributes.tariff.showMinFare: показывать минималкуObject data.attributes.service: Информация о службе-авторе заказаObject data.attributes.service.id: Идентификатор службы в системе автораArray data.attributes.service.extras: Доп услугиString data.attributes.service.extras.name: Имя услугиString data.attributes.service.extras.shortName: Сокращение для водителяFloat data.attributes.service.extras.price: Стоимость услугиArray data.attributes.service.extras.options: Список опций, привязанных к данной услугеArray data.attributes.service.extras.count: Количество. Если не передано - 1Array data.attributes.waypoints: Промежуточные точки заказаString data.attributes.waypoints.publicPlace: Название публичного места промежуточной точкиString data.attributes.waypoints.house: Номер дома промежуточной точкиString data.attributes.waypoints.street: Название улицы промежуточной точкиString data.attributes.waypoints.lat: Широта промежуточной точкиString data.attributes.waypoints.lon: Долгота промежуточной точкиString data.id: Биржевой идентификатор заказаError
Зарегистрировать заказ
Parameters
Object meta:String meta.token: авторизационный билетObject data:String data.id: исходный идентификатор существующего заказаString data.type: тип данных("order")Object data.attributes: данные о заказеObject data.attributes.client: данные о клиентеString data.attributes.client.phone: номер телефонаString data.attributes.client.name: имя клиентаObject data.attributes.from: информация о начале маршрутаString data.attributes.from.street: улицаString data.attributes.from.house: домString data.attributes.from.porch: подъездFloat data.attributes.from.latitude: координата широтыFloat data.attributes.from.longitude: координата долготыObject data.attributes.to: конечная точка маршрутаString data.attributes.to.street: улицаString data.attributes.to.house: домString data.attributes.to.porch: подъездFloat data.attributes.to.latitude: координата широтыFloat data.attributes.to.longitude: координата долготыObject data.attributes.time: информация о времениISODateString data.attributes.time.registered: время регистрации заказаInteger data.attributes.carClass: Идентификатор класса автоFloat data.attributes.fare: стоимость заказаString data.attributes.note: примечание к заказуObject data.attributes.tariff: правила расчета стоимости - тарифString data.attributes.tariff.name: наименование тарифаString data.attributes.tariff.minFare: минимальная стоимость заказаString data.attributes.tariff.farePerKm: стоимоcть километраString data.attributes.tariff.secondFarePerKm: стоимоcть километра - втораяString data.attributes.tariff.secondFareStart: начало действия второй стоимости километра (км)String data.attributes.tariff.skipFirstKm: не считать первые километрыString data.attributes.tariff.timeUnitSize: единица времени(в минутах)String data.attributes.tariff.timeUnitFare: стоимость единицы времениString data.attributes.tariff.freeTime: не считать первые единицы времениString data.attributes.tariff.markupRatio: наценочный коэффициент в процентахString data.attributes.tariff.stationaryFare: стоимость одной минуты стоянкиString data.attributes.tariff.freeStationaryTime: не считать первые минуты стоянкиString data.attributes.tariff.enableAutoStationaryFare: автоматически включать стоянкуString data.attributes.tariff.freeWaitingTime: время бесплатного ожидания (мин)String data.attributes.tariff.waitingRate: стоимость ожидания (стоимость одной минуты)String data.attributes.tariff.changeoverSpeed: порог стоянки (км/ч)String data.attributes.tariff.trafficLightPause: светофорная паузаString data.attributes.tariff.roundTo: округлять доInteger data.attributes.tariff.roundType: тип округления(-1 - всегда вниз, 0 - по правилам арифметики, 1 - всегда вверх)String data.attributes.tariff.pickUp: посадкаString data.attributes.tariff.roundFareRealtime: округлять цену сразуString data.attributes.tariff.showMinFare: показывать минималкуObject data.attributes.service: Информация о службе-авторе заказаObject data.attributes.service.id: Идентификатор службы в системе автораArray data.attributes.service.extras: Доп услугиString data.attributes.service.extras.name: Имя услугиString data.attributes.service.extras.shortName: Сокращение для водителяFloat data.attributes.service.extras.price: Стоимость услугиArray data.attributes.service.extras.options: Список опций, привязанных к данной услугеArray data.attributes.service.extras.count: Количество. Если не передано - 1Array data.attributes.waypoints: Промежуточные точки заказаString data.attributes.waypoints.publicPlace: Название публичного места промежуточной точкиString data.attributes.waypoints.house: Номер дома промежуточной точкиString data.attributes.waypoints.street: Название улицы промежуточной точкиString data.attributes.waypoints.lat: Широта промежуточной точкиString data.attributes.waypoints.lon: Долгота промежуточной точкиResponse
Object data:String data.id: присвоенный идентификатор заказа в системе биржиString data.orderId: исходный идентификатор заказа в системе СКАТError
Отозвать заказ
Parameters
Object data:String data.id: Биржевой идентификатор заказаResponse
Object data:Integer data.id: Идентификатор заказаError
Снять водителя с заказа
Parameters
Object data:String data.id: Биржевой идентификатор заказаString data.reason: Причина отказа исполнителя от выполнения заказа. Только при вызове метода исполнителем.Response
Object data:Integer data.id: Идентификатор заказаError
Взять заказ в исполнение
Parameters
Object data:String data.id: Идентификатор заказаString data.orderId: Идентификатор заказа в системе исполнителяObject data.attributes:Object data.attributes.time:Integer data.attributes.time.arrival: Время подъезда установленное водителем(в минутах)Object data.attributes.executor: Исполнитель заказаString data.attributes.executor.callSign: Позывной водителяString data.attributes.executor.phone: номер телефона водителяString data.attributes.executor.registrationNumber: Регистрационный номер автомобиляString data.attributes.executor.brand: Марка автомобиляString data.attributes.executor.model: Модель автомобиляString data.attributes.executor.color: Цвет автомобиляString data.attributes.executor.autoAge: Год выпуска автомобиляString data.attributes.executor.modelCode: Код модели автомобиля(имя файла с названием авто в СКАТ)String data.attributes.executor.colorCode: Код цвета автомобиля(имя файла с цветом авто в СКАТ)String data.attributes.executor.serviceName: Служба, к которой привязан водительString data.attributes.executor.latitude: Текущая координата: широтаString data.attributes.executor.longitude: Текущая координата: долготаString data.attributes.executor.speed: Текущая скоростьString data.attributes.executor.bearing: АзимутResponse
Object data:Integer data.id: идентификатор заказаError
Обновить заказ
Parameters
Object data:String data.id: Идентификатор заказаObject data.attributes: данные о заказеInteger data.attributes.status: Новый статус заказаObject data.attributes.client: данные о клиентеString data.attributes.client.phone: номер телефонаString data.attributes.client.name: имя клиентаObject data.attributes.from: информация о начале маршрутаString data.attributes.from.street: улицаString data.attributes.from.house: домString data.attributes.from.porch: подъездFloat data.attributes.from.latitude: координата широтыFloat data.attributes.from.longitude: координата долготыObject data.attributes.to: конечная точка маршрутаString data.attributes.to.street: улицаString data.attributes.to.house: домString data.attributes.to.porch: подъездFloat data.attributes.to.latitude: координата широтыFloat data.attributes.to.longitude: координата долготыObject data.attributes.time: информация о времениISODateString data.attributes.time.registered: время регистрации заказаInteger data.attributes.carClass: Идентификатор класса автоFloat data.attributes.fare: стоимость заказаString data.attributes.note: примечание к заказуObject data.attributes.tariff: правила расчета стоимости - тарифString data.attributes.tariff.name: наименование тарифаString data.attributes.tariff.minFare: минимальная стоимость заказаString data.attributes.tariff.farePerKm: стоимоcть километраString data.attributes.tariff.secondFarePerKm: стоимоcть километра - втораяString data.attributes.tariff.secondFareStart: начало действия второй стоимости километра (км)String data.attributes.tariff.skipFirstKm: не считать первые километрыString data.attributes.tariff.timeUnitSize: единица времени(в минутах)String data.attributes.tariff.timeUnitFare: стоимость единицы времениString data.attributes.tariff.freeTime: не считать первые единицы времениString data.attributes.tariff.markupRatio: наценочный коэффициент в процентахString data.attributes.tariff.stationaryFare: стоимость одной минуты стоянкиString data.attributes.tariff.freeStationaryTime: не считать первые минуты стоянкиString data.attributes.tariff.enableAutoStationaryFare: автоматически включать стоянкуString data.attributes.tariff.freeWaitingTime: время бесплатного ожидания (мин)String data.attributes.tariff.waitingRate: стоимость ожидания (стоимость одной минуты)String data.attributes.tariff.changeoverSpeed: порог стоянки (км/ч)String data.attributes.tariff.trafficLightPause: светофорная паузаString data.attributes.tariff.roundTo: округлять доInteger data.attributes.tariff.roundType: тип округления(-1 - всегда вниз, 0 - по правилам арифметики, 1 - всегда вверх)String data.attributes.tariff.pickUp: посадкаString data.attributes.tariff.roundFareRealtime: округлять цену сразуString data.attributes.tariff.showMinFare: показывать минималкуObject data.attributes.service: Информация о службе-авторе заказаObject data.attributes.service.id: Идентификатор службы в системе автораArray data.attributes.service.extras: Доп услугиString data.attributes.service.extras.name: Имя услугиString data.attributes.service.extras.shortName: Сокращение для водителяFloat data.attributes.service.extras.price: Стоимость услугиArray data.attributes.service.extras.options: Список опций, привязанных к данной услугеArray data.attributes.service.extras.count: Количество. Если не передано - 1Array data.attributes.waypoints: Промежуточные точки заказаString data.attributes.waypoints.publicPlace: Название публичного места промежуточной точкиString data.attributes.waypoints.house: Номер дома промежуточной точкиString data.attributes.waypoints.street: Название улицы промежуточной точкиString data.attributes.waypoints.lat: Широта промежуточной точкиString data.attributes.waypoints.lon: Долгота промежуточной точкиResponse
Object order: обновленный заказError
Проверка соединения
Response
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Водитель
Parameters
String callsign: Позывной запрашиваемого водителяResponse
Object data:Object[] data.drivers: Список водителеString data.driver.id: Уникальный идентификатор водителя (id)String data.driver.callSign: Позывной (уникален внутри одногосервера)String data.driver.name: Полное имя (имя, отчество, фамилия)String data.driver.phone: ТелефонString data.driver.registrationNumber: Регистрационный номер автомобиляString data.driver.brand: Марка автомобиляString data.driver.model: Модель автомобиляString data.driver.modelCode: Код модели автомобиляString data.driver.color: Цвет автомобиляString data.driver.colorCode: Код цвета автомобиляString data.driver.carage: Год выпуска автомобиляString data.driver.connectBy: Метод подключения водителяInteger data.driver.carClass: Класс автомобиляInteger[] data.driver.options: Список опцийError
Список водителей
Parameters
Integer limit: Максимальное кол-во водителей, которое будет получено(по-умолчанию: 100)Integer skip: Кол-во пропущенных водителейBoolean all: Вернуть всех водителейResponse
Object data:Object[] data.drivers: Список водителейString data.drivers.id: Уникальный идентификатор водителя (id)String data.drivers.callSign: Позывной (уникален внутри одногосервера)String data.drivers.name: Полное имя (имя, отчество, фамилия)String data.drivers.phone: ТелефонString data.drivers.registrationNumber: Регистрационный номер автомобиляString data.drivers.brand: Марка автомобиляString data.drivers.model: Модель автомобиляString data.drivers.modelCode: Код модели автомобиляString data.drivers.color: Цвет автомобиляString data.drivers.colorCode: Код цвета автомобиляString data.drivers.carage: Год выпуска автомобиляString data.drivers.connectBy: Метод подключения водителяInteger data.drivers.carClass: Класс автомобиляInteger[] data.drivers.options: Список опцийError
Заказ отправлен участникам
Parameters
Object data:Integer data.orderId: Локальный идентификатор заказаResponse
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Отмена заказа
Parameters
Object data:String data.id: Биржевой идентификатор заказаString data.status: Статус, с которым был отменен заказ(см. статусы заказов СКАТ)String data.reason: Текстовое описание причины отмены заказаResponse
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Завершение заказа биржевым водителем
Parameters
Object data:String data.id: Идентификатор заказаString data.attributes:String data.attributes.fare: Итоговая стоимость заказаString data.attributes.distance: дистанция пройденная водителем во время выполнения заказа(в метрах)Object data.attributes.time:Object data.attributes.time.completed: Время завершения заказа(таймстамп)Object data.attributes.time.standing: Общее время стоянки водителя во время выполнения заказаObject data.attributes.time.waiting: Общее время ожидания водителя во время выполнения заказаResponse
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Получение нового заказа от биржи
Parameters
Object data:String data.id: Биржевой идентификатор заказаString data.type: тип данных("order")Object data.attributes: данные о заказеObject data.attributes.client: данные о клиентеString data.attributes.client.phone: номер телефонаString data.attributes.client.name: имя клиентаObject data.attributes.from: информация о начале маршрутаString data.attributes.from.street: улицаString data.attributes.from.house: домString data.attributes.from.porch: подъездFloat data.attributes.from.latitude: координата широтыFloat data.attributes.from.longitude: координата долготыObject data.attributes.to: конечная точка маршрутаString data.attributes.to.street: улицаString data.attributes.to.house: домString data.attributes.to.porch: подъездFloat data.attributes.to.latitude: координата широтыFloat data.attributes.to.longitude: координата долготыObject data.attributes.time: информация о времениISODateString data.attributes.time.registered: время регистрации заказаInteger data.attributes.carClass: Идентификатор класса автоFloat data.attributes.fare: стоимость заказаString data.attributes.note: примечание к заказуObject data.attributes.tariff: правила расчета стоимости - тарифString data.attributes.tariff.name: наименование тарифаString data.attributes.tariff.minFare: минимальная стоимость заказаString data.attributes.tariff.farePerKm: стоимоcть километраString data.attributes.tariff.secondFarePerKm: стоимоcть километра - втораяString data.attributes.tariff.secondFareStart: начало действия второй стоимости километра (км)String data.attributes.tariff.skipFirstKm: не считать первые километрыString data.attributes.tariff.timeUnitSize: единица времени(в минутах)String data.attributes.tariff.timeUnitFare: стоимость единицы времениString data.attributes.tariff.freeTime: не считать первые единицы времениString data.attributes.tariff.markupRatio: наценочный коэффициент в процентахString data.attributes.tariff.stationaryFare: стоимость одной минуты стоянкиString data.attributes.tariff.freeStationaryTime: не считать первые минуты стоянкиString data.attributes.tariff.enableAutoStationaryFare: автоматически включать стоянкуString data.attributes.tariff.freeWaitingTime: время бесплатного ожидания (мин)String data.attributes.tariff.waitingRate: стоимость ожидания (стоимость одной минуты)String data.attributes.tariff.changeoverSpeed: порог стоянки (км/ч)String data.attributes.tariff.trafficLightPause: светофорная паузаString data.attributes.tariff.roundTo: округлять доInteger data.attributes.tariff.roundType: тип округления(-1 - всегда вниз, 0 - по правилам арифметики, 1 - всегда вверх)String data.attributes.tariff.pickUp: посадкаString data.attributes.tariff.roundFareRealtime: округлять цену сразуString data.attributes.tariff.showMinFare: показывать минималкуObject data.attributes.service: Информация о службе-авторе заказаObject data.attributes.service.id: Идентификатор службы в системе автораArray data.attributes.service.extras: Доп услугиString data.attributes.service.extras.name: Имя услугиString data.attributes.service.extras.shortName: Сокращение для водителяFloat data.attributes.service.extras.price: Стоимость услугиArray data.attributes.service.extras.options: Список опций, привязанных к данной услугеArray data.attributes.service.extras.count: Количество. Если не передано - 1Array data.attributes.waypoints: Промежуточные точки заказаString data.attributes.waypoints.publicPlace: Название публичного места промежуточной точкиString data.attributes.waypoints.house: Номер дома промежуточной точкиString data.attributes.waypoints.street: Название улицы промежуточной точкиString data.attributes.waypoints.lat: Широта промежуточной точкиString data.attributes.waypoints.lon: Долгота промежуточной точкиResponse
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Отказ принятия заказа в обработку
Parameters
Object data:Integer data.orderId: Локальный идентификатор заказаResponse
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Принятие заказа в обработку
Parameters
Object data:String data.id: Биржевой идентификатор заказаInteger data.orderId: Локальный идентификатор заказаResponse
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Снятие водителя с заказа
Parameters
Object data:String data.id: Биржевой идентификатор заказаString data.reason: Текстовое описание причины отказа от заказа(только для случая 1)Response
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Восстановление заказа
Parameters
Object data:String data.id: Биржевой идентификатор заказаObject data.attributes:Object data.attributes.client:Object data.attributes.client.phone: Номер телефонаObject data.attributes.client.name: Имя клиентаResponse
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Отзыв заказа биржей
Parameters
Object data:Integer data.id: Биржевой идентификатор заказаResponse
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Взятие заказа водителем
Parameters
Object data:String data.id: Биржевой идентификатор заказаString data.orderId: Идентификатор заказа в системе исполнителяObject data.attributes:Object data.attributes.time:Integer data.attributes.time.arrival: Время подъезда установленное водителемObject data.attributes.executor: Исполнитель заказаString data.attributes.executor.callSign: Позывной водителяString data.attributes.executor.phone: номер телефона водителяString data.attributes.executor.registrationNumber: Регистрационный номер автомобиляString data.attributes.executor.brand: Марка автомобиляString data.attributes.executor.model: Модель автомобиляString data.attributes.executor.color: Цвет автомобиляString data.attributes.executor.autoAge: Год выпуска автомобиляString data.attributes.executor.modelCode: Код модели автомобиля(имя файла с названием авто в СКАТ). Полный список здесь: http://docs.exchange.cloudtaxi.ru/modelsString data.attributes.executor.colorCode: Код цвета автомобиля(имя файла с цветом авто в СКАТ). Полный список здесь: http://docs.exchange.cloudtaxi.ru/colorsString data.attributes.executor.serviceName: Служба, к которой привязан водительString data.attributes.executor.latitude: Текущая координата: широтаString data.attributes.executor.longitude: Текущая координата: долготаString data.attributes.executor.speed: Текущая скоростьString data.attributes.executor.bearing: АзимутResponse
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Обновление заказа
Parameters
Object data:String data.id: Биржевой идентификатор заказаObject data.attributes: данные о заказеInteger data.attributes.status: Новый статус заказаObject data.attributes.client: данные о клиентеString data.attributes.client.phone: номер телефонаString data.attributes.client.name: имя клиентаObject data.attributes.from: информация о начале маршрутаString data.attributes.from.street: улицаString data.attributes.from.house: домString data.attributes.from.porch: подъездFloat data.attributes.from.latitude: координата широтыFloat data.attributes.from.longitude: координата долготыObject data.attributes.to: конечная точка маршрутаString data.attributes.to.street: улицаString data.attributes.to.house: домString data.attributes.to.porch: подъездFloat data.attributes.to.latitude: координата широтыFloat data.attributes.to.longitude: координата долготыObject data.attributes.time: информация о времениISODateString data.attributes.time.registered: время регистрации заказаInteger data.attributes.carClass: Идентификатор класса автоFloat data.attributes.fare: стоимость заказаString data.attributes.note: примечание к заказуObject data.attributes.tariff: правила расчета стоимости - тарифString data.attributes.tariff.name: наименование тарифаString data.attributes.tariff.minFare: минимальная стоимость заказаString data.attributes.tariff.farePerKm: стоимоcть километраString data.attributes.tariff.secondFarePerKm: стоимоcть километра - втораяString data.attributes.tariff.secondFareStart: начало действия второй стоимости километра (км)String data.attributes.tariff.skipFirstKm: не считать первые километрыString data.attributes.tariff.timeUnitSize: единица времени(в минутах)String data.attributes.tariff.timeUnitFare: стоимость единицы времениString data.attributes.tariff.freeTime: не считать первые единицы времениString data.attributes.tariff.markupRatio: наценочный коэффициент в процентахString data.attributes.tariff.stationaryFare: стоимость одной минуты стоянкиString data.attributes.tariff.freeStationaryTime: не считать первые минуты стоянкиString data.attributes.tariff.enableAutoStationaryFare: автоматически включать стоянкуString data.attributes.tariff.freeWaitingTime: время бесплатного ожидания (мин)String data.attributes.tariff.waitingRate: стоимость ожидания (стоимость одной минуты)String data.attributes.tariff.changeoverSpeed: порог стоянки (км/ч)String data.attributes.tariff.trafficLightPause: светофорная паузаString data.attributes.tariff.roundTo: округлять доInteger data.attributes.tariff.roundType: тип округления(-1 - всегда вниз, 0 - по правилам арифметики, 1 - всегда вверх)String data.attributes.tariff.pickUp: посадкаString data.attributes.tariff.roundFareRealtime: округлять цену сразуString data.attributes.tariff.showMinFare: показывать минималкуObject data.attributes.service: Информация о службе-авторе заказаObject data.attributes.service.id: Идентификатор службы в системе автораArray data.attributes.service.extras: Доп услугиString data.attributes.service.extras.name: Имя услугиString data.attributes.service.extras.shortName: Сокращение для водителяFloat data.attributes.service.extras.price: Стоимость услугиArray data.attributes.service.extras.options: Список опций, привязанных к данной услугеArray data.attributes.service.extras.count: Количество. Если не передано - 1Array data.attributes.waypoints: Промежуточные точки заказаString data.attributes.waypoints.publicPlace: Название публичного места промежуточной точкиString data.attributes.waypoints.house: Номер дома промежуточной точкиString data.attributes.waypoints.street: Название улицы промежуточной точкиString data.attributes.waypoints.lat: Широта промежуточной точкиString data.attributes.waypoints.lon: Долгота промежуточной точкиResponse
Object meta:String meta.vendor: Идентификатор автора сервераInteger meta.status: HTTP-Статус ответаError
Список служб
Response
Object data:Array data.services:Integer data.services.id: Идентификатор службыString data.services.name: Имя службыString data.services.description: Описание службыError
Состояние водителя обновлено
Parameters
Object data:String data.id: Биржевой идентификатор водителя-исполнителя заказаObject data.attributes: данные о водителеObject data.attributes.callSign: позывнойObject data.attributes.latitude: текущая координата - широтаObject data.attributes.longitude: текущая координата - долготаObject data.attributes.status: статус исполняемого заказаObject data.attributes.speed: текущая скоростьObject data.attributes.bearing: азимутПолучить версию API
Response
Object jsonapi:String jsonapi.version: версия API