This API will call the channel with consolidated GRN details for an inward order.
This API will call the channel with consolidated GRN information for an entire inward order. This API call will be triggered when the inward order is closed, providing aggregated quantities across all gate entries.
{
"orderCode": "po123",
"parentOrderCode": "parent123",
"orderType": "PO",
"locationCode": "l123",
"messageId": 12345,
"partnerCode": "partnerCode",
"partnerLocationCode": "partnerLocationCode",
"orderItems": [
{
"orderItemCode": "oc1",
"barcode": "barcode123",
"clientSkuCode": "clientSku001",
"channelSkuCode": "100005734",
"qcPassQuantity": 500,
"qcFailQuantity": 2,
"batchDetails": [
{
"batchId": 567,
"batchCode": "EXT-BATCH-001",
"manufacturingDate": "2026-01-01T00:00:00.000+00:00",
"expiryDate": "2027-01-01T00:00:00.000+00:00",
"mrp": 299.99,
"qcPassQuantity": 80,
"qcFailQuantity": 3
}
],
"orderItemCustomAttributes": {
"attribute1": "Value1",
"attribute2": "Value2",
"attribute3": "Value3",
"attribute4": "Value4",
"attribute5": "Value5",
"attribute6": "Value6",
"attribute7": "Value7",
"attribute8": "Value8",
"attribute9": "Value9",
"attribute10": "Value10",
"channelMetadata": {
"totalCashOnDeliveryFee": 0,
"department": "HR",
"paymentMethod": "ccavenue",
"status": "processing"
}
}
},
{
"orderItemCode": null,
"channelSkuCode": "100005736",
"qcPassQuantity": 498,
"qcFailQuantity": 32,
"batchDetails": [
{
"batchId": 547,
"batchCode": "EXT-BATCH-002",
"manufacturingDate": "2026-01-01T00:00:00.000+00:00",
"expiryDate": "2027-01-01T00:00:00.000+00:00",
"mrp": 299.99,
"qcPassQuantity": 80,
"qcFailQuantity": 3
}
],
"orderItemCustomAttributes": {
"attribute1": "Value12",
"attribute2": "Value22",
"attribute3": "Value32",
"attribute4": "Value42",
"attribute5": "Value52",
"attribute6": "Value62",
"attribute7": "Value72",
"attribute8": "Value82",
"attribute9": "Value92",
"attribute10": "Value102"
}
}
],
"orderCustomAttributes": {
"attribute1": "Value1",
"attribute2": "Value2",
"attribute3": "Value3",
"attribute4": "Value4",
"attribute5": "Value5",
"attribute6": "Value6",
"attribute7": "Value7",
"attribute8": "Value8",
"attribute9": "Value9",
"attribute10": "Value10",
"channelMetadata": {
"totalCashOnDeliveryFee": 0,
"department": "HR",
"paymentMethod": "ccavenue",
"status": "processing"
},
"currency": "INR"
},
"gateEntryLevelBoxSkuDetails": {
"boxSkuQtyData": [
{
"boxCode": "BOX123",
"purpose": "CROSS_DOCK",
"skuQtyDetails": [
{
"channelSkuCode": "SKU001",
"qcPassQty": 10,
"qcFailQty": 2
}
]
}
],
"missingItems": [
{
"channelSkuCode": "SKU002",
"itemCode": "Item123"
}
],
"extraItems": [
{
"channelSkuCode": "SKU003",
"itemCode": "Item456"
}
]
}
}
| Parameter Name | Data Type | Description | Mandatory |
|---|---|---|---|
orderCode |
String | Unique code used by the channel to identify the order | Yes |
parentOrderCode |
String | Parent Order Code which was passed at the time of Inward Order Creation | Yes |
orderType |
String | Possible values - STO (Stock Transfer Order), PO (Purchase Order), RO (Return Order), SO, RTV, RPO, OPEN_PO, OPEN_RO | Yes |
locationCode |
String | Code used by channels to identify a warehouse | Yes |
messageId |
Long | Unique Identifier of a message (for de-duplication) | Yes |
partnerCode |
String | This represents the partner from which this inward order came. If Order is of type PO/STO, this field represents vendor's code. If Order is of type RO, this field represents customer's code | Yes |
partnerLocationCode |
String | This represents the partner's location from which order will come. If Order is of type PO/STO, this field represents vendor location's code. If Order is of type RO, this field represents customer location's code | Yes |
orderItems |
Object[] | List of items GRNed (consolidated across all gate entries) | Yes |
orderItems.orderItemCode |
String | Identifier for the item in a particular order | No |
orderItems.barcode |
String | Barcode of the item | No |
orderItems.clientSkuCode |
String | Client's SKU code | No |
orderItems.channelSkuCode |
String | SKU code of order item | Yes |
orderItems.qcPassQuantity |
Integer | Total QC pass quantity inwarded across all gate entries | Yes |
orderItems.qcFailQuantity |
Integer | Total QC fail quantity inwarded across all gate entries | Yes |
orderItems.batchDetails |
Object[] | Container object holding batch-level information and QC quantity breakdowns | No, Batch details will only be returned when client configuration flag enableBatchDetailsInInventoryAPI is enabled |
batchDetails array will be empty for SKUs without batch tracking |
| batchDetails.batchId | Integer | Internal unique code/identifier for the batch | Yes (if batchDetails present) |
| batchDetails.batchCode | String | Batch identifier as provided by an external system | Yes (if batchDetails present) |
| batchDetails.manufacturingDate | ZonedDateTime | Date when the batch was manufactured | No |
| batchDetails.expiryDate | ZonedDateTime | Date when the batch expires | No |
| batchDetails.mrp | Double | Maximum Retail Price for items in the batch | No |
| batchDetails.qcPassQuantity | Integer | QC pass quantity for this batch | Yes (if batchDetails present) |
| batchDetails.qcFailQuantity | Integer | QC fail quantity for this batch | Yes (if batchDetails present) |
| orderItems.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 | Metadata fields as an object which is to be parsed at the channel's end | No |
| orderCustomAttributes | Object | Custom attributes for an order | 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 |
| orderCustomAttributes.channelMetadata | Object | Metadata fields as an object which is to be parsed at the channel's end | No |
| orderCustomAttributes.currency | String | Currency | No |
| gateEntryLevelBoxSkuDetails | Object | Box SKU details at order level | No |
| gateEntryLevelBoxSkuDetails.boxSkuQtyData | Object[] | Box SKU quantity data | No |
| gateEntryLevelBoxSkuDetails.missingItems | Object[] | Missing items | No |
| gateEntryLevelBoxSkuDetails.extraItems | Object[] | Extra items | No |
| boxSkuQtyData.boxCode | String | Code to uniquely identify a box in a GRN | No |
| boxSkuQtyData.purpose | String | Purpose (CROSS_DOCK/STORAGE) | No |
| boxSkuQtyData.skuQtyDetails | Object[] | Details of all SKUs in a box | No |
| skuQtyDetails.channelSkuCode | String | Code to uniquely identify an SKU on channel | No |
| skuQtyDetails.qcPassQty | Long | QC pass quantity inwarded in order | No |
| skuQtyDetails.qcFailQty | Long | QC fail quantity inwarded in order | No |
| missingItems.channelSkuCode | String | Code to uniquely identify an SKU on channel | No |
| missingItems.itemCode | String | Code to uniquely identify an item | No |
| extraItems.channelSkuCode | String | Code to uniquely identify an SKU on channel | No |
| extraItems.itemCode | String | Code to uniquely identify an item | No |
{
"hasError":false,
"errorMessage":"message"
}
HttpStatus : 200