Outbound | POST | {Client’s URL}

Summary

This API will call the channel with GRN details per gate entry wise.

Description

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.

Request

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

Response

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

HttpStatus : 200