1. Inventory Handling API

Inventory handling API is used to move items between warehouses, receive parts into warehouses, and issue parts from warehouses. 

1.1. Inventory Handling Receive API

Functions

Receiving API is used to receive items into Inventory.

URL: {Root URL}/API/InventoryHandling/receive/{API Key}

Parameters

Parameters Description Required Comment
Part_sourc Source of the Part Y Can be 'MAKE', 'BUY', or 'CONSG'
uniq_key Use to identify the part Y When uniq_key is used you do not need part_no
part_no Part number you wish to transfer Y Part_no can be used if you do not have the uniq_key
revision Part revision level N Required when you use part_no if the part has a revision
custpartno Customer Part Number N Use instead of part_no if the part_sourc is CONSG
custrev Customer revision level N Required if custpartno is used and the part has a revision
Partmfgr Part Manufacturer N Used to specify part manufacturer
Mfgr_pt_no Manufacturer part number N Used with partmfgr
Uniqmfgrhd Manufacturer identification N Can be used in place of partmfgr and mfgr_pt_no.
Warehouse Warehouse Name Y Choose which warehouse the part will be received into.
Location Location Name N Used when the part is being received into a specific location in the warehouse.
Uniqwh Warehouse identifier Y Choose which warehouse the part will be received into. Can be used in place of warehouse. Needs location.
WhNo Warehouse Number Y Choose which warehouse the part will be received into. Can be used in place of warehouse and uniqwh. Needs location.
W_Key Inventory Unique Identifier Key Y Choose which warehouse the part will be received into.
LotcodeAndSerialNo
Lot Code or Serialized N Required if the part is lotcoded or Serialized
expDate Expiration Date N Required if the part is lot coded. Use MM-DD-YYYY format.
internalLotReference Internal Lot Reference N Only needed if the part is lot coded
cserialNo Serial No N Required of the part is serialized
QtyRec Received Quantity Y The amount of the part you are receiving
qtyPerPackage
Reason Reason for transfer Y Can be: 'BEGINNING RAW MATL. INV.', 'CONSIGNED MATERIAL', 'FREE SAMPLES', 'MATERIAL ON TRIAL', 'REPAIR RETURN FROM VENDOR', 'WARRANTY REPLACEMENT'
gl_nbr General Ledger Number Y Used to add a record of the transaction to the general ledger
transactionReference Transaction Reference Y User defined field

Example Strings

No Lot Code, No Serialization

URL- ?part_sourc=BUY&part_no=PARTNUMBER&revision=REVISION&W_Key=WKEY&QtyRec=1&reason=CONSIGNED MATERIAL&TransactionReference=New Customer Inventory&Gl_Nbr=GENERALLEDGERNUMBER

JSON-

{

'part_sourc':'BUY',

'part_no':'PARTNUMBER',

'revision':'REVISION',

'W_Key':'WKEY',

'QtyRec':'1',

'reason':'CONSIGNED MATERIAL',

'transactionReference':'New Customer Inventory',

'Gl_Nbr':'GENERALLEDGERNUMBER'

}

Lot Code, Serialization

URL- ?part_sourc=BUY&UNIQ_KEY=UNIQKEY&LotCodeAndSerialNo=LOTCODE@SERIALNUMBER&EXPDATE=MM-DD-YYYY&W_Key=WKEY&QtyRec=1&reason=CONSIGNED MATERIAL&transactionReference=New Customer Inventory&Gl_Nbr=0000000-00-00

JSON-

{

'part_sourc':'BUY',

'UNIQ_KEY':'UNIQKEY',

'lotCodeAndSerialNo':'LOTCODE@SERIALNUMBER',

'EXPDATE':'MM-DD-YYYY',

'W_Key':'WKEY',

'QtyRec':'1',

'reason':'CONSIGNED MATERIALS',

'transactionReference':'New Customer Inventory',

'Gl_Nbr','0000000-00-00'

}

 

Lot Code with Multiple Serial Numbers 

"LotcodeAndSerialNo":"LotCode1@1230120,234455,33333" 

 

Lot Code, No Serialization

Example 1: user provides uniq_key, uniqmfgrhd, no part-no and no mpn

