wss://91.234.35.253:5011
wss://94.158.82.4:5011
Формат API основан на протоколе JSON-RPC 2.0 (с небольшими собственными доработками) https://www.jsonrpc.org/specification
id - произвольное строковое значение, которое передаёт клиент в запросе, чтобы идентифицировать по нему ответ от сервера. id всегда возвращается обратно в ответе, кроме случаев, если это не ответ от сервера, а уведомление.
Дополнительно можно передать в запросе параметр meta, содержащий объект с любыми данными. Параметр meta всегда возвращается обратно с теми данными, которые передал клиент.
В отличие от стандарта протокола JSON-RPC 2.0, данный протокол во всех ответах возвращает параметр method для упрощения логирования и разработки клиентской части.
Если ответ возвращается без ошибки, то результат запроса отображается в параметре result.
Если ответ возвращает ошибку, то вместо result приходит параметр error вида:
{
"error": {
"code": 100,
"message": "Undefined error",
"data": "Apocalypse"
}
}
В опциональном параметре data может быть дополнительная информация.
Чат может находиться в четырёх состояниях, которые указываются через параметр complete_stage в запросах групп чатов
Состояния 2 и 3 нужно больше для диспетчерской, потому что завершённый чат у клиента удаляется.
Возможны два варианта завершения чата:
Завершить можно только персональный чат.
Когда приходит запрос о завершении от диспетчерской, тогда параметр complete_stage = 1. При этом придёт системное сообщение в чат, что начата подготовка к завершению.
Когда клиент хочет сам завершить какой-то чат, он просто отправляет запрос chatGroup.complete с теми же параметрами, после чего ему придёт уведомление об удалении группы чата, а в диспетчерскую поступит системное сообщение, что клиент завершил чат.
В общем случае порядок получения токена такой:
Регистрация по SMS.
Для тестирования можно использовать номер телефона 999 9999999. При авторизации с этим номером сервер не проверяет пароль, поэтому можно вводить любые цифры.
Частая ошибка при разработке клиентского приложения возникает, если брать номер телефона из маски, в которой в начале подставляется 380. Тогда на сервер отправляется 099 9999999, и для сервера это становится не тестовым номером, а обычным. Не допускайте такую ошибку!
Регистрация по звонку.
Отправить запрос client.signUp с "mode":"call".
Подписаться на событие "token" с указанием сигнатуры из ответа на запрос client.signUp
{
"method": "client.subscribe",
"params": {
"type": "token",
"data": {
"signature": "{99da0746-c214-4321-aae3-2e1fa0d07c1f}"
}
},
"id": "42"
}
Получить событие о выдаче токена, когда клиент нажмёт на телефоне кнопку 1.
{
"method": "client.token",
"params": {
"isNew": true,
"token": "fcb0634c272604a26b162ddda9e88418"
}
}
Отписаться от события token.
{
"method": "client.unsubscribe",
"params": {
"type": "token"
},
"id": "42"
}
Авторизация: не обязательна
{
"method": "client.signUp",
"params": {
"company_id": 3,
"identifier": "0992134665",
"name": "Вован",
"mode": "sms"
},
"id": "42"
}
{
"method": "client.signUp",
"result": {
"signature": "{5a8188a4-e420-490f-a45f-da8cf90c05a6}"
},
"id": "42"
}
Выдается временная сигнатура сроком действия 5 мин. Если в течение 5 минут её не использовать, то нужно заново отправлять запрос client.signUp.
Авторизация: не обязательна
Используется при регистрации через SMS.
{
"method": "client.getToken",
"params": {
"signature": "{99da0746-c214-4321-aae3-2e1fa0d07c1f}",
"password": 623427
},
"id": "42"
}
{
"id": "42",
"method": "client.getToken",
"result": {
"isNew": true,
"token": "b008321a6a124f95f5950f6f14758fa3"
}
}
Авторизация: не обязательна
Придёт после оформления подписки с типом token после того, как клиент подтвердит номер телефона ответом на звонок.
{
"method": "client.token",
"params": {
"token": "fcb0634c272604a26b162ddda9e88418"
}
}
Авторизация: не обязательна
{
"method": "client.auth",
"params": {
"token": "fcb0634c272604a26b162ddda9e88418",
"versions": {
"app": "1.3.3",
"os": "Android api:29; Android version:10; Model:xiaomi lavender Redmi Note 7; Operator:KYIVSTAR;"
}
},
"id": "42"
}
{
"method": "client.auth",
"id": "42"
}
Авторизация: обязательна
{
"method": "client.logout",
"id": "42"
}
{
"method": "client.logout",
"id": "42"
}
Авторизация: обязательна (кроме события "token")
Сервер не сохраняет подписки после обрыва коннекта. В случае реконнекта нужно заново отправить все текущие подписки.
{
"method": "client.subscribe",
"params": {
"type": "driversOnline",
"data": {параметры}
},
"id": "42"
}
type - тип подписки. В зависимости от type содержимое data будет разным.
driversOnline - расположение водителей онлайн на карте относительно указанной точки. Будет приходить уведомление driver.online. Если у клиента поменялись координаты, то нужно отправить запрос ещё раз с новыми координатами.
{
"data": {
"center": {
"latitude": 50.402242,
"longitude": 30.331678
}
}
}
driverPos - расположение конкретного водителя на карте. Будет приходить уведомление driver.position.
{
"data": {
"id": 185
}
}
token - получение токена при регистрации. Придёт уведомление client.token в том случае, когда клиент подтвердил свой номер телефона через SMS или ответом на звонок.
{
"data": {
"signature": "{99da0746-c214-4321-aae3-2e1fa0d07c1f}"
}
}
* signature - обязательный параметр, должен быть таким, который получен в ответе на запрос client.signUp.
orderStatus - статусы заказов. Будет приходить уведомление order.status
{
"data": {
"id": [
2301,
2305
]
}
}
* id - список id заказов, по которым нужно мониторить статусы.
{
"method": "client.subscribe",
"id": "42"
}
Авторизация: обязательна (кроме события "token")
{
"method": "client.unsubscribe",
"params": {
"type": "driversOnline"
},
"id": "42"
}
{
"method": "client.unsubscribe",
"id": "42"
}
Авторизация: не обязательна
{
"method": "company.getList",
"id": "42"
}
{
"method": "company.getList",
"result": [
{
"id": 4,
"name": "Боярка",
"translate": []
},
{
"id": 3,
"name": "Киев",
"translate": [
{
"lang": "ru",
"name": "Киев"
},
{
"lang": "uk",
"name": "Київ"
},
{
"lang": "en",
"name": "Kyiv"
}
]
}
],
"id": "42"
}
Здесь и в дальнейшем, если в запросе есть параметр translate, то это варианты переводов названий на другие языки. При отсутствии подходящего перевода под нужную локацию брать обычный name, а при наличии - name из translate.
Авторизация: обязательна
{
"method": "client.changeCompany",
"params": {
"company_id": 4
},
"id": "42"
}
{
"id": "42",
"method": "client.changeCompany"
}
Авторизация: не обязательна
{
"method": "orderType.getList",
"params": {
"company_id": 3
},
"id": "42"
}
{
"method": "orderType.getList",
"result": [
{
"id": 5,
"is_default": false,
"name": "Драйвер",
"car_seats": 70,
"icon_number": 6,
"order": 5,
"translate": []
},
{
"id": 4,
"is_default": false,
"name": "Стандарт",
"car_seats": 3,
"icon_number": 1,
"order": 1,
"translate": [
{
"lang": "ru",
"name": "Стандарт"
},
{
"lang": "en",
"name": "Standart"
},
{
"lang": "uk",
"name": "Стандарт"
}
]
},
{
"id": 3,
"is_default": true,
"name": "Комфорт",
"car_seats": 2,
"icon_number": 3,
"order": 3,
"translate": []
}
],
"id": "42"
}
Авторизация: не обязательна
{
"method": "orderType.getCost",
"params": {
"id": 4,
"order_id": 5050,
"time": 1607455200000,
"route": [
{
"latitude": 50.4839,
"longitude": 30.3745
},
{
"latitude": 50.4188,
"longitude": 30.4211
}
]
},
"id": "42"
}
{
"id": "42",
"method": "orderType.getCost",
"result": {
"coefficient": 1.09,
"coefficient_parts": {
"companyCoefficient": 1.09,
"companyLoadCoefficient": 0,
"orderTypeCoefficient": 1,
"orderTypeCoefficientUsage": 0
},
"cost": 155,
"debt": 0
}
}
Пример:
{
"error": {
"code": 602,
"data": "{\"company_id\":3}",
"message": "Feed not from company"
},
"id": "42",
"method": "orderType.getCost"
}
Авторизация: обязательна
{
"method": "order.getRoute",
"params": {
"waypoints": [
{
"latitude": 50.4839,
"longitude": 30.3745
},
{
"latitude": 50.4188,
"longitude": 30.4211
}
]
},
"id": "42"
}
{
"method": "order.getRoute",
"result": [
{
"latitude": 50.484707,
"longitude": 30.373426
},
{
"latitude": 50.48674,
"longitude": 30.374617
},
{
"latitude": 50.486972,
"longitude": 30.374716
},
{
"latitude": 50.487117,
"longitude": 30.374809
},
{
"latitude": 50.487173,
"longitude": 30.374867
},
{
"latitude": 50.487308,
"longitude": 30.375096
},
{
"latitude": 50.487384,
"longitude": 30.375373
},
{
"latitude": 50.41847,
"longitude": 30.423042
},
{
"latitude": 50.418525,
"longitude": 30.42249
}
],
"id": "42"
}
Авторизация: обязательна
{
"method": "order.getList",
"params": {
"last_date": 1535960279456,
"filter": 1
},
"id": "42"
}
{
"method": "order.getList",
"result": [
{
"car": {
"body_type": "Лимузин",
"brand": "Cadillac",
"color": "Фиолетовый",
"color_rgb_code":"#800080",
"identifier": "AE 452551",
"logo": "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABi2lDQ1BHSU1QIGJ1aWx0LWluIHNSR0IAACiRfZE9SMNQ",
"model": "Lanos",
"year": 2029
},
"add_payment":33,
"cash": false,
"company_id":3,
"company_name":"Боярка",
"date": 1542890831683,
"driver": {
"first_name": "Вован",
"id": 185,
"last_name": "Щербатый",
"middle_name": "Сидорович",
"sign": "Vovan",
"phone": "0991234567",
"rating": 4.1
},
"driver_rating": 0,
"feed_time": 1536742800000,
"id": 65,
"note": "Чтоб машина была малинового цвета",
"order_type_id": 4,
"order_type_name": "Стандарт",
"payment_type": 0,
"services": ["2","4"],
"sum": 50,
"use_bonuses": false,
"wait_sum": 15,
"waypoints": [
{
"city": "Киев",
"house": "7",
"latitude": 50.4188,
"longitude": 30.4211,
"note": "",
"number": 2,
"porch": "",
"street": "Подольская"
},
{
"city": "Киев",
"house": "14",
"latitude": 50.4839,
"longitude": 30.3745,
"note": "",
"number": 1,
"porch": "",
"street": "Крещатик"
}
],
"waypoints_approve_status": 1
}
],
"id": "42"
}
В списке будут только те заказы, которые не спрятаны у клиентов в запросе order.hide.
Авторизация: обязательна
Спрятать заказы, чтобы они не приходили в запросе order.getList.
{
"method": "order.hide",
"params": {
"id": [
75,
12,
32
]
},
"id": "42"
}
{
"method": "order.hide",
"id": "42"
}
Авторизация: обязательна
{
"method": "order.create",
"params": {
"source": "mobile-android",
"waypoints": [
{
"city": "Боярка",
"street": "Садовая",
"house": "1",
"porch": "1",
"latitude": 50.3177,
"longitude": 30.298,
"note": "Фора"
},
{
"city": "Боярка",
"street": "Магистральная",
"house": "2",
"porch": "1",
"latitude": 50.3451,
"longitude": 30.2809,
"note": "Эпицентр"
}
],
"order_type_id": 6,
"feed_time": 1773225477568,
"use_bonuses": true,
"services": [
2,
4
],
"add_payment": 50,
"cost": 155,
"coefficient": 1.1,
"coefficient_parts": {
"companyCoefficient": 1.1,
"companyLoadCoefficient": 0,
"orderTypeCoefficient": 1,
"orderTypeCoefficientUsage": 0
},
"note": "Пустой багажник",
"card_id": 2,
"card_pin": 698
},
"id": "42"
}
В случае использования банковской карты сервером дополнительно отправляется запрос на платёжный сервер Fondy. При этом предварительно создаётся заказ со статусом 50.
Пример
{
"error": {
"code": 800,
"data": "Order status: declined",
"message": "Fondy server error"
},
"id": "42",
"method": "order.create"
}
После отправки таких ошибок клиенту предварительно созданный заказ удаляется.
{
"method": "order.create",
"result": {
"id": 75
},
"id": "42"
}
Авторизация: обязательна
{
"method": "order.cancel",
"params": {
"id": 75
},
"id": "42"
}
{
"method": "order.cancel",
"id": "42"
}
{
"method": "order.updateAddPayment",
"params": {
"id": 3896,
"add_payment": 33
},
"id": "42"
}
{
"method": "order.updateAddPayment",
"id": "42"
}
{
"method": "order.updateServices",
"params": {
"id": 5075,
"services": [
2,
3
]
},
"id": "42"
}
{
"method": "order.updateServices",
"id": "42"
}
Авторизация: обязательна
Запрос можно делать только в статусе 2400 и выше. Отправлять нужно все адреса, кроме первого.
{
"method": "order.updateWaypoints",
"params": {
"id": 5047,
"cost": 120,
"waypoints": [
{
"city": "Боярка",
"street": "Садовая",
"house": "1",
"porch": "1",
"latitude": 50.3177,
"longitude": 30.298,
"note": "Фора"
},
{
"city": "Боярка",
"street": "Магистральная",
"house": "2",
"porch": "1",
"latitude": 50.3451,
"longitude": 30.2809,
"note": "Эпицентр"
}
]
},
"id": "42"
}
{
"method": "order.updateWaypoints",
"id": "42"
}
Авторизация: обязательна
{
"method": "order.waypointsApproved",
"params": {
"approved": false,
"id": 5047
}
}
Авторизация: обязательна
Получение статуса утверждения маршрута на тот случай, если было пропущено уведомление order.waypointsApproved. Выполнять запрос имеет смысл при реконнекте или загрузке заказа на экран, если он в статусе 2400 или больше, и были отправлены адреса для утверждения.
{
"method": "order.getWaypointsApproveStatus",
"params": {
"id": 5047
},
"id": "42"
}
{
"id": "42",
"method": "order.getWaypointsApproveStatus",
"result": {
"status": 1
}
}
Авторизация: обязательна
Будет приходить после оформления подписки с типом orderStatus каждый раз, когда меняется статус любого из заказов, указанных в подписке. Если указанного id нет в базе, оно будет проигнорировано.
{
"method": "order.status",
"params": {
"code": 500,
"description": "Searching driver",
"id": 67
}
}
Авторизация: обязательна
{
"method": "order.paidWaiting",
"params": {
"id": 5033,
"state": 1,
"wait_sum": 15
}
}
Авторизация: обязательна
{
"method": "order.completed",
"params": {
"code": 1060,
"id": 1547,
"name": "Отсутствует свободная машина"
}
}
Авторизация: обязательна
{
"method": "order.clientNotified",
"params": {
"id": 75
},
"id": "42"
}
{
"method": "order.clientNotified",
"id": "42"
}
Авторизация: обязательна
Получить данные о водителе, выполняющем заказ. Доступно, начиная со статуса 1500, требует авторизованного подключения.
{
"method": "order.getDriver",
"params": {
"id": 75
},
"id": "42"
}
{
"method": "order.getDriver",
"result": {
"arrival_time":1660213439107,
"car": {
"body_type": "Лимузин",
"brand": "Cadillac",
"color": "Фиолетовый",
"color_rgb_code":"#800080",
"identifier": "AE 452551",
"logo": "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABi2lDQ1BHSU1QIGJ1aWx0LWluIHNSR0IAACiRfZE9SMNQ",
"model": "Lanos",
"year": 2029
},
"driver": {
"first_name": "Вован",
"id": 185,
"last_name": "Щербатый",
"middle_name": "Сидорович",
"sign": "Vovan",
"phone": "0991234567",
"rating": 4.1,
"photo":"/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAIQAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAAD"
}
},
"id": "42"
}
Авторизация: обязательна
{
"method": "order.getStat",
"params": {
"id": 3152
},
"id": "42"
}
{
"id": "42",
"method": "order.getStat",
"result": {
"sum": 45.6,
"set_taxi": 12,
"min_trip": 7.9,
"start_sum": 5,
"wait_sum": 15,
"distance": 2.3,
"bonuses": 20,
"coefficient": 1.15,
"total_amount": {
"amt_km_free_on_move_to_client": 0,
"amt_tm_up_time_free_on_move_to_client": 0,
"amt_free_km": 0,
"amt_free_tm_up_time": 0,
"amt_free_tm_down_time": 0,
"amt_km": 0,
"amt_km_on_return": 0,
"amt_km_on_move_to_client": 0,
"amt_km_on_move_penalty": 0,
"amt_tm_wait_on_start": 0,
"amt_tm_on_up_time": 0,
"amt_tm_on_downtime": 0,
"amt_tm_on_downtime_common": 0,
"price_tm_on_downtime": 0,
"amt_tm_on_up_time_return": 0,
"amt_tm_on_downtime_return": 0,
"amt_tm_on_downtime_common_return": 0,
"price_tm_on_downtime_return": 0,
"amt_tm_on_up_time_on_move_to_client": 0,
"amt_tm_on_downtime_on_move_to_client": 0,
"amt_tm_on_up_time_penalty": 0,
"amt_tm_on_downtime_penalty": 0,
"amt_penalty_drv_after_accepted": 0
},
"zone_amount": [
{
"rst_id_zone": 7,
"zone_name": "Кладбище",
"amt_km_free_on_move_to_client": 0,
"amt_tm_up_time_free_on_move_to_client": 0,
"amt_free_km": 0,
"amt_free_tm_up_time": 0,
"amt_free_tm_down_time": 0,
"amt_km": 0,
"amt_km_on_return": 0,
"amt_km_on_move_to_client": 0,
"amt_km_on_move_penalty": 0,
"amt_tm_wait_on_start": 0,
"amt_tm_on_up_time": 0,
"amt_tm_on_downtime": 0,
"amt_tm_on_downtime_common": 0,
"amt_tm_on_up_time_return": 0,
"amt_tm_on_downtime_return": 0,
"amt_tm_on_downtime_common_return": 0,
"amt_tm_on_up_time_on_move_to_client": 0,
"amt_tm_on_downtime_on_move_to_client": 0,
"amt_tm_on_up_time_penalty": 0,
"amt_tm_on_downtime_penalty": 0,
"amt_penalty_drv_after_accepted": 0,
"sum_km": 0,
"sum_km_on_return": 0,
"sum_km_on_move_to_client": 0,
"sum_km_on_move_penalty": 0,
"sum_tm_wait_on_start": 0,
"sum_tm_on_up_time": 0,
"sum_tm_on_downtime": 0,
"price_tm_on_downtime": 0,
"sum_tm_on_up_time_return": 0,
"sum_tm_on_downtime_return": 0,
"price_tm_on_downtime_return": 0,
"sum_tm_on_up_time_on_move_to_client": 0,
"sum_tm_on_downtime_on_move_to_client": 0,
"sum_tm_on_up_time_penalty": 0,
"sum_tm_on_downtime_penalty": 0,
"sum_penalty_drv_after_accepted": 0,
"set_taxi": 0,
"start_sum": 0,
"min_trip": 0
},
{
"rst_id_zone": 9,
"zone_name": "Морг",
"amt_km_free_on_move_to_client": 0,
"amt_tm_up_time_free_on_move_to_client": 0,
"amt_free_km": 0,
"amt_free_tm_up_time": 0,
"amt_free_tm_down_time": 0,
"amt_km": 0,
"amt_km_on_return": 0,
"amt_km_on_move_to_client": 0,
"amt_km_on_move_penalty": 0,
"amt_tm_wait_on_start": 0,
"amt_tm_on_up_time": 0,
"amt_tm_on_downtime": 0,
"amt_tm_on_downtime_common": 0,
"amt_tm_on_up_time_return": 0,
"amt_tm_on_downtime_return": 0,
"amt_tm_on_downtime_common_return": 0,
"amt_tm_on_up_time_on_move_to_client": 0,
"amt_tm_on_downtime_on_move_to_client": 0,
"amt_tm_on_up_time_penalty": 0,
"amt_tm_on_downtime_penalty": 0,
"amt_penalty_drv_after_accepted": 0,
"sum_km": 0,
"sum_km_on_return": 0,
"sum_km_on_move_to_client": 0,
"sum_km_on_move_penalty": 0,
"sum_tm_wait_on_start": 0,
"sum_tm_on_up_time": 0,
"sum_tm_on_downtime": 0,
"price_tm_on_downtime": 0,
"sum_tm_on_up_time_return": 0,
"sum_tm_on_downtime_return": 0,
"price_tm_on_downtime_return": 0,
"sum_tm_on_up_time_on_move_to_client": 0,
"sum_tm_on_downtime_on_move_to_client": 0,
"sum_tm_on_up_time_penalty": 0,
"sum_tm_on_downtime_penalty": 0,
"sum_penalty_drv_after_accepted": 0,
"set_taxi": 0,
"start_sum": 0,
"min_trip": 0
}
],
"waypoints": [
{
"city": "Боярка",
"house": "40",
"porch": "",
"street": "Белогородская"
},
{
"city": "Боярка",
"house": "1",
"porch": "",
"street": "Амбулаторная"
}
]
}
}
Авторизация: обязательна
{
"method": "order.getCalculateCost",
"params": {
"id": 3944
},
"id": "42"
}
{
"id": "42",
"method": "order.getCalculateCost",
"result": {
"additional_sum": 100,
"calculate_cost": 59.8513
}
}
Авторизация: обязательна
{
"method": "operator.call",
"id": "42"
}
{
"method": "operator.call",
"id": "42"
}
Авторизация: обязательна
{
"method": "client.getProfile",
"id": "42"
}
{
"method": "client.getProfile",
"result": {
"id": 18,
"birthday": "",
"bonuses": 120,
"first_name": "Варфоломей",
"last_name": "",
"middle_name": "",
"sex": 0,
"fcm_token":"",
},
"id": "42"
}
Авторизация: обязательна
{
"method": "client.updateProfile",
"params": {
"identifier": "0991234567",
"birthday": "01.01.2029",
"first_name": "Варфоломей",
"middle_name": "Маркович",
"last_name": "",
"sex": 0,
"fcm_token":""
},
"id": "42"
}
Все необязательные.
{
"method": "client.updateProfile",
"id": "42"
}
Авторизация: обязательна
{
"method": "client.sendPhoto",
"params": {
"photo": "OlxSHIOciplYaG4wKOopWO4GnfdUetStADt0pDQhJ5bp2p3y809wewm0baYYyBTzkDrUikYw1CpxvdCuQLuFSqTxSAfKT74pxIVPeiIBxnJpOCpwQKQ7j1"
},
"id": "42"
}
Если фото уже было отправлено раньше, то оно будет перезатёрто новым.
{
"method": "client.sendPhoto",
"id": "42"
}
Авторизация: обязательна
{
"method": "client.getPhoto",
"id": "42"
}
{
"method": "client.getPhoto",
"result": {
"photo": "OlxSHIOciplYaG4wKOopWO4GnfdUetStADt0pDQhJ5bp2p3y809wewm0baYYyBTzkDrUikYw1CpxvdCuQLuFSqTxSAfKT74pxIVPeiIBxnJpOCpwQKQ7j1"
},
"id": "42"
}
Авторизация: обязательна
{
"method": "client.getBonusLog",
"params": {
"last_date": 1616450400000
},
"id": "42"
}
{
"id": "42",
"method": "client.getBonusLog",
"result": [
{
"bonuses": 50,
"cause": 1,
"create_time": 1616408176171,
"order_id": 2709,
"value": 25
},
{
"bonuses": 5,
"cause": 0,
"create_time": 1616406095424,
"order_id": 2707,
"value": 5
}
]
}
Авторизация: обязательна
{
"method": "driver.call",
"params": {
"id": 181
},
"id": "42"
}
{
"method": "driver.call",
"id": "42"
}
Авторизация: обязательна
{
"method": "driver.setRating",
"params": {
"id": 181,
"order_id": 210,
"rating": 2,
"note": "Мудак"
},
"id": "42"
}
{
"method": "driver.setRating",
"id": "42"
}
Cписок водителей, запрещённых для назначения на заказы.
Авторизация: обязательна
Добавить водителя в список игнора или удалить из него.
{
"method": "driver.ignore",
"params": {
"id": 181,
"ignore": true
},
"id": "42"
}
{
"method": "driver.ignore",
"id": "42"
}
Авторизация: обязательна
{
"method": "driver.getIgnoreList",
"id": "42"
}
{
"method": "driver.getIgnoreList",
"result": [
{
"id": 181,
"code": "operator"
},
{
"id": 229,
"code": "client"
}
],
"id": "42"
}
Авторизация: обязательна
{
"method": "driver.getLocation",
"params": {
"id": 181
},
"id": "42"
}
{
"method": "driver.getLocation",
"result": {
"course": 0,
"latitude": 50.4,
"longitude": 30.3904
},
"id": "42"
}
Авторизация: обязательна
После оформления подписки с типом driversOnline каждые 10 сек будет приходить список водителей в радиусе 2 км. В случае отсутствия водителей в заданном радиусе список всё равно будет приходить, но пустой.
{
"method": "driver.online",
"params": {
"drivers": [
{
"course": 0,
"latitude": 50.421726,
"longitude": 30.369667,
"sign": "2130",
"status": 1000
}
]
}
}
Авторизация: обязательна
После оформления подписки с типом driverPos будет приходить уведомление каждый раз, когда у водителя изменяются координаты или статус.
{
"method": "driver.position",
"params": {
"course": 0,
"latitude": 50.421726,
"longitude": 30.369667,
"sign": "2130",
"status": 1000
}
}
Авторизация: обязательна
{
"method": "service.getList",
"id": "42"
}
{
"method": "service.getList",
"result": [
{
"abs_sum": 250,
"id": 4,
"name": "Ведро котов в салоне",
"relative_sum": 0.8,
"translate": []
},
{
"abs_sum": 40,
"id": 3,
"name": "Молчаливый водитель",
"relative_sum": 0.15,
"translate": []
},
{
"abs_sum": 100,
"id": 2,
"name": "Курить в салоне",
"relative_sum": 0.7,
"translate": [
{
"lang": "ru",
"name": "Курить в салоне"
},
{
"lang": "uk",
"name": "Курити у салонi"
}
]
}
],
"id": "42"
}
abs_sum и relative_sum складываются по формуле: полная сумма = стоимость поездки * (1 + relative_sum) + abs_sum
Авторизация: обязательна
{
"method": "feed.getList",
"id": "42"
}
{
"method": "feed.getList",
"result": [
{
"id": 23,
"city": "Мухосранск",
"street": "Ленина",
"house": "2б",
"housing": 3,
"porch": 9,
"latitude": 50.4188,
"longitude": 30.4211
},
{
"id": 24,
"city": "Киев",
"street": "Крещатик",
"house": "42",
"latitude": 50.4188,
"longitude": 30.4211
}
],
"id": "42"
}
housing и porch в ответе могут отсутствовать
Авторизация: обязательнам
{
"method": "feed.create",
"params": {
"city": "Мухосранск",
"street": "Ленина",
"house": "2б",
"housing": 3,
"porch": 9,
"latitude": 50.4188,
"longitude": 30.4211
},
"id": "42"
}
Все параметры необязательные (ни на что не влияют)
{
"method": "feed.create",
"result": {
"id": 16
},
"id": "42"
}
Авторизация: обязательна
{
"method": "feed.remove",
"params": {
"id": 16
},
"id": "42"
}
{
"method": "feed.remove",
"id": "42"
}
Авторизация: обязательна
{
"method": "feed.update",
"params": {
"id": 16,
"city": "Мухосранск",
"street": "Ленина",
"house": "2б",
"housing": 3,
"porch": 9,
"latitude": 50.4188,
"longitude": 30.4211
},
"id": "42"
}
{
"method": "feed.update",
"id": "42"
}
Авторизация: обязательна
{
"method": "card.getInfo",
"params": {
"serie": 999,
"number": 2,
"pin": 267
},
"id": "42"
}
Все обязательные.
{
"method": "card.getInfo",
"result": {
"balance":2904.91,
"enabled": true,
"id": 2,
"order_type_id": 4,
"use_bonuses": false
},
"id": "42"
}
Авторизация: обязательна
{
"method": "bankCard.getFondyAccount",
"id": "42"
}
{
"method": "bankCard.getFondyAccount",
"result": {
"login": "1433359",
"password": "QMWBRUkJzhDJ4E1v5o0YCZykoHc5S5qI"
},
"id": "42"
}
Авторизация: обязательна
{
"method": "bankCard.getList",
"id": "42"
}
{
"method": "bankCard.getList",
"result": [
{
"id": 24,
"mask": "444455XXXXXX1111",
"token": "a41087ed7ce6d8a3e659549d0e1978393ddc266",
"selected": true
},
{
"id": 29,
"mask": "444455XXXXXX6666",
"token": "15c146efea24b702319e47e340fa4b3ab21b9d33",
"selected": false
}
],
"id": "42"
}
Авторизация: обязательна
{
"method": "bankCard.create",
"params": {
"mask": "444455XXXXXX1111",
"token": "a41087ed7ce6d8a3e659549d0e1978393ddc266"
},
"id": "42"
}
Все обязательные.
{
"method": "bankCard.create",
"result": {
"id": 10
},
"id": "42"
}
Авторизация: обязательна
{
"method": "bankCard.remove",
"params": {
"id": 12
},
"id": "42"
}
{
"method": "bankCard.remove",
"id": "42"
}
Авторизация: обязательна
{
"method": "bankCard.select",
"params": {
"id": 5
},
"id": "42"
}
{
"method": "bankCard.select",
"id": "42"
}
Авторизация: обязательна
Использовать текущую банковскую карту, установленную запросом bankCard.select, для безналичной оплаты заказа
{
"method": "bankCard.use",
"params": {
"value": true
},
"id": "42"
}
{
"method": "bankCard.use",
"id": "42"
}
Авторизация: обязательна
Используется для тестирования сервера.
{
"method": "bankCard.verify",
"params": {
"order_id": 102
},
"id": "42"
}
{
"method": "bankCard.verify",
"result": {
"checkout_url": "https://api.fondy.eu/api/checkout?token=2faf77de97b41bacbe5ebe7454f8b6f2c5279212"
},
"id": "42"
}
Авторизация: обязательна
{
"method": "chatGroup.created",
"params": {
"destination_type": "common",
"id": 3,
"name": "Поздравления",
"order_id": 1,
"recipient": 0
}
}
Авторизация: обязательна
{
"method": "chatGroup.updated",
"params": {
"id": 3,
"name": "Поздравления",
"complete_stage": 0
}
}
Авторизация: обязательна
{
"method": "chatGroup.removed",
"params": {
"id": 3
}
}
Авторизация: обязательна
Выполнять нужно при запуске приложения и каждом реконнекте
{
"method": "chatGroup.sync",
"params": {
"current": [
9,
15
],
"time": 1571748153000
},
"id": "42"
}
{
"method": "chatGroup.sync",
"result": {
"changed": [
{
"id": 14,
"name": "Поздравления",
"complete_stage": 0,
"destination_type": "common",
"order_id": 1,
"recipient": 0
},
{
"id": 18,
"name": "График работ",
"complete_stage": 0,
"destination_type": "group",
"order_id": 1,
"recipient": 0
}
],
"removed": [
13,
17
]
},
"id": "42"
}
Авторизация: обязательна
{
"method": "chatGroup.complete",
"params": {
"id": 24,
"note": "И так сойдёт",
"resolved": true
},
"id": "42"
}
{
"method": "chatGroup.complete",
"id": "42"
}
Авторизация: обязательна
{
"method": "chatGroup.continue",
"params": {
"id": 24
},
"id": "42"
}
{
"method": "chatGroup.continue",
"id": "42"
}
Авторизация: обязательна
{
"method": "chatGroup.create",
"params": {
"order_id": 120,
"recipient": 1
},
"id": "42"
}
{
"id": "42",
"method": "chatGroup.create",
"result": {
"destination_type": "personal",
"id": 276,
"name": "Чат №276"
}
}
Авторизация: обязательна
{
"method": "chat.created",
"params": {
"group_id": 14,
"id": 38,
"is_sys": false,
"message": "Мы поднимаем тарифы на ВСЁ!!!",
"sender": "user",
"user_sign": "Олеся_12"
}
}
Авторизация: обязательна
{
"method": "chat.removed",
"params": {
"id": 38
}
}
Авторизация: обязательна
Выполнять нужно при запуске приложения и каждом реконнекте
{
"method": "chat.sync",
"params": {
"time": 1577829600000
},
"id": "42"
}
{
"method": "chat.sync",
"result": {
"changed": [
{
"group_id": 11,
"id": 2,
"is_readed": false,
"is_sys": false,
"message": "Превед",
"sender": "user",
"time": 1584952905941,
"user_sign": "Олеся_12"
},
{
"group_id": 14,
"id": 8,
"is_readed": false,
"is_sys": false,
"message": "Мы поднимаем тарифы на ВСЁ!!!",
"sender": "user",
"time": 1584955200278,
"user_sign": ""
}
],
"removed": [
55,
64,
]
},
"id": "42"
}
Авторизация: обязательна
{
"method": "chat.read",
"params": {
"id": 67
},
"id": "42"
}
{
"method": "chat.read",
"id": "42"
}
Авторизация: обязательна
{
"method": "chat.reply",
"params": {
"id": 24
},
"id": "42"
}
{
"method": "chat.reply",
"id": "42",
"result": {
"group_id": 32
}
}
Авторизация: обязательна
{
"method": "chat.create",
"params": {
"group_id": 24,
"message": "Привет, Мир!"
},
"id": "42"
}
{
"method": "chat.create",
"id": "42",
"result": {
"id": 32
}
}