Sales Order Posting

Outbound | POST | {Client’s URL}

Description

This API will share the Outward Order data with the ERP system with the details of sales orders which are completed in Increff Omni.

The API calls will be sent at a certain frequency from Increff system to the ERP system.

ERP system is advised to implement idempotency on messageId and shipmentCode fields.

Postings can be triggered on below event types:

Request Body

{
      "partnerCode": "1100013090",
      "partnerLocationCode": "9",
      "locationCode": "IN132",
      "orderCode": "order1",
      "parentOrderCode": "flipkart1221",
      "isPriority": false,
      "channelName": "channel",
      "orderTime": "2020-10-16T20:22:28.000+00:00",
      "orderType": "SO/STO/RTV",
      "messageId": 1100,
      "paymentMethod": "COD",
      "eventType": "OUTWARD_ORDER_COMPLETE",
      "eventTime": "2020-10-16T20:22:28.000+00:00",
      "omsOrderId": 1234,
      "turnAroundTime": "2020-10-16T20:22:28.000+00:00",
      "virtualSkuDefinitions": [
        {
          "virtualParentChannelSkuId": "abc1",
          "virtualParentBarcode": "bar1",
          "virtualParentClientSkuCode": "abc",
          "childSkus": [
            {
              "channelSkuCode": "xyz",
              "qty": 2,
              "barcode": "bar23",
              "clientSkuCode": "clientSku123"
            },
            {
              "channelSkuCode": "xyz1",
              "qty": 1,
              "barcode": "bar34",
              "clientSkuCode": "clientSku234"
            }
          ]
        }
      ],
      "bundledSkuDefinitions": [
        {
          "bundledParentBarcode": "string",
          "bundledParentChannelSkuId": "string",
          "bundledParentClientSkuCode": "string",
           "mrp": 1999,
          "childSkus": [
            {
              "barcode": "string",
              "channelSkuCode": "string",
              "qty": 0,
              "clientSkuCode": "string"
            }
          ]
        }
      ],
      "isSplitRequired": "false",
      "shippingCharges": 20,
      "channelType": "ERP",
      "orderItems": [
        {
          "orderItemCode": "item123",
          "channelSkuCode": "1000889888",
          "orderedQuantity": 2,
          "cancelledQuantity": 1,
          "customerCancelledQty": 0,
          "sellerCancelledQty": 0,
          "sellerRejectQty": 0,
          "channelDiscount": 50,
          "sellingPricePerUnit": 500,
          "giftChargePerUnit": 10,
          "sellerDiscount": 5,
          "shippingCharge": 0,
          "omsItemId": 123,
          "barcode": "barcode1",
          "clientSkuCode": "clientSku1",
          "orderItemCustomAttributes": {
            "attribute1": "Value1",
            "attribute2": "Value2",
            "attribute3": "Value3",
            "attribute4": "Value4",
            "attribute5": "Value5",
            "attribute6": "Value6",
            "attribute7": "Value7",
            "attribute8": "Value8",
            "attribute9": "Value9",
            "channelMetadata": {
              "totalCashOnDeliveryFee": 0,
              "department": "HR",
              "paymentMethod": "ccavenue",
              "status": "processing"
            },
            "attribute10": "Value10",
            "channelMetadataMap": {
              "key1": "value1",
              "key2": "value2"
            }
          }
        }
      ],
      "shipments": [
        {
          "shipmentCode": "UIfd897",
          "omsShipmentId": "121",
          "locationCode": "loc1",
          "generatedInvoiceId": "AR105044395",
          "generatedInvoiceDate": "2020-10-16T20:22:28.000+00:00",
          "externalInvoiceId": "FK56556GH45",
          "externalInvoiceDate": "2020-10-16T20:22:28.000+00:00",
          "invoiceDocumentUrl": "<https://mybrand.com/invoice123.pdf>",
          "shippingLabelDocumentUrl": "<https://mybrand.com/sldoc.pdf>",
          "irn": "a429746e55b844c9d2cb2a6f68997d1c2af29987cc834f3b52da45d1b0bc97c9",
          "qrCode": "eyJhbGciPiJSUzI1NiIsImtpZCI6IkI4RDYzRUNCMThFQTVFNkY0QUKDM0Q1MjQ1NDNCMjI0NjY2OUIwRjgiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJ1TlkteTFqcVhtOUtyRDFTUlVPeUpHWnBzUGcifQ.eyJkYXRhIjoie1wiU2VsbGVyR3N0aW5cIjpcIjI5QUFPQ001MzI2SjFaWVwiLFwiQnV5ZXJHc3RpblwiOlwiMjlBQUJDUjE3MThFMVpMXCIsXCJEb2NOb1wiOlwiTUVhajIyLTIzLzUwNTlcIixcIkRvY1R5cFwiOlwiSU5WXCIsXCJEb2NEdFwiOlwiMTMvMTAvMjAyMlwiLFwiVG90SW52VmFsXCI6MTgxNy4wNCxcIkl0ZW1DbnRcIjoxLFwiTWFpbkhzbkNvZGVcIjpcIjYyMTE0MjkwXCIsXCJJcm5cIjpcImE0Mjk3NDZlMzRkODQ0YzlkMmNiMmE2ZjY4OTk3ZDFjMmFmMjM5ODdjYzgzNGYzYjUyZGE0NWQxYjBiYzk3YzlcIixcIklybkR0XCI6XCIyMDIyLTEwLTEzIDEyOjAxOjAwXCJ9IiwiaXNzIjoiTklDIn0.wvB7b15AnpdQdX_d0VZEyj9dL1qWDaOFPLRPrlV0V2XIu3cE3aQ3YtsWLnTnyrmtUlokpbkkE4folBQNhfzkCPlnODNxRPfpO-Kz9eyNpqcIEp-8TqvcDKXZ3PrBRqmNmner00AG_fVmmqT1HLiyKB2sqOnhqtCfQaQF-PGnqIOhal3PDxIMVt0WAtaQOIwwDA75dsjjnFHaZFPl9tFPR8A6Wrw4NhQH-7xhABKW3Z961a_rGmO6M3XP7jPHyYPW-QWMfTqwNXwxNdFgFePL5FloPiUipt2-g4FIplgm-YcN1xMvEQ2irAfzQwbnxi7UKz-jwOgM0Zy2BbburYgDvQ",
          "shipmentStatus": "DELIVERED",
          "awbNumber": "118208310191",
          "transporter": "BLUEDART",
          "packageSku": "P-123",
          "deliveredAt": "2020-10-16T20:22:28.000+00:00",
          "packedAt": "2020-10-16T20:22:28.000+00:00",
          "shipmentItems": [
            {
              "channelSkuCode": "100000789702",
              "orderItemCode": "item123",
              "netTaxAmountPerUnit": 60,
              "netTaxAmountTotal": 120,
              "baseSellingPricePerUnit": 500,
              "baseSellingPriceTotal": 1000,
              "sellingPricePerUnit": 560,
              "sellingPriceTotal": 1120,
              "quantity": 2,
              "shippingChargePerUnit": 36,
              "channelDiscount": 30,
              "taxItems": [
                {
                  "type": "SGST",
                  "rate": 6,
                  "taxPerUnit": 30,
                  "taxTotal": 60
                },
                {
                  "type": "CGST",
                  "rate": 6,
                  "taxPerUnit": 30,
                  "taxTotal": 60
                }
              ],
              "barcode": "barcode1",
              "clientSkuCode": "csku1"
            },
            {
              "channelSkuCode": "100000734701",
              "orderItemCode": "item124",
              "netTaxAmountPerUnit": 60,
              "netTaxAmountTotal": 120,
              "baseSellingPricePerUnit": 500,
              "baseSellingPriceTotal": 1000,
              "sellingPricePerUnit": 560,
              "sellingPriceTotal": 1120,
              "quantity": 2,
              "shippingChargePerUnit": 36,
              "channelDiscount": 30,
              "taxItems": [
                {
                  "type": "SGST",
                  "rate": 6,
                  "taxPerUnit": 30,
                  "taxTotal": 60
                },
                {
                  "type": "CGST",
                  "rate": 6,
                  "taxPerUnit": 30,
                  "taxTotal": 60
                }
              ],
              "barcode": "barcode2",
              "clientSkuCode": "csku2"
            }
          ],
      "shipmentDetails": {
        "length": 30,
        "breadth": 20,
        "height": 10,
        "weight": 5,
        "shipmentId": 12345,
        "totalItemQuantity": 50,
        "packboxDetailsList": [
          {
            "length": 15,
            "breadth": 10,
            "height": 8,
            "weight": 2,
            "boxId": 1,
            "awbNumber": "AWB123",
            "packBoxRemarks": "Fragile items",
            "volWeight": "0.0",
            "boxSkuId": "boxSku1",
            "boxCode": "box1",
            "skuQuantityDataList": [
              {
                "globalSkuId": 987,
                "clientSkuId": "SKU001",
                "count": 10
              },
              {
                "globalSkuId": 876,
                "clientSkuId": "SKU002",
                "count": 15
              }
            ]
          }
        ]
      }
        }
      ],
      "shippingAddress": {
        "name": "Customer's Name",
        "line1": "Line Address 1",
        "line2": "Line Address 2",
        "line3": "Line Address 3",
        "city": "city",
        "state": "state",
        "zip": "zip",
        "country": "country",
        "email": "[email protected]",
        "phone": "9999999999"
      },
      "billingAddress": {
        "name": "customer",
        "line1": "address line 1",
        "line2": "address line 2",
        "line3": "address line 3",
        "city": "Bengaluru",
        "state": "Karnataka",
        "zip": "560076",
        "country": "INDIA",
        "email": "[email protected]",
        "phone": "9999999999"
      },
      "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": {
          "key1": "value1",
          "key2": "value2"
        },
        "currency": "INR"
      }
    }
