Управление контрактами аренды
Этот API предоставляет возможности для управления контрактами аренды транспортных средств. С помощью этого API можно выполнять запуск, обновление, остановку аренды, а также аутентификацию и генерацию токенов для авторизации.
Авторизация
Для использования API необходимо пройти аутентификацию с помощью Bearer токена.
Получение токена для авторизации
Перед тем как отправлять запросы, необходимо получить токен, сгенерировав его с использованием логина и пароля для панели администратора.
Пример авторизации
Запрос на генерацию токена:
curl --location --request GET 'https://<admin_address>/backend/app/contracts.php' \
--header 'Content-Type: application/json' \
--data-raw '{
"cmd": "generate_token",
"login": "YOUR_LOGIN_FOR_ADMIN_PANEL",
"password": "YOUR_PASSWORD_FOR_ADMIN_PANEL"
}'
|
Пример ответа:
{
"code": 0,
"odo": "0",
"message": "007898667a1b5711682399ea38a84f61"
}
|
В ответе вы получите токен. Используйте его в заголовке Authorization для дальнейших запросов.
Пример заголовка:
Authorization: Bearer 007898667a1b5711682399ea38a84f61
|
Основные команды
Для выполнения операций, нужно указать параметр cmd, который определяет, какую операцию вы хотите выполнить.
-
generate_token — получить токен для авторизации
-
start — начать аренду автомобиля
-
update — обновить данные аренды
-
stop — остановить аренду автомобиля
Параметры запроса
Все параметры передаются в формате JSON
Параметр
|
Тип
|
Обязательный
|
Описание
|
mva
|
int
|
Да
|
Числовой идентификатор арендованного транспортного средства
|
ra
|
int
|
Да
|
Номер договора аренды
|
plate_number
|
string
|
Да
|
Номерной знак автомобиля
|
driver_name
|
string
|
Да
|
Имя водителя, который арендует ТС
|
driver_phone
|
string
|
Да
|
Телефон водителя
|
driver_passport
|
string
|
Нет
|
Паспорт водителя
|
driver_address
|
string
|
Нет
|
Адрес водителя
|
driver_license
|
string
|
Нет
|
Номер водительских прав
|
driver_license_exp
|
string
|
Нет
|
Срок действия прав
|
driver_email
|
string
|
Нет
|
Email водителя
|
driver_birth_date
|
string
|
Нет
|
Дата рождения водителя
|
driver_sex
|
string
|
Нет
|
Пол (m или f)
|
driver_country
|
string
|
Нет
|
Страна водителя
|
driver_rating
|
int
|
Нет
|
Рейтинг водителя
|
ts_expected
|
int
|
Да
|
Ожидаемое время начала аренды (Unix timestamp)
|
te_expected
|
int
|
Да
|
Ожидаемое время окончания аренды (Unix timestamp)
|
ts_real
|
int
|
Нет
|
Фактическое время начала аренды (Unix timestamp)
|
te_real
|
int
|
Нет
|
Фактическое время окончания (Unix timestamp)
|
start_location
|
object
|
Да
|
Место начала аренды (с широтой, долготой или адресной строкой — lat, lon, address)
|
end_location
|
object
|
Да
|
Место окончания аренды (lat, lon или address)
|
rate_code
|
string
|
Нет
|
Код ставки аренды по договору
|
car_group_charged
|
string
|
Нет
|
Группа автомобиля
|
checkout_branch
|
string
|
Нет
|
Отделение выдачи
|
mileage_limit
|
int
|
Нет
|
Лимит пробега
|
cid
|
string
|
Нет
|
Идентификатор клиента, водителя, арендующего транспортное средство
|
Примеры запросов
Запуск аренды
curl --location --request POST 'https://<admin_address>/backend/app/contracts.php' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer 007898667a1b5711682399ea38a84f61' \
--data-raw '{
"cmd": "start",
"mva": 111,
"ra": 67890,
"plate_number": "ABC123",
"driver_name": "John Doe",
"driver_phone": "123-456-7890",
"ts_expected": 1644927600,
"te_expected": 1644981600,
"start_location": { "lat": 40.712776, "lon": -74.005974 },
"car_group_charged": "Economy"
}'
|
Ответ
{
"code": 0,
"odo": "1233",
"message": "Success"
}
|
В ответ возвращается:
code — код ответа
odo — значение одометра
message — текстовое сообщение о результате запроса
Обновление аренды
curl --location --request POST 'https://<admin_address>/backend/app/contracts.php' \
--header 'Authorization: Bearer 007898667a1b5711682399ea38a84f61' \
--header 'Content-Type: application/json' \
--data-raw '{
"cmd": "update",
"ra": 67890,
"plate_number": "ABC123",
"driver_name": "John Doe",
"driver_phone": "123-456-7890",
"mileage_limit": 2000
}'
|
Ответ
{
"code": 0,
"odo": "1208607",
"message": "Success"
}
|
Остановка аренды
curl --location --request POST 'https://<admin_address>/backend/app/contracts.php' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"cmd": "stop",
"ra": 67890,
"driver_rating": 4,
"end_location": {"address": "Ilino 2c"}
}'
|
Ответ
{
"code": 0,
"odo": "1208607",
"message": "Success"
}
|
Коды ответа и ошибок
0 — операция успешна
1 — автомобиль не найден
2 — нет изменений для обновления
3 — договор аренды не найден
4 — ошибка аутентификации
5 — неизвестная ошибка
6 — нет прав для выполнения операции
7 — модуль контрактов не активен
8 — этот номер договора аренды уже используется другой учётной записью
9 — автомобиль арендован другой учётной записью
10 — автомобиль не арендован
11 — некорректный запрос
12 — неверный параметр местоположения
13 — этот номер договора аренды используется другим агентом
14 — паспорт был передан, но не указано имя водителя
15 — имя водителя было передано, но не указан паспорт
16 — водитель не найден по предоставленным данным
17 — данные водителя не совпадают с ранее сохранёнными
18 — договор аренды с данным номером не найден
19 — этот договор аренды уже завершён
20 — автомобиль уже арендован
21 — водитель указан неверно
22 — существующий договор был закрыт, создан новый
500 — внутренняя ошибка сервера