{
 "Part_Sourc":"BUY",
    "uniq_key":"_01F15SZAH",
    "uniqmfgrhd":"_01F15T9BZ",
    "WareHouse" :"MAIN1",
    "Location":"",
    "QtyRec":"16",
    "expDate":"09/04/2017",
 "REFERENCE":"test21",
    "GL_NBR":"1430000-00-00",
    "LotcodeAndSerialno":"Lot-10"

}
Example 2:  User provides uniq_key, uniqmfgrhd, and mpn

{
 "Part_Sourc":"BUY",
    "uniq_key":"_01F15SZAH",
    "uniqmfgrhd":"_01F15T9BZ",
    "partmfgr":"AVX",
    "WareHouse" :"MAIN1",
    "Location":"",
    "QtyRec":"15",
    "mfgr_pt_no":"CR10-2610FT",
 "expDate":"09/04/2017",
 "REFERENCE":"test21",
    "GL_NBR":"1430000-00-00",
    "LotcodeAndSerialno":"Lot-09"
}
Example 3:  user provides Part_no, revision, MPN, no uniq_key,uniqmfgrhd

{
 "Part_Sourc":"BUY",
    "Part_No":"101-0001707",
    "Revision":"",
    "partmfgr":"AVX",
    "WareHouse" :"MAIN1",
    "Location":"",
    "QtyRec":"1",
    "mfgr_pt_no":"CR10-2610FT",
   "expDate":"09/04/2017",
   "REFERENCE":"test21",
    "GL_NBR":"1430000-00-00",
    "LotcodeAndSerialno":"Lot-09"
}

 

No Lot Code, Serialized

URL- ?Part_sourc=BUY&part_no=PARTNUMBER&lotcodeAndSerialNo=000000000000000000000000000000&W_KEY=WKEY&QtyRec=1&reason=CONSIGNED MATERIAL&transactionReference=New Customer Inventory&Gl_Nbr=0000000-00-00

JSON

{

'part_sourc':'BUY',

'part_no':'PARTNUMBER',

'lotCodeAndSerialNo':'000000000000000000000000000000',

'W_Key':'WKEY',

'QtyRec':'1',

'reason','CONSIGNED MATERIAL',

'transactionReference':'New Customer Inventory',

'Gl_Nbr':'0000000-00-00'

}

Successful requests should return the following:

{

"$id":"1",

"Code":200,

"Message":"Inventory added successfully.",

"SessionId":null,

"IsValidUser":true,

"ResponseObject":null

}

Common Errors

API Key Error

If there is an error with the entered API key the system will return an error describing it.

{

"$id": "1",

"Code": 403,

"Message": "Invalid API Key.",

"SessionId": null,

"IsValidUser": false,

"ResponseObject": null

}

Incorrect Parameter

If an incorrect parameter value is used the system will return an error describing the incorrect parameter.

{

"$id": "1",

"Code": 403,

"Message": "Failed:Please provide valid GL_NBR.",

"SessionId": null,

"IsValidUser": true,

"ResponseObject": null

}

 

The GL_nbr parameter for the "Receive" API has to be on the list for the Inventory Handling GL Defaults for  'Receiving'. 



URL Error

If there is an error within the URL the system will return a HTTP error.

{

"$id": "1",

"Message": "No HTTP resource was found that matches the request URI 'http://localhost/api/InventoryHandling/Receiv/123456789'.",

"MessageDetail": "No action was found on the controller 'InventoryHandling' that matches the name 'Receiv'."

}

 

​Keep in mind that if you were to create a new location when transferring you need the following checked.

Inventory Control Management Module, the MFGR that you creating the new location under, needs to have "Allow Auto Creating Location at Receiving" checked.  


Under Sql Setting the warehouse you are receiving into also needs " Allow Auto Create Location at Receiving" checked. 

1.2. Inventory Handling Transfer API

Functions

Transfer API is used to transfer items between warehouses.

URL: {Root URL}/API/InventoryHandling/Transfer/{API Key}

Parameters

