Many users of the Infoplus API need a way to push Purchase Order (PO) data from a source system, such as an ERP or other in-house system into Infoplus, to provide Infoplus Advanced Shipment Notification (ASN) data for inventory that is on its way to be received in an Infoplus managed warehouse.  This is relatively straightforward to do, with the Infoplus API.  However, at first glance, the ASN object in the Infoplus API documentation may appear overwhelming, as it has very many fields, both in the header, and in the line items.  


The purpose of this article is to explain the basic set of required fields for creating an ASN with the Infoplus API, to give you a starting point that you can build upon.  


From a mechanical standpoint, creating an ASN is as simple as a single HTTP POST to the order endpoint in the Infoplus API.  For example, using version 1.0 of the api, on the command line:    

curl -s -H API-Key:YOUR-API-KEY -H Content-Type:application/json -X POST -d @asn.json \
   https://YOUR-INFOPLUS-DOMAIN/infoplus-wms/api/v1.0/asn

The interesting part is all about the data that is included in that POST (i.e., in the asn.json file on the command line shown above)..  


The simplest example ASN that can be placed through the Infoplus API looks like the following:    
{
   "poNo":"API-PO-1",
   "lobId":10000,
   "warehouseId":1000,
   "vendorId":1,
   "orderDate":"2020-01-01T00:00:00.000Z",
   "type":"Normal",
   "lineItems":[{ "sku": "SKU-1", "orderQuantity": 100, "lobId": 10000}]
} 

  

Going through that JSON object field-by-field, we have:

Field Description Notes
poNo String; Unique identifier (within the LOB) for this ASN.  PO No and LOB Id form a unique constraint on ASN's in Infoplus. PO No's are limited to 40 characters.  
lobId Integer; Id of the Line of Business (LOB) that the ASN belongs to.  You can find your LOB Id by using the lineOfBusiness/search endpoint in the Infoplus API, as in:
curl -H API-Key:YOUR-API-KEY \
https://YOUR-INFOPLUS-DOMAIN/infoplus-wms/api/v1.0/lineOfBusiness/search

warehouseId Integer; Id of the Warehouse that the ASN will be received into. You can find your Warehouse Id in the Warehouse Table, within Infoplus.
Or, you can use the warehouse/search endpoint in the Infoplus API, as in:
curl -H API-Key:YOUR-API-KEY \
https://YOUR-INFOPLUS-DOMAIN/infoplus-wms/api/v1.0/warehouse/search
vendorId Integer; Id of the Vendor in Infoplus that the ASN was sent from. You can find your Vendor Ids in the Vendor Table, within Infoplus.
Or, you can use the vendor/search endpoint in the Infoplus API, as in:
curl -H API-Key:YOUR-API-KEY \
https://YOUR-INFOPLUS-DOMAIN/infoplus-wms/api/v1.0/vendor/search
orderDate Date (YYYY-MM-DD); Date that the ASN was placed in the source system.
type  Enumerated String; Classifier for behavior type of the ASN. Must be one of the following: Normal, Kit, Transfer.
Note: Use "Normal" unless you have a specific reason not to.
lineItems List of Line Items on the ASN.  At least 1 line Item is required.  
lineItems[i].sku String;  Unique identifier (within the LOB) for the Item being ordered. All SKU's on an ASN must be unique (i.e., you can not have 2 or more line items for the same SKU).
lineItems[i].orderQuantity Integer; Unit quantity being ordered. 
lineItems[i].lobId Integer; Id of the Line of Business (LOB) that the Line Items belongs to. Must match the lobId on the header of the ASN.

 

Beyond these required fields, there are many more optional fields which can be included when you create (or update) an ASN. You can consult the API Reference site for a listing of all fields.  


For updating an ASN, the recommended usage pattern is:  

  1. Use a GET to have a clean, up-to-date copy of the asn object that you want to update.  
  2. Modify the object as needed (removing line Items, adjusting quantities, adding line items, editing header fields, etc, as needed).  
  3. Use a PUT to send the updated object back in Infoplus.