Как подключить сервис такси Максим к вашему веб‑сайту, мобильному приложению или бизнес‑системе

Хотите внедрить такси «Максим» в свой проект? Даем готовый код, учим получать API-ключи и настраивать интеграцию быстро и без лишних сложностей!

В этой статье мы подробно расскажем, как подключить сервис такси «Максим» к вашему веб‑сайту, мобильному приложению или бизнес‑системе. Вы узнаете, какие требования необходимо выполнить, как получить API‑ключи, а также получите готовый пример кода для самых популярных платформ.


Что такое сервис «Такси Максим»?

«Такси Максим» – один из крупнейших операторов такси в России. Компания предоставляет открытый API для интеграции, позволяющий:

  • Заказывать поездки напрямую из вашего продукта;
  • Отслеживать статус заказа в реальном времени;
  • Получать информацию о стоимости и маршруте;
  • Обрабатывать оплату через встроенные платёжные шлюзы.

Основные требования перед началом интеграции

  1. Регистрация компании в системе «Такси Максим». Для этого необходимо иметь юридическое лицо и ИНН.
  2. Доступ к интернету и возможность размещать серверный код (PHP, Node.js, Python и т.д.).
  3. Для мобильных приложений – активный аккаунт разработчика в Google Play Console или Apple Developer Program.
  4. Базовые навыки работы с REST‑API и JSON.

Регистрация и получение доступа к API

Следуйте этим шагам, чтобы получить необходимые ключи:

  1. Перейдите на портал партнёров «Такси Максим» и нажмите кнопку «Регистрация».
  2. Заполните форму: название компании, ИНН, контактные данные, юридический адрес.
  3. После проверки (обычно 1‑3 рабочих дня) вам придёт письмо с подтверждением и ссылкой на личный кабинет партнёра.
  4. В личном кабинете откройте раздел «API‑ключи» и нажмите «Создать новый ключ». Выберите тип доступа:
    • Тестовый – для разработки и отладки;
    • Продакшн – для реального использования.
  5. Сохраните Client ID и Client Secret – они понадобятся в коде.

Техническая документация

Официальная документация доступна по адресу https://api.taxi-maxim.ru/docs. В ней описаны:

  • База URL: https://api.taxi-maxim.ru/v1/
  • Методы: POST /order/create, GET /order/status, POST /order/cancel и др.
  • Формат запросов/ответов (JSON).
  • Коды ошибок и рекомендации по их обработке.

Пример интеграции на стороне сервера (PHP)

Ниже – минимальный рабочий пример создания заказа через API.

<?php
$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
$apiUrl = 'https://api.taxi-maxim.ru/v1/order/create';

// Получаем токен
$tokenResponse = file_get_contents('https://api.taxi-maxim.ru/v1/auth/token', false, stream_context_create([
 'http' => [
 'method' => 'POST',
 'header' => "Content-Type: application/json
",
 'content' => json_encode([
 'client_id' => $clientId,
 'client_secret' => $clientSecret,
 'grant_type' => 'client_credentials'
 ])
 ]
]));
$tokenData = json_decode($tokenResponse, true);
$accessToken = $tokenData['access_token'];

// Формируем запрос на заказ
$orderData = [
 'city' => 'Москва',
 'address_from'=> 'ул. Тверская, 10',
 'address_to' => 'ул. Арбат, 5',
 'phone' => '+7 -161234567',
 'class' => 'econom',
 'comment' => 'Встреча у метро'
];

$options = [
 'http' => [
 'method' => 'POST',
 'header' => "Content-Type: application/json
Authorization: Bearer $accessToken
",
 'content' => json_encode($orderData)
 ]
];

$response = file_get_contents($apiUrl, false, stream_context_create($options));
$result = json_decode($response, true);

if (isset($result['order_id'])) {
 echo "Заказ успешно создан! ID: " . $result['order_id'];
} else {
 echo "Ошибка: " . $result['error_message'];
}
?>

Интеграция в мобильное приложение

6.1 Android (Kotlin)

Для Android используйте библиотеку Retrofit + OkHttp.

