P2P Motion - Public API
Base URI
Кількість запитів до даного API, наразі обмежується до n
запитів на годину за одним API Key, де n
= квоті в АРІ-ключі.
Кожен АРI-ключ містить наступні API-scopes: orders
, predictions
та geo-coding
. Кожен із наведених scopes, як правило, обмежений власною квотою на запити. Квоти в різних scopes можуть не збігатись. Наприклад, для orders
за АРІ-ключем може бути закріплено 300 запитів на годину, тоді як для geo-coding
лише 100.
Інформація щодо поточних обмежень міститься в заголовках відповіді кожного запиту. Відповідні заголовки:
- RateLimit-Limit: Кількість запитів, які можна виконати за годину часу (завжди сталий показник).
- RateLimit-Remaining: Кількість запитів, які залишились до вичерпання квоти. Перегляньте інформацію, наведену нижче, про те, як закінчується термін дії кожного окремого запиту.
- RateLimit-Reset: Час, коли закінчиться найстаріший запит у форматі Unix epoch time. Див. нижче, щоб отримати додаткову інформацію про те, як закінчується термін дії обмежень кожного окремого запиту.
Поки обсяг RateLimit-Remaining перевищує 0, Ви зможете виконувати додаткові запити.
Важливо розуміти спосіб, за яким виконані запити виключаються з ліміту. Замість того, щоб підраховувати всі запити протягом години - кожен окремий запит має власний таймер. Це означає, що кожен запит сприяє збільшенню кількості «RateLimit-Remaining» протягом однієї години після запиту. Коли таймер цього запиту закінчується, він більше не враховується до ліміту запитів.
Це має наслідки для значення заголовка “RateLimit-Reset”. Оскільки весь ліміт на запити не скидається одночасно, значення цього заголовка містить час, коли закінчиться найстаріший із виконаних запитів.
Якщо значення “RateLimit-Remaining” досягає нуля, наступні запити отримають код помилки 429, доки не відбудеться поновлення ліміту.
Створює замовлення і додає його на чергу до опрацювання.
За замовчуванням, система протягом 2-х хвилин після створення замовлення, шукатиме можливість доправити посилку одним із вільних кур’єрів, проте, якщо вільного кур’єра знайти не вдастся — оголошення буде одразу помічено як “відхилене” (зі статус-кодом 3
в полі info.status.code
). При цьому, якщо оголошення буде закріплено на опрацювання одним із кур’єрів — статус оголошення відповідно змінитья на 1
(в опрацюванні), а саме оголошення в полі courier
міститиме дані кур’єра, який займається транспортуванням.
Для отримання даних відносно оголошення рекомендовано запитувати його поточний статус з інтервалом 7-10 сек. Задля економії квоти на запити, перевіряти статус оголошення після його створення рекомендовано не раніше, як через 30-40 сек., оскільки вкрай малоімовірним є зміна статусу оголошення в коротший проміжок часу.
Request headers
Request body
Ім’я відправника, або коротка назва точки відправки.
Контактний номер телефону отримувача у форматі 0КК1122333, або +380КК1122333.
Група полів, що описує відправника в мережі Telegram.
ID користувача в системі Telegram, для прямого зв`язку кур’єра з відправником.
Ім’я користувача в системі Telegram, яке буде відображено в інтерфейсі кур’єра (без символу @
).
Не допускається використання довільного username.
Допустимим є лише дійсний username
з мережі Telegram. Використання довільного username може пошкодити навігацію в додатках Telegram та відображення в супутніх інтерфейсах системи.
Ім’я відправника, або коротка назва точки призначення.
Контактний номер телефону отримувача у форматі 0КК1122333, або +380КК1122333.
Група полів, що описує відправника в мережі Telegram.
ID користувача в системі Telegram, для прямого зв`язку кур’єра з отримувачем.
Ім’я користувача в системі Telegram, яке буде відображено в інтерфейсі кур’єра. (без символу @
)
Не допускається використання довільного username.
Допустимим є лише дійсний username
з мережі Telegram. Використання довільного username може пошкодити навігацію в додатках Telegram та відображення в супутніх інтерфейсах системи.
Параметри доставки.
Параметри відправки посилки.
Дата та час доставки замовлення у форматі ISO 8601.
Не може бути меншаю, ніж поточний час + 5 хв., інакше – буде повернуто помилку.
NOTE: Якщо дата відправки info.origin.date_time
та дата доставки info.destination.date_time
однакові – замовлення вважатиметься таким, що повинно бути доставлене так швидко, як лише можливо (en. ASAP).
Група полів, що описує розташування відправника.
Географічна широта у форматі UTM.
(на даний момент обмежена адм. регіоном Чернівецької обл.)
Географічна довгота у форматі UTM.
(на даний момент обмежена адм. регіоном Чернівецької обл.)
Форматована адреса відправника у форматі, що повертається Google geocoding для вказаної місцевості. Підтримуються, також, довільні способи опису адреси (довільний порядок компонентів, орфографічні помилки, тощо).
NOTE: Важливо щоб в результаті зворотного геокодування даного поля, унікально ідентифікувалось не більше однієї локації, інакше – буде повернуто повідомлення про помилку парсингу адреси.
NOTE: Якщо задано lat
та lng
, тоді formatted_address
може бути опціональним. Інакше – дане поле є обов’язковим.
Параметри отримання посилки.
Дата та час доставки замовлення у форматі ISO 8601.
Не може бути меншою, ніж час відправки + 10 хв, інакше – буде повернуто помилку.
NOTE: Якщо дата відправки info.origin.date_time
та дата доставки info.destination.date_time
однакові – замовлення вважатиметься таким, що повинно бути доставлене так швидко, як лише можливо (en. ASAP).
Група полів, що описує розташування отримувача.
Географічна широта у форматі UTM.
(на даний момент обмежена адм. регіоном Чернівецької обл.)
Географічна довгота у форматі UTM.
(на даний момент обмежена адм. регіоном Чернівецької обл.)
Форматована адреса отримувача у форматі, що повертається Google geocoding для вказаної місцевості. Підтримуються, також, довільні способи опису адреси (довільний порядок компонентів, орфографічні помилки, тощо).
NOTE: Важливо щоб в результаті зворотного геокодування даного поля, унікально ідентифікувалось не більше однієї локації, інакше – буде повернуто повідомлення про помилку парсингу адреси.
NOTE: Якщо задано lat
та lng
, тоді formatted_address
може бути опціональним. Інакше – дане поле є обов’язковим.
Зворотній супровід коштів.
Використовується у випадку, коли кур’єр повинен доправити оплату за передану ним посилку назад до відправника.
Сума повернення – обсяг коштів, що підлягає поверненню.
Код валюти у форматі ISO 4217, в якій проходить операція. На даний момент, підтримується лише UAH
, USD
, EUR
.
Пріоритет виконання доставки
Одразу після доставки
У випадку використання – одразу генерується замовлення на аналоігчний маршрут в зворотному напрямі.
Тарифікація здійснюється як за подвійну поїздку.
В кінці дня
Кошти можуть бути повернені не пізніше як 18:00 поточного дня. До цього часу, кур’єр може оптимально розподілити маршрут для зменшення витрат.
Вартість послуги:
- Безкоштовно, якщо кур’єру довелось повертатись в місце відправки за наст. замовленням, або в близьку іколиці.
- По вартості поїздки від пункту призначення замовлення в напрямі пункту отримання замовлення кур’єром (зворотна доставка).
За 3 дні
Аналогічно до опції 1
, проте час на досвтавку коштів складає 3 дні.
Безкоштовний безготівковий переказ на картку/рахунок відправника [ОЧІКУЄ ВПРОВАДЖЕННЯ]
Опціональні нотатки.
Можуть використовуватись для вказання відправником важливої для кур’єра інформації, наприклад: номеру під’їзда, квартири, комбінацію кодового замка, тощо.
Examples
Приклад запиту із вказанням даних з мережі Telegram та із опціює “зворотня доставка коштів”.
{
"sender": {
"name": "Serhii",
"phone": "+380508242618",
"telegram": {
"user_id": 189900134,
"username": "meketiuk"
}
},
"receiver": {
"name": "Serhii",
"phone": "+380508242618",
"telegram": {
"user_id": 189900134,
"username": "meketiuk"
}
},
"info": {
"origin": {
"date_time": "2015-02-20T19:29:31.238Z",
"location": {
"lat": 48.2857435,
"lng": 25.9380153,
"formatted_address": "вулиця Шевченка, 28, Чернівці, Чернівецька область, Україна, 58000"
}
},
"destination": {
"date_time": "2015-02-20T19:29:31.238Z",
"location": {
"lat": 48.2857435,
"lng": 25.9380153,
"formatted_address": "вулиця Шевченка, 28, Чернівці, Чернівецька область, Україна, 58000"
}
},
"escrow": {
"cost": {
"amount": 45.5,
"currency_code": "UAH"
},
"priority_type": "3"
},
"memo": ""
}
}
Приклад запиту без вказання даних з мережі Telegram та без зворотньої доставки коштів.
{
"sender": {
"name": "Serhii",
"phone": "+380508242618"
},
"receiver": {
"name": "Serhii",
"phone": "+380508242618"
},
"info": {
"origin": {
"date_time": "2015-02-20T19:29:31.238Z",
"location": {
"lat": 48.2857435,
"lng": 25.9380153,
"formatted_address": "вулиця Шевченка, 28, Чернівці, Чернівецька область, Україна, 58000"
}
},
"destination": {
"date_time": "2015-02-20T19:29:31.238Z",
"location": {
"lat": 48.2857435,
"lng": 25.9380153,
"formatted_address": "вулиця Шевченка, 28, Чернівці, Чернівецька область, Україна, 58000"
}
},
"memo": ""
}
}
Повертає перелік замовлень, зареєстрованих за вказаним API Key
.
Request parameters
id
користувача в системі P2P Motion
В черзі на опрацювання
Виконується
Виконано
Відхилено
Фільтр по даті та часу створення замовлення у форматі ISO 8601.
WARN: Обов’язковий параметер якщо to_date_time
передано в запиті.
Фільтр по даті та часу створення замовлення у форматі ISO 8601.
WARN: Обов’язковий параметер якщо from_date_time
передано в запиті.
Request headers
Responses
Body
{ORDER_ID}
/Повертає перелік замовлень, зареєстрованих за вказаним API Key
.
Path variables
Request headers
Responses
Body
Повертає форматовану адресу, що відповідає отриманій адресі address
, або ж координатам (lat, lng)
.
У випадку, якщо передана адреса не може бути унікально ідентифікована – буде повернуто декілька припущень.
Request parameters
Географічна широта у форматі UTM.
(на даний момент обмежена адм. регіоном Чернівецької обл.)
INFO: Обов’язковий параметр, якщо address
відсутній в запиті.
Географічна довгота у форматі UTM.
(на даний момент обмежена адм. регіоном Чернівецької обл.)
INFO: Обов’язковий параметр, якщо address
відсутній в запиті.
Адреса у форматі, що повертається Google geocoding для вказаної місцевості.
Підтримуються, також, довільні способи опису адреси (довільний порядок компонентів, орфографічні помилки, тощо).
INFO: Обов’язковий параметр, якщо lat
та lng
не передаються.
Локалізувати видачу укр. мовою.
Локалізувати видачу рос. мовою.
Для деяких регіонів, відсутня рос. локалізація.
Request headers
Responses
Body
Передана адреса, або координати не можуть бути декодовані.
Деякі із параметрів вказано у невідповідному форматі. response.message
міститиме більше інформації.
Повертає вартість виконання замовлення найближчим кур’єром на основі переданих вхідних даних. Використовується для прогнозування кінцевої вартості замовлення для клієнта.
Request parameters
Адреса відправника у форматі, що повертається Google geocoding для вказаної місцевості. Підтримуються, також, довільні способи опису адреси (довільний порядок компонентів, орфографічні помилки, тощо).
NOTE: Важливо щоб в результаті зворотного геокодування даного поля, унікально ідентифікувалось не більше однієї локації, інакше – буде повернуто повідомлення про помилку парсингу адреси.
NOTE: Якщо задано lat
та lng
, тоді origin_formatted_address
може бути опціональним. Інакше – дане поле є обов’язковим.
Адреса отримувача у форматі, що повертається Google geocoding для вказаної місцевості. Підтримуються, також, довільні способи опису адреси (довільний порядок компонентів, орфографічні помилки, тощо).
NOTE: Важливо щоб в результаті зворотного геокодування даного поля, унікально ідентифікувалось не більше однієї локації, інакше – буде повернуто повідомлення про помилку парсингу адреси.
NOTE: Якщо задано lat
та lng
, тоді destiantion_formatted_address
може бути опціональним. Інакше – дане поле є обов’язковим.
Запит не містить Headers: X-API-Key
, він є не коректним, або ж досягнуто квоти на запити для даного scope.
Body
Стутус код не є одним з переліку доступних
Body
Дата вказана у невірному форматі
Body
Кур’єра за вказаними критеріями не знайдено у системі P2P Motion
P2P Motion user idenfier
[
"Client"
]
Параметри доставки замовлення.
Параметри відправки посилки.
Дата та час доставки замовлення у форматі ISO 8601.
Не може бути меншаю, ніж поточний час + 5 хв., інакше – буде повернуто помилку.
NOTE: Якщо дата відправки info.origin.date_time
та дата доставки info.destination.date_time
однакові – замовлення вважатиметься таким, що повинно бути доставлене так швидко, як лише можливо (en. ASAP).
Група полів, що описує розташування відправника.
Параметри отримання посилки.
Дата та час доставки замовлення у форматі ISO 8601.
Не може бути меншою, ніж час відправки + 10 хв, інакше – буде повернуто помилку.
NOTE: Якщо дата відправки info.origin.date_time
та дата доставки info.destination.date_time
однакові – замовлення вважатиметься таким, що повинно бути доставлене так швидко, як лише можливо (en. ASAP).
Група полів, що описує розташування отримувача.
Вартість виконання замовлення кур’єром.
В черзі на опрацювання
Опрацьовується
Доставлено
Відхилено
Використовується в поєднанні з кодом 3 для пояснення причини відхилення.
Дата та час створення замовлення у форматі ISO 8601.
Опціональні нотатки.
Можуть використовуватись для вказання відправником важливої для кур’єра інформації, наприклад: номеру під’їзда, квартири, комбінацію кодового замка, тощо.
Географічна широта у форматі UTM.
Географічна довгота у форматі UTM.
Адреса, введена користувачем.
Зберігається в незмінному вигляді, оскільки в процесі обробки можуть бути втрачені деякі компоненти, які користувач вказав, наприклад, номер будинку.
Скорочена форматована адреса.
Призначена для короткої інформативної видачі.
Повна ареса у форматі, що відповідає прийнятому в поточній місцевості.
Параметри зворотньої доставки коштів за передану посилку.
Сума повернення – обсяг коштів, що підлягає поверненню.
Валюта повернення
Одразу після доставки
У випадку використання – одразу генерується замовлення на аналоігчний маршрут в зворотному напрямі.
Тарифікація здійснюється як за подвійну поїздку.
До 18:00 поточного дня
Кошти можуть бути повернені не пізніше як 18:00 поточного дня. До цього часу, сервіс може оптимально розрахувати маршрути для зменшення кінцевої вартості зворотної доставки.
Вартість послуги:
- Безкоштовно, якщо кур’єру довелось повертатись в місце відправки за наст. замовленням, або в близькі околиці.
- По вартості поїздки від пункту призначення замовлення в напрямі до пункту отримання замовлення кур’єром (зворотна доставка).
За 3 дні
Аналогічно до опції 1, проте час на досвтавку коштів складає 3 дні.
Безкоштовний безготівковий переказ на картку/рахунок відправника [ОЧІКУЄ ВПРОВАДЖЕННЯ]