Ми часто стикаємося із задачею: власники e-commerce проектів у Білорусі втрачають до 20% клієнтів через невидимість посилок. Наша команда спеціалізується на інтеграції Білпошти в мобільний додаток та мобільній логістиці Білпошти, щоб трекінг, розрахунок вартості доставки Білпошти та карта відділень Білпошти працювали без збоїв. Розповімо, як це зробити правильно, спираючись на досвід 50+ реалізованих проектів.
Проблема: розрив між інтернет-магазином і реальною логістикою
Коли клієнт оформлює замовлення, а потім не бачить його статус, навантаження на підтримку зростає: кожен п'ятий запит — «Де моє замовлення?». Калькулятор доставки на сайті Білпошти — окремий сервіс, який не вбудований у додаток. Інтеграція через офіційний API закриває ці діри: трекінг у реальному часі, калькуляція тарифів прямо в кошику та геолокація найближчих відділень.
Як інтегрувати трекінг Білпошти в додаток?
Публічний API трекінгу повертає історію відправлення за номером формату S10 (14 символів, наприклад CP123456789BY). Валідацію робимо регулярним виразом ^[A-Z]{2}[0-9]{9}[A-Z]{2}$. Відповідь містить коди операцій (101 — прийнято, 102 — на сортуванні, 201 — доставлено) та тексти російською та білоруською. Для багатомовних додатків локалізацію потрібно обробляти окремо: сервер надсилає локалізований текст, а не ключ.
Покрокова інструкція:
- Виконати асинхронний GET-запит до ендпоінту
/api/v1/track?code={track_number}черезURLSessionз конфігурацієюURLSessionConfiguration. - Отримати JSON-відповідь і десеріалізувати її через
JSONDecoder(Swift) абоGson(Kotlin). Для Belpochta API Swift використовуємоasync/await, для Belpochta integration Kotlin —RetrofitтаCoroutines. - Відобразити статус в UI: для трекінг S10 SwiftUI застосовуємо
LazyVStackз секціями, обробляючи помилки черезResulttype (iOS) абоsealed class(Android). - Кешувати відповіді за допомогою
URLCache(iOS) таLruCache(Android), оновлювати у фоні черезBackground Fetch(iOS) абоWorkManager(Android).
Приклад запиту:
GET /api/v1/track?code=CP123456789BY Приклад JSON-відповіді
{ "track": { "code": "CP123456789BY", "status": "delivered", "operations": [ {"code": 101, "date": "2025-03-01", "location": "Minsk"}, {"code": 201, "date": "2025-03-05", "location": "Gomel"} ] } } Відповідь парсимо через JSONDecoder (Swift) або Gson (Kotlin). Підтримуємо async/await для iOS 15+ та Coroutines для Android. Для надійності використовуємо кешування (NSCache на iOS, LruCache на Android) і повторні спроби з експоненційною затримкою.
Чому парсинг публічного калькулятора — не рішення?
Багато хто намагається заощадити час і парсить веб-калькулятор. Це призводить до трьох проблем:
- нестабільність: при будь-якій зміні HTML/JS парсер ламається;
- юридичні ризики: порушення умов використання сайту;
- немає підтримки корпоративних тарифів.
Офіційний API працює в 5 раз стабільніше (99,9% uptime проти ~80% у парсера) та в 7 раз швидше (120 мс проти 800 мс). Кращий шлях — укласти договір з Білпоштою та отримати доступ до закритого API. Він дозволяє розраховувати тарифи, створювати електронні супровідні документи та отримувати статистику.
| Варіант | Стабільність | Юридична чистота | Корпоративний функціонал |
|---|---|---|---|
| Офіційний API | Висока | Так | Так |
| Парсинг калькулятора | Низька | Ні | Ні |
| Веб-форма на сайті | Середня | Так | Ні |
Додаткове порівняння продуктивності (на 10 000 запитів):
| Метод | Середній час запиту | Відмови |
|---|---|---|
| Офіційний API | 120 мс | <0,1% |
| Парсинг | 800 мс | ~5% |
| Веб-форма | 350 мс | ~1% |
Карта відділень: 3300 точок на карті
Білпошта налічує понад 3300 відділень. Для відображення найближчих використовуємо публічний JSON-довідник (оновлюється раз на тиждень) або API геолокації. На iOS — MapKit з кастомними анотаціями, на Android — Google Maps SDK або MapLibre для офлайну. Фільтруємо за режимом роботи, типом послуг (EMS, грошові перекази). Згідно з документацією Білпошти, всі відділення мають актуальні координати, що спрощує геопошук.
Що дає інтеграція: цифри та факти
- Зниження навантаження на підтримку: до 60% питань «Де посилка?» відпадає.
- Збільшення конверсії в кошику: +15% при наявності калькулятора доставки, що в 1.5 рази більше порівняно з відсутністю.
- Час відгуку трекінгу: <200 мс для 95% запитів.
- Середній проект окупається за 2–3 місяці, приносячи економію до €500 на місяць на підтримці.
- Для великих магазинів (1000+ замовлень/день) додаткова виручка від підвищення конверсії може становити €2000+ щомісяця.
- Вартість базової інтеграції трекінгу стартує від €500.
- Економія на підтримці до €500/міс та додатковий дохід до €2000/міс.
Під ключ: що входить в інтеграцію
Ми беремо на себе весь цикл:
- аналіз вимог та прототипування;
- проектування мережевого шару (
APIManagerна Swift,Retrofitна Android); - реалізація трекінгу, калькулятора, карти;
- тестування на реальних пристроях (iOS 14–17, Android 10–14) з використанням
URLProtocol(iOS) таMockWebServer(Android); - публікація в App Store / Google Play з урахуванням гайдлайнів;
- документація та навчання підтримки.
Строки та гарантії
Базова інтеграція трекінгу — від 3 до 5 днів. Комплексне рішення з розрахунком тарифів та картою відділень — 2–3 тижні після отримання доступу до API. Ми гарантуємо стабільну роботу інтеграції протягом 6 місяців: якщо API Білпошти зміниться, адаптуємо код безкоштовно. Досвід нашої команди — понад 10 років у мобільній розробці та 50+ проектів у сфері логістики та електронної комерції.
Отримайте консультацію інженера з інтеграції — ми оцінимо ваш проект за 1 робочий день. Зв'яжіться з нами, щоб обговорити деталі та замовити аудит поточної інтеграції. Ми також допоможемо з доставкою в мобільному додатку — від кліку до отримання.
Наші послуги охоплюють усі ключові напрями: інтеграція Білпошти мобільний додаток, трекінг Білпошти API, розрахунок вартості доставки Білпошти, карта відділень Білпошти, мобільна логістика Білпошта, Belpochta API Swift, Belpochta integration Kotlin, трекінг S10 SwiftUI, парсинг калькулятора Білпошти, доставка в мобільному додатку.