val retrofit = Retrofit.Builder
 .baseUrl("https://api.taxi-maxim.ru/v1/")
 .addConverterFactory(GsonConverterFactory.create)
 .build

interface MaximApi {
 @POST("auth/token")
 suspend fun getToken(@Body body: TokenRequest): TokenResponse

 @POST("order/create")
 suspend fun createOrder(
 @Header("Authorization") token: String,
 @Body order: OrderRequest
 ): OrderResponse
}

// Пример вызова
CoroutineScope(Dispatchers.IO).launch {
 val tokenResp = api.getToken(TokenRequest(clientId, clientSecret, "client_credentials"))
 val orderResp = api.createOrder("Bearer ${tokenResp.access_token}", orderRequest)
 withContext(Dispatchers.Main) {
 // Обновляем UI
 }
}

6.2 iOS (Swift)

Для iOS удобно использовать URLSession или Alamofire.

struct TokenRequest: Encodable {
 let client_id: String
 let client_secret: String
 let grant_type = "client_credentials"
}

struct OrderRequest: Encodable {
 let city: String
 let address_from: String
 let address_to: String
 let phone: String
 let `class`: String
 let comment: String
}
// Получение токена
func fetchToken(completion: @escaping (String?) -> Void) {
 let url = URL(string: "https://api.taxi-maxim.ru/v1/auth/token")!
 var request = URLRequest(url: url)
 request;httpMethod = "POST"
 request.setValue("application/json", forHTTPHeaderField: "Content-Type")
 let body = TokenRequest(client_id: CLIENT_ID, client_secret: CLIENT_SECRET)
 request.httpBody = try? JSONEncoder;encode(body)

 URLSession.shared.dataTask(with: request) { data, _, _ in
 guard let data = data,
 let tokenResp = try? JSONDecoder.decode(TokenResponse.self, from: data) else {
 completion(nil); return
 }
 completion(tokenResp.access_token)

 }.resume
}

// Создание заказа
func createOrder(token: String, order: OrderRequest, completion: @escaping (OrderResponse?) -> Void) {
 let url = URL(string: "https://api.taxi-maxim.ru/v1/order/create")!
 var request = URLRequest(url: url)
 request.httpMethod = "POST"
 request.setValue("application/json", forHTTPHeaderField: "Content-Type")
 request.setValue("Bearer (token)", forHTTPHeaderField: "Authorization")
 request.httpBody = try? JSONEncoder.encode(order)

 URLSession.shared.dataTask(with: request) { data, _, _ in
 guard let data = data,
 let resp = try? JSONDecoder.decode(OrderResponse.self, from: data) else {
 completion(nil); return
 }
 completion(resp)
 }.resume
}

Тестирование и переход в продакшн

  • Тестовый режим позволяет создавать «виртуальные» заказы без реального вызова машины.
  • Проверьте каждый сценарий:
    • Успешный заказ;
    • Отказ в оплате;
    • Отмена заказа;
    • Обновление статуса в реальном времени.
  • После подтверждения корректности работы переключитесь на Production‑ключи и обновите URL‑ы в конфигурации.

Часто задаваемые вопросы (FAQ)

  1. Почему получаю ошибку 401? – Неправильный Client Secret или истёк токен. Сгенерируйте новый токен.
  2. Можно ли использовать один токен для всех запросов? – Токен действителен 24 часа. Рекомендуется кэшировать его и обновлять по истечении срока.
  3. Как получить стоимость поездки до её создания? – Вызовите метод GET /order/price с параметрами маршрута.
  4. Поддерживает ли API мульти‑картинные заказы? – Да, используйте параметр multi_route=true в запросе.

Подключение сервиса такси «Максим» к вашему продукту – процесс, который требует лишь базовых навыков работы с REST‑API и небольших усилий по настройке. Следуя описанным выше шагам, вы сможете быстро начать принимать заказы, отслеживать их статус и предлагать клиентам удобный способ перемещения по городу.

Помните: всегда тестируйте в режиме sandbox перед переходом в продакшн, храните Client Secret в безопасном месте и регулярно проверяйте документацию на предмет обновлений.


Автор статьи: Ваш помощник. © 2026