Every time an order is created a unique waybill is dynammically assigned to it. Order creation required all the important details of products like ,seller details, warehouse details, quality checks, consignee name, phone and address and other important information. The process of order creation is same for both the forward flow (client warehouse to end customer) and reverse flow (customer to client warehouse) with the only difference in the package_type key. (Pickup for reverse package and COD or Prepaid for forward package) Two type of shipments can be there: Single Piece Shipment - One waybill here represents a package which can have multiple items in it. (Example, An order at marketplace can have multiple items like tshirts, shoes, shampoo package together in a box) Multi Piece Shipment - This type of shipments contain multiple boxes in one order. All the shipments are packed in separate boxes and so should be assigned separate waybill numbers as well. **E-waybill**: As per government guidelines, if the total shipment cost exceeds 50,000, then there is requirement of e-waybill, which needs to be passed from the client end.This is a mandatory field required at the time of order creation (if the shipment cost exceeds 50,000 INR)

Test Environment URL

https://staging-express.delhivery.com/api/cmu/create.json

Production Environment URL

https://track.delhivery.com/api/cmu/create.json

Important Points which needs to be considered while order creation

  1. Waybill: In case of single piece shipment, Waybill can be passed in the payload or can be skipped as well which can have multiple products inside it), but in case of MPS, waybill needs to be passed for each box explicitly in the API.

  2. format=json&data=
    This line is a must to have in the payload JSON body.

  3. Order ID should be unique for every new order manifested in our system ideally when the waybill is passed and must when the waybill is not passed and randomly assigns from delhivery end. It can only be same when the waybill is passed explicitly in the payload
    The uniqueness of order in our network is identified with order+waybill as primary keys. Order ID may not be unique in case the client is providing the waybill as well. In case, a waybill is not passed by the client in the API and Delhivery will be generating the waybills, order ID passed needs to be unique.

4.Payment_mode will be COD or Pre-paid when the order is created for forwarding shipment else Pickup if it is created for reverse flow.

  1. Pickup location to be passed in the API needs to be exactly the same as the name of the warehouse registered The name is also case sensitive. An error is thrown to indicate any differences in the name of the pickup location.

  2. There is a field which identifies the client at our end, its value should be exactly the same with the name the client registered in the delhivery.

  3. In case of fragile content, fragile_shipment: true should be passed in manifestation payload at root level.
    Key Name: fragile_shipment
    Key Value: true or false

Please Note: If any Shipment is not applicable then don't pass this key in Manifestation Payload.

  1. Also, our system does not accept special characters in the payload,
    Characters: &, #, %, ; ,\
    If '' is present in the payload, it should be escaped as shown '\\'.
    Only if the payload is JSON encoded, then there is no issue.

  2. Mandatory Fields: Pin, phone and address are the mandatory keys to be passed in all shipment flows.

  3. For Last-Mile Delivery in Bangladesh:- "country" should be pass as "BD" and valid "pin" for the Bangladesh country while creating order via order creation API. In case you don't pass any "country" then the system will automatically consider the country "India" by default

  4. In any scenario if you are not passing any optional key value, the default value which will be linked to your account will be assigned automatically, it would be safe to pass maximum keys to get an order created successfully.

GST Details :

There are 2 ways client can provide the GST related information as below.

A client can pass the information through API (fields are given below) OR he can share the information one time with our business / Account manager. The client should have received an email from us a link where you have to update the GST related information one time.

  1. Seller_gst_tin - GST TIN number of the seller--Mandatory in the API
  2. Client_gst_tin - GST TIN number of the contracting entity with Delhivery
  3. Consignee_gst_tin - GST tin of the consignee in case of B2B shipments
  4. Hsn_code - Share the Harmonized System of Nomenclature for each product in the package (Mandatory in the API). You can pass more than one HSN here if the quantity is more than 1.
  5. invoice_reference - unique invoice reference number

Seller_gst_tin and hsn_code are mandatory in API and these fields need to be added only in Package/Order creation API, not in Vendor/Warehouse creation API

Order Creation Reverse Pickup Shipments

Meaning of RVP- this is a case where shipment needs to be pick from the customer and delivered to the client warehouse else the specified location given by the client.**

Order creation API for RVP- API URL and payload will be the same as forward but you need to make few changes as given below.

  1. payment_mode= Pickup (whereas it is prepaid and COD for forwarding shipment)
  2. If you are passing the return keys then shipment will be delivered to return address.
  3. If you are not passing the return keys then shipment will be delivered to the warehouse address.