The actual flow, not a simplified diagram of it.
Browse the catalog and pick a courier — each one declares exactly which credentials it needs, so the form only ever asks for what that specific courier's API requires: an API token, a username and password, or an OAuth client id and secret.
EXAMPLE — ARAMEX
Username · Password · Account Number · Account PIN · Account Entity
Enter each courier's contracted prices once: zone A–E slab prices, volumetric divisor, fuel, COD, insurance and out-of-delivery-area charges, plus their pincode coverage file. The Rate Calculator then prices any parcel across every courier, with GST, before you book. International cards map countries to the courier's own zones.
One request with pickup/delivery addresses, package details, and declared value. Dishatrak creates the order, allocates a courier, and calls that courier's API to book the shipment — or upload a CSV to create and allocate up to 100 at once, each row independent so one bad row doesn't stop the rest of the batch.
POST /api/v1/shipments/ → 201 Created
{ "awb_number": "MOCK6AA0D4E0...", "status": "allocated" }
Read the full API reference (PDF) → · Import the Postman collection →
Rules evaluate in priority order against the order's pincode, state, weight, value or COD amount, skipping any courier whose coverage file says it can't deliver there. The first match wins; if nothing matches, your fallback picks the cheapest quoted courier or your highest-priority one. Every decision is logged with its reason.
"rule 'High value orders to Priority Courier' matched"
Whether a courier pushes a webhook or has to be polled, every update lands in the same event log and advances the shipment through ten lifecycle states — pending, allocated, pickup scheduled, in transit, out for delivery, delivered (or returning to origin, failed, cancelled, returned). Status never moves backward on a late or duplicate event.
A failed delivery attempt (NDR) or failed pickup (NPR) shows up in the Exceptions queue with its reason code and the exact actions available — reattempt, mark RTO, reschedule pickup, or cancel. The Analytics dashboard sits on top of that same queue: resolution rate, average time-to-resolve, and a 14-day trend broken down by carrier and reason code.
No login needed: the same public tracking page every real courier offers, just the AWB and the checkpoint history, none of the pricing or address detail the dashboard shows you.
Each day's booked parcels group into a manifest per courier and warehouse: print the handover sheet and request the pickup. When the courier's invoice or COD payout arrives, upload it and Dishatrak flags every weight dispute, overcharge and short remittance against what your rate card said.