Запросы от Провайдера к POIS

SendMoisUrl

Отправка Провайдером своего URL для MOIS, с указанием сервера, если необходимо.

POST-запрос

https://POISUrl/SendMoisUrl?apiKey=ProviderApiKey&serverId=ServerId&url=newUrl

Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
ServerId ID сервера, если у провайдера несколько серверов. Если нет – 0
newUrl URL, куда другим Провайдерам следует обращаться для обмена MOIS-запросами с данным Провайдером

Тело запроса:

Отсутствует.

Ответ

Ответ не содержит тела, результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - некорректный или пустой ключ ProviderApiKey.

GetProperties

Запрос у POIS набора свойств, которым можно оперировать для описания свойств водителей и заказов.

GET-запрос

https://POISUrl/GetProperties?apiKey=ProviderApiKey&language=ru
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
ru локализация языка для отображения свойств

Ответ

Ответ от POIS - JSON с массивом свойств и допустимых значений вида:

[
  {
    "Name":"Places", // имя свойства - ключ, по которому это свойство будет опознаваться при передаче в методах
    "Description":"Количество мест", //  локализованное название свойства
    "Type":"int", // тип свойства, допустимые варианты: int - числовое, string - строковое, bool - логическое
    "AllowedValues":["4","5","7"] //  допустимые значения свойства
  }
]

SendDriverProperties

Отправка на POIS информации по свойствам водителя (при изменении свойств).

POST-запрос

https://POISUrl/SendDriverProperties?apiKey=ProviderApiKey&driverId=DriverId&serverId=ServerId
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
DriverId ID водителя
ServerId ID сервера, если у провайдера несколько серверов. Если нет – 0

Тело запроса (JSON)

[
  {
    "PropertyName":"Places","PropertyValue":"4"
  },
  {
    "PropertyName":"CarModel","PropertyValue":"Toyota Rav4"
  }
] // массив свойств автомобиля

Ответ

Ответ не содержит тела, результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - некорректный или пустой ключ ProviderApiKey.

SendDriverInfo

Отправка на POIS текущей информации по водителю (при изменении координаты или статуса).

POST-запрос

https://POISUrl/SendDriverInfo?apiKey=ProviderApiKey

Тело запроса (JSON)

{
  "DriverId":1, // Id водителя
  "ServerId":25, // Id сервера, если у провайдера несколько серверов. Если нет – 0
  "Free":true, // свободен ли водитель (true – свободен, false – занят)
  "Position":{"Latitude":55.7672,"Longitude":37.588073} // координата текущего местонахождения водителя
}

Ответ

Ответ не содержит тела, результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - некорректный или пустой ключ ProviderApiKey.

SendDriverInfos

Отправка на POIS текущей информации по водителям(при изменении координаты или статуса).

POST-запрос

https://POISUrl/SendDriverInfos?apiKey=ProviderApiKey

Тело запроса (JSON)

{[{
  "DriverId":1, // Id водителя
  "ServerId":25, // Id сервера, если у провайдера несколько серверов. Если нет – 0
  "Free":true, // свободен ли водитель (true – свободен, false – занят)
  "Position":{"Latitude":55.7672,"Longitude":37.588073} // координата текущего местонахождения водителя
},
{
  "DriverId":2, // Id водителя
  "ServerId":25, // Id сервера, если у провайдера несколько серверов. Если нет – 0
  "Free":true, // свободен ли водитель (true – свободен, false – занят)
  "Position":{"Latitude":55.7672,"Longitude":37.588073} // координата текущего местонахождения водителя
}]}

Ответ

Ответ не содержит тела, результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - некорректный или пустой ключ ProviderApiKey.

GetDrivers

Запрос Провайдером указанного количества подходящих водителей с указанными свойствами, в заданном радиусе. Также можно передавать несколько фильтров.

POST-запрос

https://POISUrl/GetDrivers?apiKey=ProviderApiKey&serverId=ServerId
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
ServerId ID сервера, если у провайдера несколько серверов. Если нет – 0

Два фильтра свойств применяются по или.

Тело запроса (JSON)

{
  "Coordinate":{"Latitude":55.8028,"Longitude":37.6369}, // координаты точки, вокруг которой запрашиваются водители
  "Properties":null, // массив требуемых свойств автомобиля (устарело)
  "OrderId":"123456", // номер заказа
  "PropertiesFilter":[
    {
      "Properties":[
        {"PropertyName":"Places","PropertyValue":"4"},
        {"PropertyName":"YearOfManufacture","PropertyValue":"2018"}]
    },
    {
      "Properties":[
        {"PropertyName":"Places","PropertyValue":"4"},
        {"PropertyName":"YearOfManufacture","PropertyValue":"2016"},
        {"PropertyName":"CarModel","PropertyValue":"Mercedes, Hyundai"}]
    }], // массив требуемых свойств автомобиля
  "Radius":3.5, // радиус, в котором требуются свободные водители. Максимально допустимо 4 км
  "AllDrivers":0 // Не вовзвращать своих собственных водителей, флагом 0/1
  "MaxCount":100 // максимальное возвращаемое количество водителей. Максимально допустимо - 100
}

