Zopping
API reference

Third-party logistics (3PL)

Hand deliveries to a third-party courier — Shiprocket, Delhivery, Borzo, Dunzo and more. Check which vendors can serve an order, dispatch a shipment (manually or via auto-assignment), handle reverse pickups, and look up courier orders for their vendor, status and metadata (AWB, trackURL, cost). Requires the courier extension (e.g. ShipRocket). Orders are referenced by their orderId / referenceNumber and scoped to an organizationId.

Base URLhttps://zopping.com

Courier eligibility

Before dispatch, find which courier vendors can serve an order and at what cost. Returns each eligible vendor with its shippingCost, distance and pickup/delivery estimates — rank them yourself, or let dispatch pick per your FASTEST/CHEAPEST preference.

Fields
FieldTypeDescription
idstringread-onlyEligible vendor id.
namestringread-only
providerstringread-onlyVendor code, e.g. SHIPROCKET.
courierVendorIdstringread-only
shippingCostnumberread-only
distanceKmnumberread-only
pickupEstimatetimestampread-only
deliveryStartEstimatetimestampread-only
deliveryEndEstimatetimestampread-only
GET/api/logistics-service/courier-eligibility

Check eligible couriers

Quick lookup for an existing order by id.

Parameters
ParameterTypeDescription
organizationIdrequiredstring· query
orderIdrequiredstring· query
Request
curl "https://zopping.com/api/logistics-service/courier-eligibility?organizationId=<org-id>&orderId=ORD-55012" \
  -H "Authorization: Bearer $ZOPPING_TOKEN"
Response
{
  "courierVendor": [
    {
      "id": "1",
      "name": "Shiprocket",
      "provider": "SHIPROCKET",
      "courierVendorId": "123",
      "shippingCost": 48.5,
      "distanceKm": 6.2,
      "pickupEstimate": "2026-06-23T11:00:00Z"
    }
  ]
}

Courier shipments

Dispatch a packed order to a courier, list dispatched shipments, update, or cancel. On a packed order you can create the shipment manually with POST /courier, or let auto-assignment create it (see CourierGeneration in the logistics config). The response carries the vendor order id, AWB / tracking id and cost in courierDetails.

Fields
FieldTypeDescription
idstringPartner order id (vendor side).
organizationIdstringrequired
orderIdstringrequiredYour Zopping order id / reference number.
vendorstringrequiredCourier vendor code — SHIPROCKET, DELHIVERY, BORZO, …
courierVendorIdstringSpecific vendor account/service to use.
partnerOrderIdstringread-onlyVendor-assigned order id.
statusenumread-onlyPENDING · CANCELLED · COMPLETED · RETURNED (normalized).
orderItemIdsstring[]Restrict the shipment to specific order items.
metaDataobjectVendor payload — AWB, trackURL, label URL, cost.
GET/api/logistics-service/courier

List courier shipments

Filter by store, status and reference number. Paginated with `offset`/`limit` (default 20).

Parameters
ParameterTypeDescription
organizationIdstring· query
storeIdstring· query
statusstring· querye.g. PENDING, COMPLETED.
referenceNostring· queryOrder reference number.
limitinteger· query
offsetinteger· query
Response
{
  "order": [
    {
      "id": 55012,
      "referenceNumber": "ORD-55012",
      "courierDetails": {
        "vendorOrderId": "SR-9981",
        "vendor": "SHIPROCKET",
        "status": "PICKED_FROM_STORE",
        "orderItemIds": [
          "88120"
        ]
      }
    }
  ],
  "count": 1,
  "offset": 0,
  "limit": 20
}
POST/api/logistics-service/courier

Dispatch a shipment

Create a courier shipment for a packed order.

Request body
{
  "organizationId": "<org-id>",
  "orderId": "ORD-55012",
  "vendor": "SHIPROCKET",
  "courierVendorId": "123",
  "orderItemIds": [
    "88120"
  ]
}
Response
{
  "courier": {
    "orderId": "ORD-55012",
    "vendor": "SHIPROCKET",
    "partnerOrderId": "SR-9981",
    "status": "PENDING",
    "metaData": {
      "awb": "3456789012",
      "trackURL": "https://shiprocket.co/tracking/3456789012"
    }
  }
}
PUT/api/logistics-service/courier/{id}

Update a shipment

Parameters
ParameterTypeDescription
idrequiredstring· pathOrder id.
Request body
{
  "organizationId": "<org-id>",
  "vendor": "SHIPROCKET",
  "status": "CANCELLED"
}
DELETE/api/logistics-service/courier/{id}