Parameter Description Required Comment
fromIpKey
SerialNo  Serial Number for the part Y/N Required if the part is serialized
Source of the Part Y Can be 'BUY', 'MAKE', 'CONSG'
uniq_key Identifier for the part Y
part_no Part Number you wish to transfer Y Part_no can be used instead of uniq_key
revision Part Revision Level N Required when using part_no and the part has a revision level
custPartNo Customer Part Number Y/N 
custRev Customer Revision Level N Required when using custPartNo if the part has a revision level
partMfgr Part Manufacturer Y Used to choose the manufacturer of the part when there are multiple manufacturers in the system.
mfgr_pt_no Manufacturer Part Number Y Used in place of partMfgr to choose manufacturer.
uniqmfgrhd Manufacturer Identification N Used in place of partMfgr and mfgr_pt_no to choose manufacturer.
fromWarehouse  Warehouse where the item will be transferred from Y
fromLocation Location where the part will be transferred from N Used when the selected warehouse also has location information assigned to it.
fromWhNo From Warehouse number N Choose transfer from warehouse by number
fromW_Key From Unique Inventory Identifier Key N Selects warehouse, does not require location information
lotCode Lot Code N Required if the part is Lot Coded, use MM-DD-YYYY format
expDate Expiration Date N Required when the part is Lot Coded
internalRef  Internal Lot Reference N Lot Code Reference. Only needed when the part is lot coded
poNum Purchase order Number N Only needed if the part is lot coded. Not needed unless the part was received through purchasing
transferredQuantity Quantity you are transferring Y
reason Reason for Transfer Y Here are some examples 'ENGINEERING TESTING','PRODUCTION CALIBRATION','PRODUCTION TESTING','PROTOTYPE FOR RESALE','PROTOTYPE TO BE SCRAPPED','SPECIAL PROJECTS' . See below for how to add or change your reasons in your system settings.
WoNo Work Order Number N Should remain empty unless created by KIT API
TransRef Transaction Reference N User defined field. Transfer Reference
toIPKEY Transfer to IPKEY N
toMRB Transfer Items to MRB N Can be '1' or '0'. If '1' then parts will be transferred to MRB and no other warhouse information is required
toWarehouse Warehouse where the items will be transferred to Y Selects which warehouse the items will be transferred to. Requires location if the warehouse has location information.
toLocation Warehouse Location N Selects which location the items will be transferred into. Required if the warehouse has location information available
toUniqWh Warehouse Unique Identifier N Can be used instead of toWarehouse
toWhNo To Warehouse Number N Can be used instead of toWhNo
toW_Key Warehouse Unique Identifier N Can be used in place of toWarehouse, toUniqWh, toWhNo

​Example Strings

No Lot Code, no Serialization

URL-?part_sourc=BUY&uniq_key=UNIQKEY&fromW_Key=WKEY&transferredQuantity=1&toW_key=WKEY&reason=SPECIAL PROJECTS&transactionReference=test

JSON-

{

'part_sourc':'BUY',

'uniq_key':'UNIQKEY',

'fromW_Key':'WKEY',

'transferredQuantity':'1',

'toW_Key':'WKEY',

'reason':'SPECIAL PROJECTS'

}

OR

{

 "Part_No":"partnumber",

"revision":"revision",

"PARTMFGR":"partmfgr",

"MFGR_PT_NO":"MFGRpartnumber",

"FromWarehouse":"Warehouse",

"FromLocation":"location",

"ToWarehouse":"Warehouse",

"ToLocation":"Location",

"TransferredQuantity":"quantity",

 "Part_Sourc" :"BUY",

 "Reason": "PRODUCTION TESTING"

}

Lot Code, no serialization 

{

 "Part_No":"Partnumber",

"revision":"revision",

"PARTMFGR":"PartMFGR",

"MFGR_PT_NO":"MFGRpartnumber",

"FromWarehouse":"warehouse",

"FromLocation":"location",

"ToWarehouse":"Warehouse",

"ToLocation":"location",

"TransferredQuantity":"Quantity",

 "Part_Sourc" :"BUY",

 "Reason": "PRODUCTION TESTING",

 "lotcode":"Lot Code",

 "Expdate":"Expdate",

 "Reference":"Reference",

 "Ponum":"POnumber"

 

}

 Lot Code, Serialization

URL- ?Part_sourc=BUY&uniq_key=UNIQKEY&lotcode=LOTCODE&expDate=MM-DD-YYYY&serialNo=000000000000000000000000000001&fromW_Key=WKEY&toW_Key=WKEY&transferredQuantity=1&reason=PRODUCTION TESTING&transactionReference=REFERENCE

