Оформлення відправки посилок з вашої адреси відправника
Виклик кур'єра забезпечує можливість відправляти посилки з адреси. Через API клієнти можуть створювати запити на виклик кур'єра, керувати часовими інтервалами візиту, скасовувати та редагувати заявки.
У цій статті описані основні аспекти роботи з викликом кур'єра через API.
Методи виклику кур'єра в API
POST /pickups:
створення заявки на виклик кур'єра
Відповідь: ID створеної заявки зі статусом Draft. Поки заявка знаходиться у статусі Draft її можна видалити, якщо передумали викликати кур’єра.
Параметри:
- 1address: адреса виклику кур'єра (адреса відправника)
- 2pickedTimeFrom і pickedTimeTo: інтервал часу, коли прибуде кур'єр
- 3contactPhone і contactName: контактні дані відправника
POST /pickups/{id}/shipments:
додавання у заявку посилок, що будуть відправлені кур'єром в межах одного виклику
Параметри:
- 1Масив ID шипментів: shipmentId[]
Умови:
- 1Відправлення мають бути у статусі ReadyToShip.
- 2Всі посилки в межах однієї заявки мають мати однакову адресу відправки.
- 3Одна посилка може бути додана лише до однієї заявки на виклик кур'єра.
PUT /pickups/{id}/status:
зміна статусу заявки
Відповідь: підтвердження зміни статусу
- 1Переводить заявку у статус Created, підтверджуючи готовність до виконання.
Можливо, якщо у заявці є хоча б одне відправлення та всі відправлення в заявці повинні бути у статусі Paid або ContractAfterPayment. - 2Переводить заявку зі статусу Created у статус ClientCanceled, у випадку якщо необхідно скасувати виклик у статусі Created.
POST /time-intervals/find:
отримання доступних для вибору часових інтервалів для візиту кур'єра
Відповідь: масив доступних інтервалів.
Параметри:
- 1address: адреса виклику кур'єра (адреса відправника)
- 2country: країна відправки
- 3type: виклик кур’єра день в день PickupDayToDay або наступного дня PickupNextDay.
Обмеження: Виклик кур'єра день в день PickupDayToDay вже працює у Варшаві. Нові міста та країни додаються.
В інших містах та країнах працює виклик кур'єра наступного дня PickupNextDay.
GET /pickups/{id}/shipments:
отримання переліку посилок, що додані в заявку на виклик кур'єра
Відповідь: перелік усіх відправлень, доданих до конкретної заявки на виклик кур'єра.
DEL /pickups/{id}/shipments:
видалення посилок із заявки
Параметри:
- 1Масив ID шипментів
Умови:
- 1Заявка має бути у статусі Draft
DEL /pickups/{id}:
видалення заявки на виклик кур'єра
Умови:
- 1Видаляє заявку повністю, якщо вона у статусі Draft.
- 2Заявки в статусі Created видалити не можливо, вони мають бути скасовані шляхом зміни статусу у ClientCanceled.
GET /pickups:
відстеження стану поточних заявок на виклик кур'єра
Відповідь: перелік заявок із вказанням їх статусів: Draft, Created, ClientCanceled тощо.
Логіка роботи виклику кур’єра через API
- 1Створення заявки на виклик кур'єра
Клієнт викликає метод POST /pickups для створення нової заявки. На цьому етапі заявка отримує статус Draft. У цьому статусі клієнт може:- 1.1Додавати або видаляти посилки.
- 1.2Змінювати адресу або часові інтервали.
- 2Додавання посилок у заявку на виклик кур'єра
Посилки додаються через метод POST /pickups/{id}/shipments. Для цього клієнт передає масив ID посилок, які необхідно додати.
Обмеження:- 2.1Посилки мають бути у статусі ReadyToShip.
- 2.2Посилки з іншою адресою відправника не можуть бути додані.
- 3Вказання дати/часу прибуття кур’єра
Після додавання посилок треба вказати дату та час візиту кур'єра:- 3.1За допомогою POST /time-intervals/find отримує доступні часові інтервали та вибирає зручний.
- 3.2Вибраний інтервал передається у параметри pickedTimeFrom і pickedTimeTo.
- 4Зміна статусу заявки
Коли всі посилки додані, клієнт переводить заявку у статус Created за допомогою PUT /pickups/{id}/status. У цьому статусі заявка готова до виконання.
Обмеження:- 4.1Шипменти мають бути у статусі Paid або ContractAfterPayment.
- 4.2Змінювати заявку більше не можна, окрім зміни часового інтервалу.
- 5Перегляд заявок
Клієнт може отримати список своїх заявок за допомогою методу GET /pickups. У відповіді клієнт побачить поточний статус кожної заявки.
Статуси заявок:- 5.1Draft: Початковий статус заявки. В цьому статусі клієнт може додавати або видаляти посилки.
- 5.2Created: Після переведення в цей статус заявка вважається готовою для обробки кур'єром.
- 5.3AppointedCourier: На заявку призначений кур'єр.
- 5.4InProgress: Кур'єр виконує візит на адресу відправника.
- 5.5ReceivedByCourier: Кур'єр прийняв посилки у відправника та доставляє їх на підрозділ.
- 5.6Done: Кур'єр виконав заявку і посилки доставлені на підрозділ.
- 5.7ClientCanceled: Заявка скасована клієнтом.
- 5.8NotCompleted: Кур'єр скасував заявку через неможливість прийняти посилки (наприклад, посилки не готові).
- 5.9Deleted: Заявка видалена з системи.
Кожна посилка в заявці на виклик кур'єра має окремий статус, що відображає поточний стан посилки у процесі приймання кур’єром (pickup_shipments[...]).
Статуси посилок:
- 1Added: посилка додана у заявку. Доступно лише у статусі заявки Draft. Статус є початковим для кожної посилки, доданої до заявки.
- 2Accepted: посилка успішно прийнята кур’єром. Застосовується лише для заявок на виклик кур'єра у статусах AppointedCourier або InProgress.
- 3NotReady: посилку вилучено із заявки через те, що посилка не була готова для відправки. Статус може бути встановлений лише кур’єром. Доступно лише для заявок на виклик кур'єра у статусах AppointedCourier або InProgress.
- 4NotPacked: посилка не була запакована належним чином для передачі кур’єру. Статус може бути встановлений лише кур’єром. Доступно у заявках зі статусом AppointedCourier або InProgress.
- 5ClientCanceled: Посилку вилучено із заявки за ініціативою клієнта. Доступно в заявках на виклик кур'єра з будь-яким статусом, за винятком Draft і Deleted.
- 6Deleted: Посилка видалена із заявки на виклик кур'єра. Доступно лише у заявках на виклик зі статусом Draft. Видалені посилки можуть бути відновлені до статусу Added.
- 6Скасування та видалення
- 6.1Для скасування заявки у статусі Created клієнт змінює її статус на ClientCanceled через PUT /pickups/{id}/status.
- 6.2Для видалення заявки у статусі Draft використовується DEL /pickups/{id}
Обмеження та важливі моменти
- 1Додавання та видалення посилок можливо лише у заявки у статусі Draft.
- 2Заявки у статусі Created або вище не можна змінювати, лише скасувати, окрім зміни часового інтервалу.
- 3Адреси відправки всіх посилок у заявці на виклик кур’єра повинні бути однаковими, окрім поля Note.
- 4Часові інтервали мають бути вибрані за допомогою доступних слотів. Часові інтервали “День в день” PickupDayToDay працюють не для всіх міст. Нові міста додаються поступово.
- 5При внесенні змін у заявку на виклик кур’єра необхідно обов’язково збільшувати на одиницю значення поля lockVersion.
Детальну документацію щодо API-методів можна знайти на API-документації Nova Post.