LogisticsOrder API Functionalities

The LogisticsOrder API has the following endpoints:

Creating Orders

To create an Order, call the Create Order endpoint and specify the required parameters in the request body:

MemberDescriptionRemarks
dropDetails > contact > nameContact name.string
minLength: 1
maxLength: 128
dropDetails > contact > phone > countryCodeCountry code of the mobile it belongs.string
pattern: ^+(\d{1}-)?(\d{1,3})$
dropDetails > contact > phone > numberUser phone number.string
minLength: 4
maxLength: 13
dropDetails > contact > phone > isMobileWhether the phone is type mobile or telephone.boolean
dropDetails > location > address > addressLine1Address line1 of the address.string
minLength: 1
maxLength: 128
dropDetails > location > address > cityCity of the address.string
pattern: [a-zA-Z]{2,64}
dropDetails > location > address > country > codeCode of the country.string
pattern: [A-Z]{2,3}
dropDetails > location > address > country > nameName of the country.string
pattern: [a-zA-Z]{2,64}
dropDetails > location > geolocation > longRange of longitude is -180 to 180 and can be up to 6 decimal places.string
pattern: ^(+|-)?(?:180(?:(?:.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:.[0-9]{1,6})?))$
dropDetails > location > geolocation > latRange of latitude is -90 to 90 and can be up to 6 decimal places.string
pattern: ^(+|-)?(?:90(?:(?:.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:.[0-9]{1,6})?))$
orderSummary > totalWeight > valueTotal weight of the order.number
orderSummary > totalOrderCost > costValue of cost incurred.number
productTypeType of the product in the order.string
Enum:
[ PARCEL, PTL, HEAVY, SERVICES ]
shipmentFlowNature of flow of shipment.string
Enum:
[ FORWARD, REVERSE, NONE ]
pickupDetails > contact > nameContact name.string
minLength: 1
maxLength: 128
pickupDetails > contact > phone > countryCodeCountry code of the mobile it belongs.string
pattern: ^+(\d{1}-)?(\d{1,3})$
pickupDetails > contact > phone > numberUser phone number.string
minLength: 4
maxLength: 13
pickupDetails > contact > phone > isMobileWhether the phone is of type mobile or telephone.boolean
pickupDetails > location > address > addressLine1Address line1 of the address.string
minLength: 1
maxLength: 128
pickupDetails > location > address > cityCity of the address.string
pattern: [a-zA-Z]{2,64}
pickupDetails > location > address > country > codeCode of the country.string
pattern: [A-Z]{2,3}
pickupDetails > location > address > country > nameName of the country.string
pattern: [a-zA-Z]{2,64}
pickupDetails > location > geolocation > longRange of longitude is -180 to 180 and can be up to 6 decimal places.string
pattern: ^(+|-)?(?:180(?:(?:.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:.[0-9]{1,6})?))$
pickupDetails > location > geolocation > latRange of latitude is -90 to 90 and can be up to 6 decimal places.string
pattern: ^(+|-)?(?:90(?:(?:.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:.[0-9]{1,6})?))$
actions > qcValidation > isRequiredIf QC Validation is required.boolean
actions > kycVerification > isRequiredIf KYC verification is required.boolean
actions > otpVerification > isRequiredIf OTP verification is required.boolean
actions > signatureCollection > isRequiredIf signature is required.boolean
returnDetails > contact > nameContact name.string
minLength: 1
maxLength: 128
returnDetails > contact > phone > countryCodeCountry code of the mobile it belongs.string
pattern: ^+(\d{1}-)?(\d{1,3})$
returnDetails > contact > phone > numberUser phone number.string
minLength: 4
maxLength: 13
returnDetails > contact > phone > isMobileWhether the phone is of type mobile or telephone.boolean
returnDetails > location > address > addressLine1Address line1 of the address.string
minLength: 1
maxLength: 128
returnDetails > location > address > cityCity of the address.string
pattern: [a-zA-Z]{2,64}
returnDetails > location > address > country > codeCode of the country.string
pattern: [A-Z]{2,3}
returnDetails > location > address > country > nameName of the country.string
pattern: [a-zA-Z]{2,64}
returnDetails > location > geolocation > longRange of longitude is -180 to 180 and can be up to 6 decimal places.string
pattern: ^(+|-)?(?:180(?:(?:.0{1,6})?)|(?:[0-9]|[1-9][0-9]|1[0-7][0-9])(?:(?:.[0-9]{1,6})?))$
returnDetails > location > geolocation > latRange of latitude is -90 to 90 and can be up to 6 decimal places.string
pattern: ^(+|-)?(?:90(?:(?:.0{1,6})?)|(?:[0-9]|[1-8][0-9])(?:(?:.[0-9]{1,6})?))$
teamIdTeam ID that given order belongs to.string
containers > trackingDetails > operatorSpecify the owner of the tracking ID.string
containers > trackingDetails > trackingIdUnique ID of the container to be used for tracking.string