Field Name Data Type Description Mandatory
partnerCode String This represents the partner to which order was shipped to.
• If Order is of type SO/STO, this field represents customer’s code
• If Order is of type RTV, this field represents vendor’s code
For Marketplaces orders, this field will be having the ERP channel name which is mapped in Increff OMS Yes
partnerLocationCode String This represents the partner’s location to which order was shipped to.
• If Order is of type SO/STO, this field represents customer location’s code
• If Order is of type RTV, this field represents vendor location’s code Yes
isPriority Boolean Flag to identify if an order is of priority type or not Yes
locationCode String Warehouse location from which order was fulfilled Yes
orderCode String Unique code used by the channel to identify order Yes
parentOrderCode String Parent order code  which can be null or empty or some duplicate value across orders. No
channelName String Channel name of the marketplace. Yes
orderTime String Time at which order was placed at the channel in UNIX (UTC) Yes
orderType String This represents the order type
Possible values →
• SO(Sales Order)
• STO(Stock Transfer Order)
• RTV(Return To Vendor)
• RPO(Replacement) Yes
messageId Long Unique Identifier of a notification (for De-duplication) Yes
paymentMethod String Possible values → COD or NCOD Yes
omsOrderId Long Internal order identifier of Increff OMS No
turnAroundTime ZonedDateTime Cut off time defined as SLA in Increff OMS to process the order No
isSplitRequired boolean Flat to identify if the order splitting will be done by Increff system or not Yes
virtualSkuDefinitions Object List of virtual SKU definitions No
virtualSkuDefinitions.virtualParentChannelSkuId String SKU code of virtual SKU No
virtualSkuDefinitions.virtualParentBarcode String Barcode of parent SKU No
virtualSkuDefinitions.virtualParentClientSkuCode String Unique identifier for a virtual parent sku at client’s end No
virtualSkuDefinitions.childSkus Object[] List of child SKUs No
childSkus.channelSkuCode String SKU code of child SKU No
childSkus.qty Integer Quantity of child SKU No
childSkus.barcode String Barcode of child SKU No
childSkus.clientSkuCode String SKU identifier defined by user in system No
bundledSkuDefinitions Object[] List of bundled SKU definitions No
bundledSkuDefinitions.bundledParentBarcode String Barcode of parent SKU No
bundledSkuDefinitions.bundledParentChannelSkuId String Channel SKU identifier of Parent SKU in a bundle Yes
bundledSkuDefinitions.bundledParentClientSkuId String Client SKU identifier of Parent SKU in a bundle No
bundledSkuDefinitions.mrp Double MRP value of the product No
bundledSkuDefinitions.childSkus Object[] List of child SKUs Yes
childSkus.barcode String Unique barcode for child SKU of a bundle No
childSkus.channelSkuCode String Unique identifier for child sku defined at marketplace/channel level Yes
childSkus.qty Integer Quantity of child product of a bundle No
childSkus.clientSkuCode String Unique identifier of child sku for client No
orderItems Object[] List of order items Yes
orderItems.orderItemCode String This is provided by the channel to uniquely identify each order item. Yes
orderItems.channelskuCode String SKU code of order item Yes
orderItems.orderedQuantity Integer Ordered Quantity of order Yes
orderItems.cancelledQuantity Integer Cancelled Quantity in order Yes
orderItems.sellerCancelledQuantity Integer Cancelled Quantity by Seller No
orderItems.customerCancelledQuantity Integer Cancelled Quantity by Customer No
orderItems.sellerRejectQuantity Integer Seller rejected Quantity No
orderItems.sellingPricePerUnit double Selling Price Per Unit of a product Yes
orderItems.giftChargePerUnit Double Gift Price Per Unit of a product No
orderItems.channelDiscount Double Discount provided by channel per unit No
orderItems.sellerDiscount Double Discount provided by seller per unit No
orderItems.omsItemId Long Internal item identifier of OMS No
orderItems.barcode String Barcode to identify a product Yes
orderItems.clientSkuCode String unique identifier of item for client No
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 These are additonal fields which can be sent to Increff system and can be used in subsequent Posting workflows No
orderItemCustomAttributes.channelMetaDataMap Map<String,String> 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 Objecg 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.attribute10 String Custom attribute 10 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.channelMetaDataMap Map<String,String> These are additonal fields which can be sent as key value pairs to Increff system and can be used in subsequent Posting workflows No
shipments.omsShipmentId Long Increff OMS shipment id no
shipments.qrCode String QR code of the product scanned No
shipments.shipmentStatus String Status of the shipment No
shipments.awbNumber String AWB number of shipment No
shipments.transporter String Transporter partner name No
shipments.packageSku String SKU code for the package used in packing the shipment No
shipments.deliveredAt ZoneDateTime Delivery time of the order to customer No
shipments.packedAt ZoneDateTime Packing time for the shipment in warehouse No
shipments.shipmentItems Object[] Items belonging to this shipment Yes
shipmentItems.channelSkuCode String SKU code of order item yes
shipmentItems.locationCode String Fulfillment Location Yes
shipmentItems.orderItemCode String This is provided by the channel to uniquely identify each order item. Yes
shipmentItems.netTaxAmountPerUnit Double Per unit tax applicable for the SKU. Yes
shipmentItems.netTaxAmountTotal Double Total tax applicable for the SKU Yes
shipmentItems.baseSellingPricePerUnit Double Per unit base selling price of the SKU
Discounts are not subtracted from base selling price Yes
shipmentItems.baseSellingPriceTotal Double Total base selling price of SKU Yes
shipmentItems.sellingPricePerUnit Double Per unit selling price of the SKU including tax
Discounts are not subtracted from base selling price Yes
shipmentItems.sellingPriceTotal Double Total selling price of the SKU Yes
shipmentItems.quantity Integer Quantity of the sku in the shipment item. Yes
shipmentItems.shippingChargePerUnit Double Shipping charge per unit for a shipment item No
shipmentItems.channelDiscount Double Channel discount of item No
shipmentItems.barcode String Unique identifier for barcode of an item of shipment No
shipmentItems.clientSkuCode String Unique identifier for SKU of an item of shipment No