Contents
Inventory
Inventory
The Inventory endpoint provides lot-level visibility and transaction operations — receiving stock into a warehouse, moving it between locations, and issuing it out.
The Lot Object
{
"recNo": 15234,
"partNo": 42,
"shortID": "BOLT-M8-30",
"description": "Hex Bolt M8x30mm",
"associate": "Acme Corp",
"warehouse": "Main",
"wID": 1,
"spot": "A-01-03",
"units": 500.0,
"received": "2025-01-15T09:30:00Z",
"shipped": null,
"serial": "LOT-2025-001",
"serial2": null,
"rFIDTag": null,
"remark": "PO #4521",
"hold": false,
"jobID": 0,
"jobName": null,
"active": true
}| Field | Type | Description |
|---|---|---|
recNo | integer | Unique lot record number |
partNo | integer | Item part number |
shortID | string | Item SKU |
description | string | Item description |
associate | string | Customer/owner name (blank = own stock) |
warehouse | string | Warehouse name |
wID | integer | Warehouse ID |
spot | string | Bin/location within warehouse |
units | decimal | Quantity in this lot |
received | datetime | Date received |
shipped | datetime or null | Date shipped (null if still in stock) |
serial | string | Serial/lot number |
serial2 | string | Secondary serial number |
rFIDTag | string | RFID tag value |
remark | string | Notes |
hold | boolean | Whether lot is on hold |
jobID | integer | Associated job/project ID |
jobName | string | Job/project name |
active | boolean | Whether lot is active |
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /Inventory | List all inventory lots |
| GET | /Inventory/{wid} | List lots in a warehouse |
| GET | /Inventory/{wh}/MaterialIn | Material in (audit) records for a warehouse |
| GET | /Inventory/{wh}/MaterialIn/Part/{part} | Material in records for a part in a warehouse |
| GET | /Inventory/{wh}/MaterialOut | Material out (audit) records for a warehouse |
| GET | /Inventory/{wh}/MaterialOut/Part/{part} | Material out records for a part in a warehouse |
| POST | /Inventory/Receive | Receive stock into a warehouse |
| POST | /Inventory/Move | Move stock between locations |
| POST | /Inventory/Issue | Issue stock out of a warehouse |
Note: the lot-list routes do not support
modifiedSince— passing it returns HTTP 400. For incremental sync of inventory activity, poll the per-warehouse Material In / Out audit routes, which do supportmodifiedSince. See Pagination for the full support matrix.
List Inventory Lots
GET /Inventory?page=1&pageSize=50Returns individual inventory lots (receive records) sorted by most recent first.
Response
{
"value": [
{
"recNo": 15234,
"partNo": 42,
"shortID": "BOLT-M8-30",
"description": "Hex Bolt M8x30mm",
"associate": "Acme Corp",
"warehouse": "Main",
"wID": 1,
"spot": "A-01-03",
"units": 500.0,
"received": "2025-01-15T09:30:00Z",
"shipped": null,
"serial": "LOT-2025-001",
"serial2": null,
"rFIDTag": null,
"remark": "PO #4521",
"hold": false,
"jobID": 0,
"jobName": null,
"active": true
}
],
"totalCount": 8420,
"page": 1,
"pageSize": 50,
"pageCount": 169,
"hasMore": true
}Each lot in value contains the fields documented in The Lot Object above.
List Lots in a Warehouse
GET /Inventory/3?page=1&pageSize=50Same as the full list, filtered to a specific warehouse by ID.
Material In / Out (Audit Records)
Material in/out audit routes return paginated transaction logs ordered by date (descending). The per-warehouse routes are current:
GET /Inventory/{wh}/MaterialIn
GET /Inventory/{wh}/MaterialIn/Part/{part}
GET /Inventory/{wh}/MaterialOut
GET /Inventory/{wh}/MaterialOut/Part/{part}Receive Stock
POST /Inventory/ReceiveRecords a positive inventory adjustment — stock coming into the system.
Request Body
{
"itemID": "BOLT-M8-30",
"units": 500,
"wid": 1,
"reasonCode": 1,
"spot": "A-01-03",
"serial": "LOT-2025-002",
"reference": "PO #4521",
"remark": "Vendor delivery"
}Required Fields
| Field | Type | Description |
|---|---|---|
itemID | string | Item ShortID to receive |
units | decimal | Quantity to receive (must be > 0) |
wid | integer | Destination warehouse ID |
reasonCode | integer | Reason code for the adjustment |
Optional Fields
| Field | Type | Description |
|---|---|---|
spot | string | Bin/location in warehouse |
serial | string | Serial or lot number |
serial2 | string | Secondary serial |
rfidTag | string | RFID tag |
reference | string | External reference (PO number, etc.) |
remark | string | Notes |
netWeight | decimal | Net weight |
grossWeight | decimal | Gross weight |
price | decimal | Unit cost |
expires | datetime | Expiration date |
supplier | integer | Vendor/supplier ID |
line | integer | PO line number (if receiving against a PO) |
jobid | integer | Associated job/project ID |
Response
Returns the new record number on success.
Error Cases
| Status | Cause |
|---|---|
| 400 | Missing required fields or validation failure |
| 403 | No receive permission, or warehouse out of scope |
Move Stock
POST /Inventory/MoveMoves inventory between locations or warehouses.
Request Body
{
"itemID": "BOLT-M8-30",
"units": 100,
"wid": 1,
"fromSpot": "A-01-03",
"toSpot": "B-02-01"
}For inter-warehouse moves, include shipToWid:
{
"itemID": "BOLT-M8-30",
"units": 100,
"wid": 1,
"shipToWid": 3,
"transitSlip": "TS-2025-042"
}Required Fields
| Field | Type | Description |
|---|---|---|
itemID | string | Item ShortID to move |
units | decimal | Quantity to move |
wid | integer | Source warehouse ID |
Optional Fields
| Field | Type | Description |
|---|---|---|
fromSpot | string | Source bin/location |
toSpot | string | Destination bin/location |
shipToWid | integer | Destination warehouse (for inter-warehouse moves) |
transitSlip | string | Transit slip reference |
serial | string | Serial/lot to move |
serial2 | string | Secondary serial |
rfidTag | string | RFID tag |
reference | string | External reference |
recno | integer | Specific lot record to move |
received | string | Received date filter |
Response
Returns the result of the move operation on success.
Error Cases
| Status | Cause |
|---|---|
| 400 | Missing required fields or validation failure |
| 403 | No move permission, or warehouse(s) out of scope |
Issue Stock
POST /Inventory/IssueRecords a negative inventory adjustment — stock leaving the system.
Request Body
{
"itemID": "BOLT-M8-30",
"units": 50,
"wid": 1,
"reasonCode": 2,
"spot": "A-01-03",
"reference": "Work Order #789"
}Required Fields
| Field | Type | Description |
|---|---|---|
itemID | string | Item ShortID to issue |
units | decimal | Quantity to issue (must be > 0) |
wid | integer | Source warehouse ID |
reasonCode | integer | Reason code for the adjustment |
Optional Fields
| Field | Type | Description |
|---|---|---|
spot | string | Bin/location to issue from |
serial | string | Serial/lot number |
serial2 | string | Secondary serial |
rfidTag | string | RFID tag |
reference | string | External reference |
remark | string | Notes |
netWeight | decimal | Net weight |
shipto | integer | Ship-to customer ID |
prodID | string | Production/assembly ID |
recno | integer | Specific lot record to issue from |
line | integer | Order line number |
Response
Returns the result of the issue operation on success.
Error Cases
| Status | Cause |
|---|---|
| 400 | Missing required fields or validation failure |
| 403 | No issue permission, or warehouse out of scope |
Warehouse Scope
Operations are scoped to the warehouses assigned to your integration user. Reading or writing data for unassigned warehouses returns 403.
Permissions
| Action | Required Permission |
|---|---|
| List lots / stock levels | Item Master List (SecurityID 11) |
| Receive stock | Positive Adjustment (SecurityID 95) |
| Move stock | Locate/Move Units (SecurityID 15) |
| Issue stock | Negative Adjustment (SecurityID 88) |
Note: Permission enforcement is applied per endpoint (enforced; see Authentication).
On this page