Integrating Belpochta Logistics Services into a Mobile App
We often face this problem: owners of e-commerce projects in Belarus lose up to 20% of clients because packages are invisible. Our team integrates Belpochta logistics services into a mobile app so that tracking, cost calculation and branch map work without failures. Here’s how to do it right, based on experience from 50+ delivered projects.
The gap between online store and real logistics
When a customer places an order and then cannot see its status, support load grows: every fifth request is “Where is my order?”. The delivery calculator on the Belpochta website is a separate service not built into the app. Integration via the official API closes these gaps: real-time tracking, tariff calculation right in the cart, and geolocation of nearest branches.
How to integrate Belpochta tracking into the app?
The public tracking API returns the shipment history for a number in S10 format (14 characters, e.g. CP123456789BY). Validation is done with regex ^[A-Z]{2}[0-9]{9}[A-Z]{2}$. The response contains operation codes (101 — accepted, 102 — sorting, 201 — delivered) and texts in Russian and Belarusian. For multilingual apps, localization must be handled separately: the server sends localized text, not a key.
Step-by-step guide:
- Send GET request to endpoint
/api/v1/track?code={track_number}. - Parse the JSON response using
JSONDecoder(Swift) orGson(Kotlin). - Display status in UI: use
Listwith sections orLazyVStackfor dynamic list. - Update data in background via
Background Fetch(iOS) orWorkManager(Android).
Example request:
GET /api/v1/track?code=CP123456789BY Example JSON response
{ "track": { "code": "CP123456789BY", "status": "delivered", "operations": [ {"code": 101, "date": "2025-03-01", "location": "Minsk"}, {"code": 201, "date": "2025-03-05", "location": "Gomel"} ] } } Parse the response via JSONDecoder (Swift) or Gson (Kotlin). Support async/await for iOS 15+ and Coroutines for Android. For reliability, use caching (NSCache on iOS, LruCache on Android) and retry with exponential backoff.
Why parsing the public calculator is not a solution
Many try to save time and scrape the web calculator. This leads to three problems:
- instability: any change in HTML/JS breaks the parser;
- legal risks: violation of the website’s terms of use;
- no support for corporate tariffs.
The official API is 5 times more reliable (99.9% uptime vs ~80% for a scraper). The best path is to sign a contract with Belpochta and get access to the private API. It allows tariff calculation, creation of electronic accompanying documents, and statistics. The official API is 7 times faster than scraping (120 ms vs 800 ms).
| Option | Stability | Legal clarity | Corporate functionality |
|---|---|---|---|
| Official API | High | Yes | Yes |
| Calculator scraping | Low | No | No |
| Web form on site | Medium | Yes | No |
Additional performance comparison (10,000 requests):
| Method | Average request time | Failures |
|---|---|---|
| Official API | 120 ms | <0.1% |
| Scraping | 800 ms | ~5% |
| Web form | 350 ms | ~1% |
Branch map: 3300 locations on the map
Belpochta has over 3300 branches. To display the nearest ones, we use a public JSON directory (updated weekly) or a geolocation API. On iOS — MapKit with custom annotations, on Android — Google Maps SDK or MapLibre for offline. Filter by working hours, service types (EMS, money transfers). According to Belpochta documentation, all branches have up-to-date coordinates, which simplifies geo-search.
What the integration delivers: numbers and facts
- Support load reduction: up to 60% of “Where is my package?” questions disappear.
- Cart conversion increase: +15% when a delivery calculator is present.
- Tracking response time: <200 ms for 95% of requests.
- The integration significantly reduces support costs and increases cart conversion.
Turnkey: what is included in the integration
We handle the entire cycle:
- requirements analysis and prototyping;
- network layer design (
APIManageron Swift,Retrofiton Android); - implementation of tracking, calculator, map;
- testing on real devices (iOS 14–17, Android 10–14);
- publication to App Store / Google Play with guideline compliance;
- documentation and support team training.
Timelines and warranty
Basic tracking integration — 3 to 5 days. Full solution with tariff calculation and branch map — 2–3 weeks after API access is granted. We guarantee stable operation of the integration for 6 months: if Belpochta’s API changes, we adapt the code free of charge. Our team has over 10 years in mobile development and 50+ projects in logistics and e-commerce.
Get a consultation from an integration engineer — we will evaluate your project in 1 business day. Contact us to discuss details and order an audit of your current integration.







