Pack Order API

Outbound | POST  | {Client’s URL}

Summary

This API will call the client’s system to pack the order.

Description

This is a pack notification to the client system. It means the shipment is going to be packed with SKUs mentioned in the payload. In case of repeated calls shipmentId should be considered as a repeated identifier and expected response is successful with the same response body.

Note

  1. Multiple shipments are allowed in case of B2B orders.

  2. Multiple shipments are not allowed in B2C orders except in cases where Increff OMS is doing splitting and routing of the orders. 

  3. Single shipment can have multiple pack boxes.

  4. When Increff is doing routing splitting for B2C orders, one location will have only one shipment.

  5. Increff shipmentId is unique for every shipment. Client system should be able to consume Increff Shipment Id for uniqueness.

  6. There should be idempotency handled at client’s end for the pack call of a single shipment, ie: if packing in OMS is not complete although the pack call is successful, on retry, the pack call will be re-triggered. In such cases, a success response is expected.

Request

{ "orderCode": "H19304030001", "locationCode": "l123", "shipmentId": 120001, "packageSku": "sku123", "weight": 40, "fulfillmentType": "BLOCK_COMPLETE", "dimensions": { "length": 12, "breadth": 6, "height": 8 }, "invoice": { "fromAddress": { "name": "sellerName", "line1": "address line 1", "line2": "address line 2", "line3": "address line 3", "city": "Bengaluru", "state": "Karnataka", "zip": "560076", "country": "INDIA", "email": "email.com", "phone": "9999999999" }, "shippingAddress": { "name": "customerName", "line1": "address line 1", "line2": "address line 2", "line3": "address line 3", "city": "Bengaluru", "state": "Karnataka", "zip": "560076", "country": "INDIA", "email": "email.com", "phone": "9999999999" }, "billingAddress": { "name": "customerName", "line1": "address line 1", "line2": "address line 2", "line3": "address line 3", "city": "Bengaluru", "state": "Karnataka", "zip": "560076", "country": "INDIA", "email": "email.com", "phone": "9999999999" }, "orderTime": "2020-10-16T20:22:28.000+00:00", "channelName": "flipkart", "fromPartyName": "name1", "toPartyName": "name2", "fromTIN": "tin1", "toTIN": "tin2", "panNo": "123PV99", "invoiceItems": [{ "actualSellingPricePerUnit": 6.0, "actualSellingPriceTotal": 12.0, "channelSkuCode": "sku1", "itemName": "item1", "quantity": 2, "taxRule": "GST", "hsnCode": "hsn1", "vendorSku": "vendorSku1", "mrp": 15.0, "brand": "brand1", "styleCode": "style1", "color": "white", "size": "size1", "category": "shirt", "imageUrl": "www.imageUrl.com/1234" }] }, "packboxDetailsList": [{ "boxId": 1000001020, "boxCode": "1000001020", "length": 12.0, "breadth": 6.0, "height": 8.0, "weight": 13.2, "volWeight": 235.5, "boxSkuId": "bsku_1" }, { "boxId": 1000001021, "boxCode": "1000001021", "length": 12, "breadth": 6, "height": 8, "weight": 13, "volWeight": 285.5, "boxSkuId": "bsku_2" } ], "shipmentItems": [{ "channelSkuCode": "100000789701", "orderItemCode": "item123", "quantity": 7, "itemCodes": [ "it1", "it2" ], "externalSerialCodes": [ "ser1", "ser2" ], "skuDimension": { "length": 12, "breadth": 6, "height": 8, "weight": 13 }, "orderItemCustomAttributes": { "attribute1": "Value1", "attribute2": "Value2", "attribute3": "Value3", "attribute4": "Value4", "attribute5": "Value5", "attribute6": "Value6", "attribute7": "Value7", "attribute8": "Value8", "attribute9": "Value9", "attribute10": "Value10", "channelMetadata": { "totalCashOnDeliveryFee": 0.0, "department": "HR", "paymentMethod": "ccavenue", "status": "processing" } } }, { "channelSkuCode": "100000789702", "orderItemCode": "item124", "quantity": 5, "itemCodes": [ "it3", "it4" ], "externalSerialCodes": [ "ser3", "ser4" ], "skuDimension": { "length": 12, "breadth": 6, "height": 8, "weight": 13 }, "orderItemCustomAttributes": { "attribute1": "Value12", "attribute2": "Value22", "attribute3": "Value32", "attribute4": "Value42", "attribute5": "Value52", "attribute6": "Value62", "attribute7": "Value72", "attribute8": "Value82", "attribute9": "Value92", "attribute10": "Value102", "channelMetadata": { "totalCashOnDeliveryFee": 0.0, "department": "HR", "paymentMethod": "ccavenue", "status": "processing" } } } ], "orderCustomAttributes": { "attribute1": "Value1", "attribute2": "Value2", "attribute3": "Value3", "attribute4": "Value4", "attribute5": "Value5", "attribute6": "Value6", "attribute7": "Value7", "attribute8": "Value8", "attribute9": "Value9", "attribute10": "Value10", "channelMetadata": { "totalCashOnDeliveryFee": 0.0, "department": "HR", "paymentMethod": "ccavenue", "status": "processing" }, "currency": "INR" } }

 

