Integrating Your Online Store with Delivery and Logistics in Uzbekistan: A Practical Guide

Why logistics integration is more than "adding a courier's number"
When a store starts handling dozens of orders a day, delivery usually rests on a manager who manually calls the courier service, dictates the address and copies the tracking number into a spreadsheet. This works only until growth kicks in. At 100+ orders a day, manual processing becomes a source of errors: lost addresses, wrong rates, orders stuck somewhere between the warehouse and the courier. Logistics integration means automatically sending an order to the carrier's system, getting the tracking number and statuses back, calculating the cost at checkout and maintaining a single view of all shipments.
In Uzbekistan this task has its own specifics: the delivery market is fragmented, some carriers have no public API, and customers in the regions often expect cash on delivery and pickup-point delivery rather than door-to-door by courier.
Which delivery services are available in Uzbekistan
Before designing the integration, it helps to understand the market landscape. Carriers can be roughly split into several groups.
- Express delivery within and between cities. Yandex Delivery, Express24 and local courier services cover fast delivery inside Tashkent and major cities. They usually have an API or at least a dashboard with order export.
- Interregional and postal logistics. Uzbekiston Pochtasi, BTS Express, Fargo, EMU and similar services move orders to regional centers and districts, with a network of branches and pickup points.
- Marketplace logistics. If you sell through Uzum Market or similar platforms, delivery follows the marketplace's rules, and integration comes down to working with its seller API.
- Your own courier team. Many stores keep 2-3 in-house couriers per city, in which case "integration" is an internal panel with routes and statuses.
Calculating the shipping cost
Shipping cost must be calculated at checkout, otherwise you either lose money by undercharging or scare the customer away by overcharging. In Uzbekistan the rate usually depends on the region (Tashkent / province / districts), weight and dimensions, delivery type (door-to-door or to a pickup point) and whether cash on delivery is involved.
There are two approaches. The first is dynamic calculation via the carrier's API: the store sends the address and parcel parameters and gets an exact price. This is ideal but not available with every service. The second is a rate matrix on the store side: you enter zones and prices in advance, and the system calculates from the table. It is less precise but works with any carrier and does not depend on the carrier's server being up at the moment of ordering.
Tracking and order statuses
Once the order is handed to the carrier, the customer wants to see where the parcel is. Two mechanisms work here: receiving a tracking number when the shipment is created, and updating statuses. Statuses arrive either via webhook (the carrier pushes a notification when the status changes) or the store polls the API on a schedule.
Webhooks are preferable: the status updates instantly with no extra load. But not all Uzbek services support them, so in practice a hybrid is common: webhooks where available, and background polling every 15-30 minutes for the rest. It is useful to relay the status to the customer immediately via SMS or Telegram: "Order handed to courier," "Delivered to pickup point." This reduces the number of support calls.
Pickup points and delivery to the regions
In Uzbekistan, pickup-point delivery is not an "extra option" but often the primary method for the regions. A customer in a province orders an item and pays, or makes a cash-on-delivery payment, when collecting it at the nearest branch. For integration this means that at checkout you need to show a map or list of the chosen carrier's pickup points with addresses and working hours.
Technically this requires a pickup-point directory. It is good when the carrier provides it via API and keeps it updated. If not, the directory has to be maintained and synchronized manually, and here it is easy to end up with a customer choosing a point that has closed. So pickup-point data should be refreshed regularly and checked before dispatch.
Cash on delivery — a mandatory reality
A significant share of buyers in Uzbekistan prefer to pay on receipt. This changes the integration logic: when creating the shipment you must specify the cash-on-delivery amount, and after delivery you need to receive payment confirmation from the carrier plus the fact that the money was remitted to the store. Cash-collection reconciliation (how much the carrier collected versus how much it remitted) is a separate, important block that cannot be tracked "by eye." Automatically matching payouts against orders saves hours of accounting work and catches discrepancies.
Automation: what exactly removes manual work
The goal of integration is for an order to move from checkout to handover without manual steps by a manager. In practice the following gets automated:
- creating the shipment with the carrier right after the order is confirmed;
- printing the waybill and the barcode label;
- updating the order status in the store admin based on carrier data;
- notifying the customer via SMS/Telegram at key stages;
- reconciling cash-on-delivery payments and payouts;
- handling returns and cancellations without re-keying data.
Technical nuances of integration in Uzbekistan
Market reality: some carriers have an API that is either missing, unstable or poorly documented. So the integration must be built to be fault-tolerant — with a retry queue, logging of every request and a fallback when the carrier's service is down (the order is not lost but queued for re-sending). The payment side usually ties into local systems like Payme, Click and Uzum, and their statuses should be linked to logistics so you do not ship an unpaid order where prepayment was expected.
Conclusion
Integrating a store with logistics in Uzbekistan is not a one-time "button" but a system: zone-based rate calculation, handing the order to the service, tracking via webhooks or polling, working with pickup points and correct reconciliation of cash-on-delivery payments. Done right, it removes routine from the team and eliminates the errors that cost the most as you grow. If you are planning to connect delivery to your store or to clean up an existing integration, discuss the task with the OneDev team: we will review your set of carriers and order volume and propose an architecture suited to the realities of the Uzbek market.
How many delivery services should I connect at once?
What if the carrier has no API?
How do I calculate shipping when the rates are complex?
How do I set up cash on delivery technically?
How will the customer see the order status?
How long does integration take?
Need a similar system or want to discuss your project?
Describe the task — we will propose architecture, technical approach and a work plan. A short call is usually enough to get started.
Discuss project