JSON-

{

'part_sourc':'BUY',

'uniq_key':'UNIQKEY',

'lotcode':'LOTCODE',

'expDate':'MM-DD-YYYY',

'serialNo':'000000000000000000000000000000',

'fromW_Key':'WKEY',

'toW_Key':'WKEY',

'transferredQty':'1',

'reason':'PRODUCTION TESTING',

'Reference':'REFERENCE'

}

Transfer to MRB

URL- ?Part_sourc=BUY&uniq_key=UNIQKEY&fromW_Key=WKEY&toMRB=1&transferredQuantity=10&reason=PROTOTYPE TO BE SCRAPPED&transactionreference=test 

JSON-

{

'part_sourc':'BUY',

'uniq_key':'UNIQKEY',

'fromW_Key':'WKEY',

'toMRB':'1',

'transferredQty':'10',

'reason':'PROTOTYPE TO BE SCRAPPED',

'Reference':'test'

}

If successful each of the following should result in the following return:

{

"$id":"1",

"Code":200,

"Message":"Inventory transfer successfull.",

"SessionId":null,

"IsValidUser":true,

"ResponseObject":null

}

Common Errors

API Key Error

If there is an error with the API Key the system will return an error describing it.

{

"$id": "1",

"Code": 403,

"Message": "Invalid API Key.",

"SessionId": null,

"IsValidUser": false,

"ResponseObject": null

}

Incorrect Parameter

If an incorrect parameter value is used the system will return an error describing the incorrect parameter.

{

"$id": "1",

"Code": 403,

"Message": "Failed:Please provide valid GL_NBR.",

"SessionId": null,

"IsValidUser": true,

"ResponseObject": null

}

URL Error

If there is an error within the URL the system will return a HTTP error.

{

"$id": "1",

"Message": "No HTTP resource was found that matches the request URI 'http://localhost/api/InventoryHandling/Receiv/123456789'.",

"MessageDetail": "No action was found on the controller 'InventoryHandling' that matches the name 'Receiv'."

}

 

 

Here is an example of a transfer that went through successfully.




​Keep in mind that if you were to create a new location when transferring you need the following checked.

Inventory Control Management Module, the MFGR that you are creating the new location under, needs to have "Allow Auto Creating Location at Receiving" checked.  


Under Sql Setting the warehouse you are receiving into also needs " Allow Auto Create Location at Receiving" checked. 


Reason

You can change , add or edit your reason under the system settings. See below image. 

1.3. Inventory Handling Issue API

Functions

Issue API is used to issue parts from a warehouse 

URL: {Root URL}​/API/InventoryHandling/Issue/{API Key}

Parameter Description Required Comment
 IPKEY The IPKEY is used to select a part N The IPKEY can be used as the main identifier for the part. If used other parameters will be used to validate the IPKEY
serialNo Serial Number N Required if the part being issued is serialized
serialUniq Serial Information N Alternative to serialNo
part_sourc Part Source Y Can be 'BUY','MAKE',or 'CONSG'
UNIQ_KEY Part Identification Key N Can be used to choose the product.
part_no Part Number Y
Revision Part's Revision Level N Required if the selected part has a revision level
custPartNo Customer Part Number N Used if part source is 'CONSG'
custRev Customer Part Revision Level N Used with custPartNo if the part has a revision level
partMfgr Part Manufacturer N Used to specify which manufacturer the part will come from
mfgr_pt_no Manufacturer's Part Number N Used to specify which manufacturer the part comes from
uniqmfgrhd Manufacturer Part Unique Identifier N Used to specify which manufacturer the part comes from
warehouse Warehouse Name Y Select which warehouse the part will be issued from
location Warehouse Location N Choose the warehouse location the part will be issued from if there is one assigned
uniqWh Warehouse ID Number N Can be used instead of warehouse
W_Key Inventory Unique Identifier N Can be used to specify both warehouse and location
lotCode Lot Code N Required if the selected part is lot coded
expDate N Required if the part is lot coded. Use MM-DD-YYYY format
reference Lot Reference N Can only be used if the part is lot coded
poNum Purchase Order Number N Used only if there is lot code information. Not needed if the part was received through inventory handling
issuedQuantity Issued Quantity Y Amount to be issued
issueTo Where the part will be issued Y User Defined
gl_nbr General Ledger Number for the Transaction Y Not required if the part source is 'CONSG'
WoNo Work Order Number <n<> </n<> Should remain empty unless created by KIT API
reason Reason for Issue Y Can be 'INVENTORY ADJUSTMENTS', 'SCRAP', 'INSTORE ISSUES', 'RETURNS TO VENDORS FROM STOCK'
transactionReference Transaction Reference N User Defined field
inStorReturn      
deptKey Shop Floor Department Key N Used when issuing a part back to WIP from FGI
actvKey Shop Floor Activity Key Used when issuing a part back to WIP from FGI
fk_userid User ID N

