Outbound | POST | {Client’s URL}

Summary

This API will call the channel with consolidated GRN details for an inward order.

Description

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.

Request

{
    "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 |

Response

{
    "hasError":false,
    "errorMessage":"message"
}

HttpStatus : 200