Ответ

Ответ от POIS - JSON вида (водители сгруппированы в массив по провайдерам)

[
  {
    "ProviderId":2, // ID провайдера
    "ProviderName":"Такси СуперСервис", // Название провайдера
    "Drivers":[ // список ID водителей, с указанием сервера (сервер необязателен, если у провайдера он один)
      {
        "ServerId":71,
        "DriverId":1,
        "GroupId":78,
        "Coordinate": {"Latitude":54.7265642,"Longitude":20.525276},
        "CarModel":"Volkswagen Golf",
        "YearOfManufacture":2017
      },
      {
        "ServerId":71,
        "DriverId":2,
        "GroupId":78,
        "Coordinate": {"Latitude":54.7265642,"Longitude":20.525276},
        "CarModel":"Volkswagen Passat",
        "YearOfManufacture":2015
      }]
  },
  {
    "ProviderId":3,
    "ProviderName":"Какой-то провайдер3",
    "Drivers": [
      {
        "ServerId":1,
        "DriverId":78,
        "GroupId":4,
        "Coordinate": {"Latitude":54.7265642,"Longitude":20.525276},
        "CarModel":"Ford Fiesta",
        "YearOfManufacture":2020
      },
      {
        "ServerId":2,
        "DriverId":95,
        "GroupId":5,
        "Coordinate": {"Latitude":54.7265642,"Longitude":20.525276},
        "CarModel":"Kia Sorento",
        "YearOfManufacture":2011
      }]
  }
]

Дополнительно результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - некорректный или пустой ключ ProviderApiKey, переданы некорректные параметры или несуществующие координаты.

GetMoisData

Запрос Провайдером информации по MOIS, с указанием своего сервера (если необходимо), для другого Провайдера2 и его сервера (куда обращаться к Провайдеру2 и его серверу для работы по MOIS).

GET-запрос

https://POISUrl/GetMoisData?apiKey=ProviderApiKey&serverId=ServerId&providerIdFor=ProviderIdFor&serverIdFor=ServerIdFor
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
ServerId ID сервера запрашивающего провайдера
ProviderIdFor ID провайдера, по которому требуется информация
ServerIdFor ID сервера, по которому требуется информация

Ответ

Ответ от POIS - JSON вида

{
  "ProviderId":2, // ID провайдера для которого запрашивается ключ
  "ProviderName":"Такси СуперСервис", // имя провайдера для которого запрашивается ключ
  "ServerId":71, // ID сервера провайдера (может отсутствовать, либо 0)
  "ProviderMoisUrl":"http://localhost:9010", // MOIS-Url для связи с указанным в параметрах Провайдером и сервером
  "YourMoisApiKeyForProvider":"3591098164444b12b13163b8913de258", // ключ, с которым следует обращаться к указанному Провайдеру и серверу
  "ProviderMoisApiKeyForYou":"d45e37706bbb4e64905c501aad58f727" // ключ, с которым к запрашивающему Провайдеру будет обращаться указанные в запросе Провайдер с указанного сервера
}

Дополнительно результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - некорректный или пустой ключ ProviderApiKey, переданы некорректные параметры или несуществующие координаты.

GetMoisDataByKey

Запрос Провайдером информации по MOIS, с указанием ключа другого Провайдера2 (куда обращаться к Провайдеру2 и его серверу для работы по MOIS).

GET-запрос

https://POISUrl/GetMoisDataByKey?apiKey=ProviderApiKey&serverId=ServerId&moisKey=MoisKey
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
ServerId ID сервера запрашивающего провайдера
MoisKey ключ MOIS провайдера, по которому нужна информация

Ответ

Ответ от POIS - JSON вида

{
  "ProviderId":2, // ID провайдера для которого запрашивается ключ
  "ProviderName":"Такси СуперСервис", // имя провайдера для которого запрашивается ключ
  "ServerId":71, // ID сервера провайдера (может отсутствовать, либо 0)
  "ProviderMoisUrl":"http://localhost:9010", // MOIS-Url для связи с указанным в параметрах Провайдером и сервером
  "YourMoisApiKeyForProvider":"3591098164444b12b13163b8913de258", // ключ, с которым следует обращаться к указанному Провайдеру и серверу
  "ProviderMoisApiKeyForYou":"d45e37706bbb4e64905c501aad58f727" // ключ, с которым к запрашивающему Провайдеру будет обращаться указанные в запросе Провайдер с указанного сервера
}

Дополнительно результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - некорректный или пустой ключ ProviderApiKey или не найден провайдер с переданным параметром providerIdFor.

GetProviderBalanceHistory

