Courier integration
Hand deliveries to a third-party courier — Shiprocket, Delhivery, Borzo,
Dunzo, Porter and more — and receive status and tracking back. Requires the
ShipRocket extension. Endpoints are under
https://zopping.com/api/logistics-service.
Want to deliver with your own fleet instead? See Run your own logistics.
Supported couriers
- National parcel: Shiprocket, Delhivery, DTDC, DHL, FedEx, Australia Post
- Hyperlocal / same-day: Borzo, Dunzo, Porter, Qwqer, Volta, Loadshare, Blitz, Quickshift, Pikndel
1. Enable & add credentials
Enable the courier extension and store each courier's credentials in the organization's logistics config (e.g. Shiprocket email/password → token; Borzo token + callback token; Delhivery token). Map your store/warehouse pickup location to the courier account.
2. Choose how couriers are assigned
Set the org's logistics config:
CourierGeneration—MANUAL,SEQUENTIAL(priority by delivery type with cut-offs), orAUTO_ASSIGNMENT(first-fit, 5-minute cut-off).- Preference —
FASTEST(default) orCHEAPEST.
3. Check eligible couriers
curl "https://zopping.com/api/logistics-service/courier-eligibility?organizationId=<org-id>&orderId=ORD-55012" \
-H "Authorization: Bearer $ZOPPING_TOKEN"
Returns eligible vendors with shippingCost and pickup/delivery estimates.
4. Dispatch the shipment
On a packed order, create the courier shipment (or let auto-assignment do it when
the order reaches PACKED):
curl -X POST https://zopping.com/api/logistics-service/courier \
-H "Authorization: Bearer $ZOPPING_TOKEN" -H "Content-Type: application/json" \
-d '{ "organizationId":"<org-id>","orderId":"ORD-55012","vendor":"SHIPROCKET","courierVendorId":"123" }'
The response carries the vendor order id, AWB / trackingId, trackURL and cost.
Cancel with DELETE /courier/{id}; reverse pickups use POST /reverse-shipment.
5. Receive status (inbound webhooks)
Couriers push status changes to Zopping. Point the courier's webhook at the
matching endpoint (POST /api/logistics-service/courier-event/{vendor}, e.g.
/courier-event/borzo). Zopping verifies the signature, normalizes the
vendor's status, updates the order and advances dispatch/completion:
| Normalized status | Meaning |
|---|---|
PENDING → ACKNOWLEDGED | Created, courier assigned |
PICKED_FROM_STORE | Picked up |
EN_ROUTE → OUT_FOR_DELIVERY | On the way |
COMPLETED | Delivered |
CANCELLED / RETURNED | Cancelled / returned |
6. Track
GET /track?orderId=ORD-55012&organizationId=<org-id> and
GET /order-location?orderId=ORD-55012&organizationId=<org-id> return live status, ETA,
location and the courier trackURL.
Flow
- Enable the extension and add courier credentials; map the pickup store.
- Order reaches
PACKED. - (Check eligibility →) dispatch — manually via
POST /courieror automatically. - Courier webhooks stream status; Zopping normalizes and updates the order.
- Track to delivery; on a courier cancellation, reassign.
Reference: Fulfillment & Delivery · Integrations overview.