This API will call the channel with GRN details per gate entry wise.
This API will call the channel with GRN information against a gate entry.This API call will be triggered only after the gate entry is closed.
{
"orderCode": "po123",
"parentOrderCode": "parent123",
"orderType": "PO/STO/RO",
"invoiceId": "invoice123",
"awbNumber": "awb_01",
"externalInvoiceDate": "2020-10-16T20:22:28.000+00:00",
"gateEntryCreatedAt": "2020-09-16T20:22:28.000+00:00",
"gateEntryId": "gt234",
"messageId": 12345,
"locationCode": "l123",
"partnerCode": "partnerCode",
"partnerLocationCode": "partnerLocationCode",
"externalDocId": "EXT-DOC-1",
"docType": "INVOICE",
"asnCode": "asn1",
"generatedAsnId": "genAsn1",
"orderItems": [
{
"orderItemCode": "oc1",
"channelSkuCode": "100005734",
"qcPassQuantity": 500,
"qcFailQuantity": 2,
"batchDetails": [
{
"batchId": 567,
"batchCode": "EXT-BATCH-001",
"manufacturingDate": "2026-01-01",
"expiryDate": "2027-01-01",
"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": 587,
"batchCode": "EXT-BATCH-002",
"manufacturingDate": "2026-01-01",
"expiryDate": "2027-01-01",
"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": "Sample Purpose",
"skuQtyDetails": [
{
"channelSkuCode": "SKU001",
"qcPassQty": 10,
"qcFailQty": 2
}
]
}
],
"missingItems": {
"itemDetail": [
{
"channelSkuCode": "SKU001",
"itemCode": "ITEM123"
}
]
},
"extraItems": {
"itemDetail": [
{
"channelSkuCode": "SKU002",
"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 value - 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 |
invoiceId |
String | Unique Id with which the shipment is arrived in the warehouse. | yes |
awbNumber |
String | Awb Number of the shipment received in the warehouse. | Yes |
externalInvoiceDate |
String | Time at which order was placed at the channel in UNIX (UTC) | yes |
gateEntryCreatedAt |
String | Time at which gate entry was created at the channel in UNIX (UTC) | yes |
gateEntryId |
String | Unique Id used to differentiate a gate entry | 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 | ||
externalDocId |
String | External document id | Yes |
docType |
String (DocType) |
Document type enum: INVOICE, DEBIT_NOTE, OTHER |
Yes |
asnCode |
String | Unique code to identify the corresponding advanced shipment notice(ASN) | No |
generatedAsnId |
String | Id of the ASN generated | No |
orderItems |
Object[] | List of items GRNed | yes |
orderItems.orderItemCode |
String | Code to identify the item in a particular order | No |
orderItems.channelSkuCode |
String | SKU code of order item | yes |
orderItems.qcPassQuantity |
Integer | Qc pass quantity inwarded in order | yes |
orderItems.qcFailQuantity |
Integer | Qc fail quantity inwarded in order | yes |
items.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 (supplier, ERP, WMS, etc.) | Yes (if batchDetails present) |
| batchDetails.manufacturingDate | String | Date when the batch was manufactured | No |
| batchDetails.expiryDate | String | Date when the batch expires and should no longer be used/sold | No |
| batchDetails.mrp | Decimal | Maximum Retail Price for items in the batch | No |
| batchDetails.qcPassQuantity | Integer | Quantity of SKU in the batch | Yes (if batchDetails present) |
| batchDetails.qcFailQuantity | Integer | Quantity of SKU in the 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 | meta data fields as an object which is to be parsed at the channel’s end | no |
| orderCustomAttributes | Object | Custom attributes for an order | No |
| orderCustomAttributes.channelMetadata | Object | meta data fields as an object which is to be parsed at the channel’s end | 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 |
| gateEntryLevelBoxSkuDetails | Object | Box Sku Details at gate entry 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 | 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 | Integer | Qc pass quantity inwarded in order | no |
| skuQtyDetails.qcFailQty | Integer | Qc fail quantity inwarded in order | no |
| missingItems.itemDetail | Object[] | Details of all items | no |
| itemDetail.channelSkuCode | String | Code to uniquely identify an sku on channel | no |
| itemDetail.itemCode | String | Code to uniquely identify an item | no |
| extraItems.itemDetail | Object[] | Details of all items | no |
| itemDetail.channelSkuCode | String | Code to uniquely identify an sku on channel | no |
| itemDetail.itemCode | String | Code to uniquely identify an item | no |
{
"hasError":false,
"errorMessage":"message"
}
HttpStatus : 200