Example Strings

Issue no lot code, no serialization.

URL-?part_sourc=buy&uniqmfgrhd=UNIQMFGRHD&uniq_key=UNIQKEY&warehouse=WAREHOUSE&location=LOCATION&IssuedQuantity=1&issueTo=ISSUETO&gl_nbr=0000000-00-00

JSON-

{

'part_sourc':'BUY',

'uniqmfgrhd':'UNIQMFGRHD',

'uniq_key':'UNIQKEY',

'warehouse':'WAREHOUSE',

'location':'LOCATION',

'issuedQuantity':'1',

'issueTo':'ISSUETO',

'gl_nbr':'0000000-00-00'

}

Issue Serialized

URL-?part_sourc=buy&uniqmfgrhd=UNIQMFGRHD&uniq_key=UNIQKEY&serialNo=000000000000000000000000000000&warehouse=WAREHOUSE&location=LOCATION&IssuedQuantity=1&issueTo=ISSUETO&gl_nbr=0000000-00-00

JSON-

{

'part_sourc':'BUY',

'uniqmfgrhd':'UNIQMFGRHD',

'uniq_key':'UNIQKEY',

'serialNo':'000000000000000000000000000000',

'warehouse':'WAREHOUSE',

'location':'LOCATION',

'issuedQuantity':'1',

'issueTo':'ISSUETO',

'gl_nbr':'0000000-00-00'

}

Successful requests should return the following

{

"$id":"1",

"Code":200,

"Message":"Inventory added successfully.",

"SessionId":null,

"IsValidUser":true,

"ResponseObject":null

}

Issue lot code, no serialization.

Note:  If record is lot coded the PONUM is an integral part of the LOT code. Since we will allow the user to enter the same lot code when receiving on a different PO.  You need to provide the PONUM in the string or it will more than likely fail because the PONUM has not been provided as part of the Lot code information 

{
 "Gl_nbr":"1490000-00-00",
 "transactionReference":"PI Adjustment",
 "issuedQuantity":"5000",
 "issueTo":"PI Adjustment",
 "part_sourc":"Buy",
 "uniq_key":"_3WE0OVX9A",
 "uniqmfgrhd":"_3WE0OVX9F",
 "location":"53J-05",
 "warehouse":"STKRM1",
 "lotcode":"6733527",
 "Reference":"",
 "expdate":"01-22-2022",
 "ponum":"000000000129005",
 "reason":"Inventory Adjustment"
}

Common Errors

API Key Error

If there is an error with the API key the system will return an error message describing a failed API key

{

"$id": "1",

"Code": 403,

"Message": "Invalid API Key.",

"SessionId": null,

"IsValidUser": false,

"ResponseObject": null

}

Incorrect Parameter

If an incorrect parameter value is used the system will return an error describing the incorrect parameter.

{

"$id": "1",

"Code": 403,

"Message": "Failed:Please provide valid GL_NBR.",

"SessionId": null,

"IsValidUser": true,

"ResponseObject": null

}

 

The GL_nbr parameter for the "issue" API has to be on the list for the Inventory Handling GL Defaults for 'Issue'. 


URL Error

If there is an error within the URL the system will return a HTTP error.

{

"$id": "1",

"Message": "No HTTP resource was found that matches the request URI 'http://localhost/api/InventoryHandling/Receiv/123456789'.",

"MessageDetail": "No action was found on the controller 'InventoryHandling' that matches the name 'Receiv'."

}