Inbound | POST | /usp/order/pack-bulk

Summary

This API allows bulk packing of multiple shipments for an order in a single request.

Description

This API is used by the External Fulfillment System (EFS) to pack multiple shipments for a single order. It supports batch-based inventory allocation where each shipment item can specify batch details including batch code, manufacturing date, expiry date, and supplier code.

The API supports:

Request Body

{
  "orderCode": "ORD-2024-001",
  "locationCode": "LOC-001",
  "channelName": "USP-Channel",
  "shipments": [
    {
      "efsShipmentCode": "EFS-SHIP-001",
      "packageSku": "PKG-SKU-001",
      "dimensions": {
        "length": "30.5",
        "breadth": "20",
        "height": "15",
        "weight": "2.5"
      },
      "shipmentItems": [
        {
          "channelSkuCode": "CHANNEL-SKU-001",
          "quantityToPack": 5,
          "batchShipmentItems": [
            {
              "supplierCode": "SUPPLIER-001",
              "batchCode": "BATCH-001",
              "expiryDate": "2025-12-31T23:59:59Z",
              "manufacturingDate": "2024-01-01T00:00:00Z",
              "quantity": 5
            }
          ],
          "externalSerialCodes": ["SER-001", "SER-002"]
        }
      ],
      "packBoxes": [
        {
          "externalBoxCode": "BOX-EXT-001",
          "packageSku": "BOX-PKG-001",
          "dimensions": {
            "length": "25",
            "breadth": "15",
            "height": "10",
            "weight": "1.5"
          },
          "packBoxSku": [
            {
              "channelSkuCode": "CHANNEL-SKU-001",
              "quantity": 3,
              "batchId": 12345,
              "clientSkuId": "CLIENT-SKU-001",
              "externalBatchId": "BATCH-001",
              "mfgDate": "2024-01-01T00:00:00Z",
              "expiryDate": "2025-12-31T23:59:59Z"
            }
          ]
        }
      ]
    }
  ]
}
Parameter Name Data Type Description Mandatory
orderCode String Unique order code identifier Yes
locationCode String Identifier of the fulfillment location Yes
channelName String Channel name of the marketplace Yes
shipments Array List of shipments to pack Yes
shipments.efsShipmentCode String EFS shipment code identifier No
shipments.packageSku String SKU code of the package material No
shipments.dimensions Object Dimensions of the shipment No
shipments.dimensions.length String Length of the shipment package Yes (if dimensions provided)
shipments.dimensions.breadth String Breadth of the shipment package Yes (if dimensions provided)
shipments.dimensions.height String Height of the shipment package Yes (if dimensions provided)
shipments.dimensions.weight String Weight of the shipment package Yes (if dimensions provided)
shipments.shipmentItems Array List of items in the shipment Yes
shipments.shipmentItems.channelSkuCode String Channel SKU code of the item Yes
shipments.shipmentItems.quantityToPack Integer Quantity to pack (minimum 1) Yes
shipments.shipmentItems.batchShipmentItems Array Batch-level details for perishable items No
shipments.shipmentItems.batchShipmentItems.supplierCode String Supplier code for the batch No
shipments.shipmentItems.batchShipmentItems.batchCode String External batch code No
shipments.shipmentItems.batchShipmentItems.expiryDate ZonedDateTime Expiry date of the batch No
shipments.shipmentItems.batchShipmentItems.manufacturingDate ZonedDateTime Manufacturing date of the batch No
shipments.shipmentItems.batchShipmentItems.quantity Integer Quantity from this batch No
shipments.shipmentItems.externalSerialCodes Array[String] List of external serial codes for serialized items No
shipments.packBoxes Array List of pack boxes in the shipment No
shipments.packBoxes.externalBoxCode String External box code identifier No
shipments.packBoxes.packageSku String SKU code of the box package material No
shipments.packBoxes.dimensions Object Dimensions of the pack box No
shipments.packBoxes.dimensions.length String Length of the pack box Yes (if dimensions provided)
shipments.packBoxes.dimensions.breadth String Breadth of the pack box Yes (if dimensions provided)
shipments.packBoxes.dimensions.height String Height of the pack box Yes (if dimensions provided)
shipments.packBoxes.dimensions.weight String Weight of the pack box Yes (if dimensions provided)
shipments.packBoxes.packBoxSku Array List of SKUs in the pack box Yes
shipments.packBoxes.packBoxSku.channelSkuCode String Channel SKU code of the item Yes
shipments.packBoxes.packBoxSku.quantity Integer Quantity of the SKU in the box Yes
shipments.packBoxes.packBoxSku.batchId Integer Internal batch ID No
shipments.packBoxes.packBoxSku.clientSkuId String Scannable barcode on the product No
shipments.packBoxes.packBoxSku.externalBatchId String External batch code No
shipments.packBoxes.packBoxSku.mfgDate ZonedDateTime Manufacturing date of the batch No
shipments.packBoxes.packBoxSku.expiryDate ZonedDateTime Expiry date of the batch No

Response Body

{
    "orderCode": "ORD-2024-001",
    "locationCode": "LOC-001",
    "channelName": "USP-Channel",
    "shipments": [
      {
        "efsShipmentCode": "EFS-SHIP-001",
        "shipmentId": 12345,
        "channelShipmentCode": "CHANNEL-SHIP-001",
        "invoiceCode": "INV-001",
        "invoiceUrl": "<https://example.com/invoices/inv-001.pdf>",
        "invoiceDate": "2024-01-15T10:30:00Z",
        "invoice": "base64-encoded-invoice-content",
        "invoiceDetails": [
          {
            "channelSkuCode": "CHANNEL-SKU-001",
            "netTaxAmountPerUnit": 18.0,
            "netTaxAmountTotal": 90.0,
            "baseSellingPricePerUnit": 100.0,
            "baseSellingPriceTotal": 500.0,
            "actualSellingPricePerUnit": 90.0,
            "actualSellingPriceTotal": 450.0,
            "quantity": 5,
            "taxItems": [
              {
                "type": "GST",
                "rate": 18.0,
                "taxPerUnit": 16.2,
                "taxTotal": 81.0
              }
            ]
          }
        ],
        "shippingLabel": {
          "shippingLabelUrl": "<https://example.com/labels/shipping-label-001.pdf>",
          "awbNumber": "AWB123456789",
          "shippingLabel": "base64-encoded-label-content",
          "transporter": "BlueDart"
        }
      }
    ]
  }

HttpStatus: 200