Cancel a shipment

Parameters
ParameterTypeDescription
idrequiredstring· pathOrder id.
Request body
{
  "organizationId": "<org-id>"
}

Auto-dispatch

One call to let Zopping pick a courier and dispatch, honouring your preference. Use this instead of POST /courier when you want the platform to choose the vendor (cheapest or fastest) rather than naming one.

Fields
FieldTypeDescription
orderIdstringrequiredMust be a positive order id.
organizationIdstringrequired
storeIdstring
preferenceenumCHEAPEST · FASTEST. Defaults to the org tplPreference, else FASTEST.
POST/api/logistics-service/shipment

Create a shipment (auto-select vendor)

Request body
{
  "organizationId": "<org-id>",
  "orderId": "55012",
  "storeId": "<store-id>",
  "preference": "FASTEST"
}
Response
"Shipment created successfully."

Reverse shipments

Return an order (or specific items) back to the store via a courier reverse pickup. Create a reverse shipment with source/destination addresses and package details, list them with status filters, and update status.

Fields
FieldTypeDescription
referenceNumberstringrequiredYour reverse-shipment reference.
organizationIdstringrequired
partnerstringrequiredCourier vendor code.
storeIDinteger
courierVendorIdstring
sourceAddressobjectPickup (customer) address.
destinationAddressobjectDrop (store/warehouse) address.
packageDetailobject{ length, breadth, height, weight } + per-package items.
itemsobject[]Returned items: { id, name, deliveredQuantity, mrp }.
invoiceAmountstring
statusenumread-onlyPENDING · CANCELLED · COMPLETED · RETURNED.
partnerReferenceIdstringread-onlyVendor-assigned id.
GET/api/logistics-service/reverse-shipment

List reverse shipments

Parameters
ParameterTypeDescription
organizationIdrequiredstring· query
statusstring· queryRepeatable — include these statuses.
voidStatusstring· queryRepeatable — exclude these statuses.
referenceNumberstring· queryRepeatable.
limitinteger· query
offsetinteger· query
Response
{
  "reverseShipment": [
    {
      "id": 771,
      "referenceNumber": "RET-771",
      "partner": "DELHIVERY",
      "status": "PENDING",
      "orderItemIds": [
        "88120"
      ]
    }
  ],
  "count": 1,
  "offset": 0,
  "limit": 20
}
POST/api/logistics-service/reverse-shipment

Create a reverse shipment

Request body
{
  "organizationId": "<org-id>",
  "storeID": 7,
  "referenceNumber": "RET-771",
  "partner": "DELHIVERY",
  "courierVendorId": "123",
  "sourceAddress": {
    "name": "Asha",
    "phone": "9876543210",
    "address": "12 MG Road",
    "city": "Bengaluru",
    "pincode": "560001",
    "state": "Karnataka"
  },
  "destinationAddress": {
    "name": "MG Road Store",
    "pincode": "560002",
    "city": "Bengaluru",
    "state": "Karnataka"
  },
  "packageDetail": {
    "length": 20,
    "breadth": 15,
    "height": 10,
    "weight": 0.5
  },
  "items": [
    {
      "id": 88120,
      "name": "Aashirvaad Atta 5kg",
      "deliveredQuantity": "1",
      "mrp": "28.00"
    }
  ],
  "invoiceAmount": "28.00",
  "orderItemIds": [
    "88120"
  ]
}
Response
{
  "id": 771,
  "referenceNumber": "RET-771",
  "partner": "DELHIVERY",
  "status": "PENDING",
  "partnerReferenceId": "DL-4410"
}
PUT/api/logistics-service/reverse-shipment/{id}

Update a reverse shipment

Parameters
ParameterTypeDescription
idrequiredstring· path
Request body
{
  "organizationId": "<org-id>",
  "status": "CANCELLED"
}

Courier order lookup

Fetch the courier shipment records for one or more of your orders — the vendor, its status and metadata (AWB, trackURL, cost).

GET/api/logistics-service/courier-order

Get courier orders

Parameters
ParameterTypeDescription
organizationIdrequiredstring· query
orderIdsstring· queryComma-separated order ids.
Request
curl "https://zopping.com/api/logistics-service/courier-order?organizationId=<org-id>&orderIds=ORD-55012,ORD-55013" \
  -H "Authorization: Bearer $ZOPPING_TOKEN"
Response
{
  "courierOrder": [
    {
      "orderId": "ORD-55012",
      "vendor": "SHIPROCKET",
      "partnerOrderId": "SR-9981",
      "status": "PICKED_FROM_STORE"
    }
  ]
}