Outbound | POST | {Client’s URL}

Summary

This API sends near real-time GRN Notifications to ERP with gate entry level data. The feature will help to keep the ERP systems notified about all the GRN’s happening for a client.

Description

This API sends all the GRN notification gate-entry wise for the orders for which items have been GRN’ed since the time the job last ran and synced notifications successfully to ERP. Frequency of this job is configurable.

Request

{
  "invoiceId": 1234,
  "invoiceDocumentUrl": "<https://www.increff.com/invoiceUrl>",
  "stateTaxDocumentUrl": "<https://www.increff.com/staxDocurl>",
  "shippingLabelDocumentUrl": "<https://www.increff.com/slurl>",
  "transporter": "BlueDart",
  "vehicleNumber": "KA90-87-01",
  "invoiceCode": "invoiceCode",
  "gateEntryCreatedAt": "2020-10-16T20:22:28.000+00:00",
  "externalInvoiceDate": "2020-10-16T20:22:28.000+00:00",
  "awbNumber": "awbNumber",
  "gateEntryId": 1234,
  "messageId": 1001,
  "orderCode": "po123",
  "orderType": "PO/STO/RO",
  "locationCode": "l123",
  "billOfEntry": "b123",
  "entryDeclarationNumber": "en1",
  "parentOrderCode": "pOrder123",
  "partnerCode": "partner1",
  "partnerLocationCode": "partnerLoc1",
  "asnCode": null,
  "docType": "INVOICE",
  "externalDocId": "EXT-INV-123",
  "generatedAsnId": null,
  "items": [
    {
      "orderItemCode": "oc1",
      "barcode": "BAR789012",
      "clientSkuCode": "SKU67890",
      "channelSkuCode": "100005734",
      "qcPassAbsoluteQuantity": 500,
      "qcFailAbsoluteQuantity": 2,
      "qcFailDeltaQuantity": 1,
      "qcPassDeltaQuantity": 1,
      "batchDetails": [
        {
          "batchId": 677,
          "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"
        },
        "channelMetadataMap": {
          "department": "HR",
          "paymentMethod": "ccavenue"
        }
      }
    }
  ],
  "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"
    },
    "channelMetadataMap": {
      "department": "HR",
      "paymentMethod": "ccavenue"
    },
    "currency": "INR"
  }
}
Parameter Name Data Type Description Mandatory
invoiceCode String External invoiceId provided at the time of Gate entry creation Yes
invoiceId Long Internal invoiceId generated at the time of GRN Yes
gateEntryId Long Gate entry Id created at the time of GRN Yes
invoiceDocumentUrl String Invoice document provided at the time of Gate entry creation is available via the Url Yes
stateTaxDocumentUrl String State tax document provided at the time of Gate entry creation is available via the Url Yes
shippingLabelDocumentUrl String Shipping label document provided at the time of Gate entry creation is available via the Url Yes
transporter String Transporter which delivered the goods to warehouse Yes
vehicleNumber String Vehicle Number which delivered the goods to warehouse Yes
gateEntryCreatedAt String Time at which gate entry was created in Increff Omni Yes
externalInvoiceDate String Time at which order was placed at the channel in UNIX (UTC) yes
awbNumber String Awb number of shipment which is getting inwarded Yes
orderCode String Unique code used by the channel to identify the order Yes
orderType String Possible value - SO (Sales Order), STO (Stock Transfer Order), RTV (Return To Vendor), RPO(Replacement), PO, RO, OPEN_PO, OPEN_RO Yes
docType String Document type for the document captured during Gate entry creation
Possible values →
INVOICE
DEBIT_NOTE
OTHER Yes
externalDocId String Identifer of the external document captured during gate entry Yes
locationCode String Code used by channels to identify a warehouse Yes
messageId Long Unique Identifier of a notification ( for de-duplication) Yes
billOfEntry String Bill of entry of GRN No
entryDeclarationNumber String Entry declaration number No
parentOrderCode String Parent order code Yes
partnerCode String This represents the partner from which order will come.
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
asnCode String External code for the corresponding ASN No
generatedAsnId String Internal code for the corresponding ASN No
items Object[] List of items being GRN’ed Yes
items.barcode String Barcode of the product Yes
items.clientSkuCode String Client SKU identifier for the product Yes
items.orderItemCode String Code of an item in a particular order No
items.channelSkuCode String SKU code of order item Yes
items.qcPassAbsoluteQuantity Integer Total Qc pass quantity GRNed in order for the SKU Yes
items.qcFailAbsoluteQuantity
Integer Total Qc fail quantity GRNed in order for the SKU Yes
items.qcPassDeltaQuantity Integer Qc pass quantity GRNed in order for the SKU since the last notification to ERP for the order. Yes
items.qcFailDeltaQuantity Integer Qc fail quantity GRNed in order for the SKU since the last notification to ERP for the 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) | | items.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 | These are additonal fields which can be sent to Increff system and can be used in subsequent Posting workflows | No | | orderCustomAttributes | Object | Custom attributes for an order | No | | orderCustomAttributes.channelMetadata | Object | These are additonal fields which can be sent to Increff system and can be used in subsequent Posting workflows | 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.channelMetadataMap | Object | These are additonal fields which can be sent to Increff system and can be used in subsequent notification | No |

Response

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

HttpStatus : 200