Request bodies are specified in JSON format. The following example request body shows how to create a new Order:

{
  "dropDetails": {
    "contact": "string",
    "location": "string"
  },
  "orderSummary": {
    "invoiceNumber": "string",
    "orderDescription": "string",
    "totalWeight": {
      "value": 0,
      "unit": "string"
    },
    "totalItems": 0,
    "totalOrderCost": {
      "cost": 0,
      "currencyCode": "string",
      "minorUnit": 0
    }
  },
  "clientDetails": {
    "clientName": "string",
    "clientId": "string",
    "clientOrderId": "string"
  },
  "mps": false,
  "productType": "PARCEL",
  "planningMode": "onDemand",
  "modeOfTransport": "AIR",
  "speedOfTransport": "EXPRESS",
  "shipmentFlow": "FORWARD",
  "pickupDetails": {
    "contact": "string",
    "location": "string",
    "pickupSlot": {
      "from": 0,
      "to": 0
    },
    "serviceTime": 1
  },
  "paymentInformation": {
    "paymentType": "collectAtDelivery",
    "paymentOption": "CARD"
  },
  "deliveryDetails": {
    "promisedDeliveryDate": "string",
    "deliverySlot": {
      "from": 0,
      "to": 0
    },
    "serviceTime": 1
  },
  "actions": {
    "qcValidation": {
      "isRequired": true,
      "requiredAt": "PICKUP"
    },
    "qcValidationChecklist": {},
    "kycVerification": {
      "isRequired": true,
      "requiredAt": "PICKUP"
    },
    "otpVerification": {
      "isRequired": true,
      "requiredAt": "PICKUP"
    },
    "signatureCollection": {
      "isRequired": true,
      "requiredAt": "PICKUP"
    }
  },
  "notificationDetails": {
    "notificationType": "PICKUP",
    "notificationMode": "SMS"
  },
  "returnDetails": {
    "contact": "string",
    "location": "string",
    "returnSlot": {
      "from": 0,
      "to": 0
    },
    "serviceTime": 1
  },
  "priority": 3,
  "maxAttempts": 5,
  "teamId": "string",
  "containers": [
    {
      "containerType": "Shipment",
      "dimensions": {
        "length": "string",
        "breadth": "string",
        "height": "string",
        "unit": "string"
      },
      "weight": {
        "value": "string",
        "unit": "string"
      },
      "trackingDetails": {
        "operator": "string",
        "trackingId": "string",
        "isPrimary": true
      },
      "shipmentDetails": [
        {
          "name": "string",
          "code": "string",
          "quantity": 1,
          "totalCost": {
            "cost": 0,
            "currencyCode": "string",
            "minorUnit": 0
          }
        }
      ]
    }
  ]
}

Retrieving Order Details

To retrieve the details of an Order in your Tenant associated with your App, call the Get Orders endpoint.

Order Cancellation

To cancel an Order, call the Order Cancellation endpoint and pass the orderId in the path parameter.