Запрос Провайдером истории изменения баланса провайдера за период, не позднее месяца назад.

GET-запрос

https://POISUrl/GetProviderBalanceHistory?apiKey=ProviderApiKey
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером

Тело запроса (JSON)

{
   "TimeFrom":"2018-05-01T00:00", // дата-время в формате ISO 8601
   "TimeTo":"2018-05-31T23:59", // дата-время в формате ISO 8601
   "ServerId":75, //идентификатор сервера
   "AccountId":"1248" // лицевой счет
}

Ответ -JSON вида

[
  {
    "ServerId":1, //id сервера SeDi
    "SediOrderId":"25757", //id заказа SeDi
    "IsCashless":0, //наличный - 0, безналичный - 1
    "ProviderToSedi":0, //направление заказа(1 - от Провадера в СеДи, 0 - от СеДи к Провайдеру)
    "OrderCost":250, //стоимость заказа
    "Sum":-25, //сумма отчисления провайдеру(с минусом - Провайдер платит СеДи, с плюсом - СеДи платит Провайдеру)
    "Percent":10, //процент от заказа(Sum = Percent от OrderCost, для сверки)
    "AccountId":1248 //лицевой счет
  },
  {
    "ServerId":2, //id сервера SeDi
    "SediOrderId":"25750", //id заказа SeDi
    "IsCashless":0, //наличный - 0, безналичный - 1
    "ProviderToSedi":0, //направление заказа(1 - от Провадера в СеДи, 0 - от СеДи к Провайдеру)
    "OrderCost":200, //стоимость заказа
    "Sum":-20, //сумма отчисления провайдеру(с минусом - Провайдер платит СеДи, с плюсом - СеДи платит Провайдеру)
    "Percent":10, //процент от заказа(Sum = Percent от OrderCost, для сверки)
    "AccountId":1248 //лицевой счет
  },
  {
    "ServerId":2, //id сервера SeDi
    "SediOrderId":"25850", //id заказа SeDi
    "IsCashless":0, //наличный - 0, безналичный - 1
    "ProviderToSedi":1, //направление заказа(1 - от Провадера в СеДи, 0 - от СеДи к Провайдеру)
    "OrderCost":300, //стоимость заказа
    "Sum":30, //сумма отчисления провайдеру(с минусом - Провайдер платит СеДи, с плюсом - СеДи платит Провайдеру)
    "Percent":10, //процент от заказа(Sum = Percent от OrderCost, для сверки)
    "AccountId":1248 //лицевой счет
  }
]

GetGroupActivityStatistics

Запрос Провайдером статистики активности группы

POST-запрос

https://POISUrl/GetGroupActivityStatistics?apiKey=ProviderApiKey
Параметр Описание
ProviderApiKey API ключ для POIS, полученный провайдером
Year Год
Month Месяц
Day День
GroupingDate тип группировки по времени (день/неделя/месяц/год). Возможные значения: Day, Week, Month, Year
GroupingOwner тип группировки по владельцу(группа/сервер). Возможные значения: Group, Server

Тело запроса (JSON)

{
  "Year":2024,            // год
  "Moth":12,              // месяц
  "Day":0,                // день
  "GroupingDate":"Month", // тип группировки по времени (день/неделя/месяц/год)
  "GroupingOwner":"Group" // тип группировки по владельцу(группа/сервер)
}

Ответ

Ответ от POIS - JSON вида

[
    {
        "Year": 2025,                 //Год
        "Month": 2,                   //Месяц
        "Day": 1,                     //День
        "Week": 5,                    //Неделя
        "ServerId": 75,               //ID сервера
        "GroupId": 48,                //ID группы
        "DriverRegistrationCount": 0, //Количество регистраций водителей
        "DriverPermitToWorkCount": 0, //Количество допусков к работе
        "PermittedDriversCount": 196, //Количество в группе водителей с допуском к работе (среднее значение)
        "ActiveDriversCount": 0       //Активных водителей за период (среднее значение)
    },
    {
        "Year": 2025,                 //Год
        "Month": 2,                   //Месяц
        "Day": 2,                     //День
        "Week": 5,                    //Неделя
        "ServerId": 75,               //ID сервера
        "GroupId": 48,                //ID группы
        "DriverRegistrationCount": 0, //Количество регистраций водителей
        "DriverPermitToWorkCount": 0, //Количество допусков к работе
        "PermittedDriversCount": 196, //Количество в группе водителей с допуском к работе (среднее значение)
        "ActiveDriversCount": 0       //Активных водителей за период (среднее значение)
    }
]

Поля будут заполнены либо пустые, в зависимости от заданного типа группировки.

Дополнительно результат описывается кодом HTTP-ответа.
200 OK - запрос выполнен полностью без ошибок.
400 Bad Request - некорректный или пустой ключ ProviderApiKey, переданы некорректные параметры.
403 Forbidden - слишком много запросов