Parameter Name

Data Type

Description

Mandatory

orderCode

String

Unique code used by the channel to identify the order.

Yes

locationCode

String

Code used by channels to identify a warehouse

Yes

shipmentId

Long

Shipment id of Increff Omni system 

Yes

packageSku

String

SKU of the package material used for packing

No

weight

Double

Weight of the package in grams

No

fulfillmentType

String

Enum with possible values:
BLOCK_COMPLETE,SINGLE_SHIPMENT_PARTIAL,MULTI_SHIPMENT_PARTIAL,PARTIAL;

No

dimensions

Object

Dimensions of the packed shipment

No

dimensions.length

Double

Length of the packing box.

No

dimensions.breadth

Double

Breadth of the packing box.

No

dimensions.height

Double

Height of the packing box.

No

invoice

Object

Invoice details

Yes

invoice.fromAddress

Object

Address of the Seller

No

fromAddress.name

String

Name of Seller

Yes

fromAddress.line1

String

1st line of Seller’s address

Yes

fromAddress.line2

String

2nd line of Seller’s address

No

fromAddress.line3

String

3rd line of Seller’s address

No

fromAddress.city

String

City of Seller

Yes

fromAddress.state

String

State of Seller

Yes

fromAddress.zip

String

ZIP/Pin code of Seller

Yes

fromAddress.country

String

Country of Seller

Yes

fromAddress.email

String

Email of Seller

Yes

fromAddress.phone

String

Phone number of Seller

No

invoice.shippingAddress

Object

Shipping address of the customer

Yes

shippingAddress.name

String

Name of customer

Yes

shippingAddress.line1

String

1st line of customer’s address

Yes

shippingAddress.line2

String

2nd line of customer’s address

No

shippingAddress.line3

String

3rd line of customer’s address

No

shippingAddress.city

String

City of customer

Yes

shippingAddress.state

String

State of customer

Yes

shippingAddress.zip

String

ZIP/Pin code of customer

Yes

shippingAddress.country

String

Country of customer

Yes

shippingAddress.email

String

Email of customer

Yes

shippingAddress.phone

String

Phone number of customer

No

invoice.billingAddress

Object

Billing address of the customer

Yes

billingAddress.name

String

Name of customer

Yes

billingAddress.line1

String

1st line of customer’s address

Yes

billingAddress.line2

String

2nd line of customer’s address

No

billingAddress.line3

String

3rd line of customer’s address

No

billingAddress.city

String

City of customer

Yes

billingAddress.state

String

State of customer

Yes

billingAddress.zip

String

ZIP/Pin code of customer

Yes

billingAddress.country

String

Country of customer

Yes

billingAddress.email

String

Email of customer

Yes

billingAddress.phone

String

Phone number of customer

No

invoice.orderTime

Date

Time of the order

No

invoice.channelName

String

Name of the channel from which order was placed

No

invoice.fromPartyName

String

Name of the seller

No

invoice.toPartyName

String

Name of the buyer

No

invoice.fromTIN

String

Seller GSTIN

No

invoice.toTIN

String

Buyer GSTIN

No

invoice.panNo

String

Client’s PAN number

No

invoice.invoiceItems

Object [ ]

Invoice Items

No

invoiceItems.actualSellingPricePerUnit

Double

Selling price per unit including  tax 

No

invoiceItems.actualSellingPriceTotal

Double

Total selling price including tax

No

invoiceItems.channelSkuCode

String

SKU code of order item

No

invoiceItems.itemName

String

Name of the product

No

invoiceItems.quantity

Long

Quantity of the product

No

invoiceItems.taxRule

String

Tax Rule for the product

No

invoiceItems.hsnCode

String

HSN code for the product (Used for classifying the item as well as for tax calculation)

No

invoiceItems.vendorSku

String

Client SKU code

No

invoiceItems.mrp

Double

MRP of the product

No

invoiceItems.brand

String

Brand of the product

No

invoiceItems.styleCode

String

Style code of the product

No

invoiceItems.color

String

Color of the product

No

invoiceItems.size

String

Size of the product

No

invoiceItems.category

String

Category of the product

No

invoiceItems.imageUrl

String

Image URL of the product

No

packboxDetailsList

Object[]

List of pack box details

No

packboxDetailsList.boxId

Integer

Box id of a pack box

No

packboxDetailsList.boxCode

String

Box code of a pack box

No

packboxDetailsList.length

Double

Length of a pack box

No

packboxDetailsList.breadth

Double

Breadth of a pack box

No

packboxDetailsList.height

Double

Height of a pack box

No

packboxDetailsList.weight

Double

Weight of a pack box

No

packboxDetailsList.volWeight

Double

volumetric weight of the box

No

packboxDetailsList.boxSkuId

String

SKU id of the box

No

shipmentItems

Object[]

List of items corresponding to shipment

Yes

shipmentItems.channelSkuCode

String

SKU code of order item

Yes

shipmentItems.quantity

Integer

Quantity of SKU in shipment

Yes

shipmentItems.orderItemCode

String

This is provided by the channel to uniquely identify each order item.

Yes

shipmentItems.itemCodes

String[ ]

These are the external item ids of the item

No

shipmentItems.externalSerialCodes

String[]

These are the external serial ids for the item

No

shipmentItems.skuDimension

Object

Dimensions of SKU (if provided during article master creation)

No

shipmentItems.skuDimension.length

Double

Length of SKU

No

shipmentItems.skuDimension.breadth

Double

Breadth of SKU

No

shipmentItems.skuDimension.height

Double

Height of SKU

No

shipmentItems.skuDimension.weight

Double

Weight of SKU

No

shipmentItems.orderItemCustomAttributes

Object

Custom attributes for order items

No

orderItemCustomAttributes.attribute1

String

Custom attribute 1

No

orderItemCustomAttributes.attribute2

String

Custom attribute 2

No

orderItemCustomAttributes.attribute3

String

Custom attribute 3

No

orderItemCustomAttributes.attribute4

String

Custom attribute 4

No

orderItemCustomAttributes.attribute5

String

Custom attribute 5

No

orderItemCustomAttributes.attribute6

String

Custom attribute 6

No

orderItemCustomAttributes.attribute7

String

Custom attribute 7

No

orderItemCustomAttributes.attribute8

String

Custom attribute 8

No

orderItemCustomAttributes.attribute9

String

Custom attribute 9

No

orderItemCustomAttributes.attribute10

String

Custom attribute 10

No

orderItemCustomAttributes.channelMetaData

Object

This is an object of extra metadata fields which can be used in subsequent flows

No

orderCustomAttributes

Object

Custom attributes for an order

No

orderCustomAttributes.channelMetaData

Object

This is an object of extra metadata fields which can be used in subsequent flows

No

orderCustomAttributes.currency

String

Currency

No

orderCustomAttributes.attribute1

String

Custom attribute 1

No

orderCustomAttributes.attribute2

String

Custom attribute 2

No

orderCustomAttributes.attribute3

String

Custom attribute 3

No

orderCustomAttributes.attribute4

String

Custom attribute 4

No

orderCustomAttributes.attribute5

String

Custom attribute 5

No

orderCustomAttributes.attribute6

String

Custom attribute 6

No

orderCustomAttributes.attribute7

String

Custom attribute 7

No

orderCustomAttributes.attribute8

String

Custom attribute 8

No

orderCustomAttributes.attribute9

String

Custom attribute 9

No

orderCustomAttributes.attribute10

String

Custom attribute 10

No

Response

{ "shipmentCode": "ship1234", "transporter": "ATSIN", "shipmentItems": [ { "channelSkuCode": "100000789701", "orderItemCode": "item123", "quantity": 7, "itemMetaData": { "key1": "value1", "key2": "value1" } }, { "channelSkuCode": "100000789702", "orderItemCode": "item124", "quantity": 5, "itemMetaData": null } ], "invoiceMetaData": { "key1": "value1", "key2": "value2" }, "shippingLabelMetaData": { "key1": "value1", "key2": "value2" } }

HttpStatus : 200

Parameter Name

Data Type

Description

Mandatory

shipmentCode

String

Unique code used by the channel to identify the shipment

Yes

transporter

String

Transporter name

No

shipmentItems

Object[]

List of items corresponding to shipment

No

shipmentItems.channelSkuCode

String

SKU code of order item

Yes (only if shipmentItems

object is provided.)

shipmentItems.orderItemCode

String

This is provided by the channel to uniquely identify each order item.

Yes (only if shipmentItems

object is provided.)

shipmentItems.quantity

Integer

Quantity of SKU in shipment

Yes (only if shipmentItems

object is provided.)

shipmentItems.itemMetaData

Object

Item level metaData which contains extra information regarding the item which can be used during shipping level generation

No

invoiceMetaData

Object

This is map of external attributes which needs to be printed on the invoice

No

shippingLabelMetaData

Object

This is map of external attributes which will be passed to logistic aggregator(CLICKPOST/SHIPROCKET)

No