Contents
api
Purchase Orders
Purchase Orders
The Purchase Orders endpoint manages procurement — listing open POs, retrieving details, creating new orders, and finalizing received orders.
The Purchase Order Object
{
"order": "PO-2025-0042",
"orderDate": "2025-05-15T00:00:00Z",
"requestedDate": "2025-06-01T00:00:00Z",
"shippedDate": null,
"vId": 12,
"vName": "Acme Fasteners",
"status": 0,
"isComplete": 0,
"isCanceled": 0,
"modified": "2025-05-20T10:00:00Z",
"modifiedBy": 3
}Fields
| Field | Type | Description |
|---|---|---|
order | string | Purchase order number |
orderDate | datetime | Date the PO was created |
requestedDate | datetime | Requested delivery date |
shippedDate | datetime or null | Date shipped |
vId | integer | Vendor record ID |
vName | string | Vendor name |
status | integer | PO status code |
isComplete | integer | 1 when complete |
isCanceled | integer | 1 when canceled |
modified | datetime | Last modification timestamp |
modifiedBy | integer | User who last modified the PO |
Detail Line Fields
The detail response (GET /PurchaseOrder/{id}) adds a pOLines array:
| Field | Type | Description |
|---|---|---|
rec | integer | Line record number |
order | string | PO number |
line | integer | Line sequence number |
itemId | string | Part short ID |
uOM | integer | Unit of measure ID |
units | decimal | Quantity ordered |
qty | decimal | Quantity |
price | decimal | Per-unit price |
amount | decimal | Line total |
rcvQty | decimal | Quantity received |
List Purchase Orders
GET /PurchaseOrderReturns purchase orders. Maximum page size is 50.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number (default 1) |
pageSize | integer | No | Results per page (max 50) |
sort | string | No | Field to sort by |
direction | string | No | asc or desc |
startDate | datetime | No | Filter by order date on or after |
endDate | datetime | No | Filter by order date on or before |
Response
{
"value": [
{
"order": "PO-2025-0042",
"orderDate": "2025-05-15T00:00:00Z",
"requestedDate": "2025-06-01T00:00:00Z",
"vId": 12,
"vName": "Acme Fasteners",
"status": 0,
"modified": "2025-05-20T10:00:00Z"
}
],
"totalCount": 28,
"page": 1,
"pageSize": 25,
"pageCount": 2,
"hasMore": true
}Get a Purchase Order
GET /PurchaseOrder/{id}Returns the full PO with header details and all line items.
Response
{
"order": "PO-2025-0042",
"orderDate": "2025-05-15T00:00:00Z",
"requestedDate": "2025-06-01T00:00:00Z",
"vId": 12,
"vName": "Acme Fasteners",
"status": 0,
"buyer": "Jane Smith",
"phone": "555-0100",
"terms": 30,
"notes": "Order notes",
"pOLines": [
{
"line": 1,
"itemId": "BOLT-M8-30",
"uOM": 1,
"units": 1000,
"qty": 1000,
"price": 0.45,
"amount": 450.00,
"rcvQty": 0
}
]
}Create a Purchase Order
POST /PurchaseOrderCreates a new purchase order via the system import procedure. At least one line is required.
Request Body
{
"order": "PO-2025-0043",
"supplierID": 12,
"warehouseID": 1,
"lines": [
{ "partno": 1234, "qty": 1000, "unitCost": 0.45 }
]
}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
order | string | No* | PO number (max 20 chars). Required when manual PO numbering is enabled — ask your administrator which mode your system uses |
supplierID | integer | Yes | Vendor/supplier record ID (must reference an active vendor) |
warehouseID | integer | Yes | Warehouse ID (must be enabled for ship-to and bill-to) |
userID | integer | No | User ID to attribute the create to |
lines | array | Yes | One or more line items |
lines[].partno | integer | Yes | Item part number (must be an active, buyable part) |
lines[].qty | decimal | Yes | Quantity to order |
lines[].unitCost | decimal | No | Per-unit cost (default 0) |
Response
{
"order": "PO-2025-0043",
"status": "created"
}Finalize a Purchase Order
POST /PurchaseOrder/FinalizeMarks a PO as complete or partially complete. Optionally creates a backorder for any lines with undelivered quantity.
Request Body
{
"order": "PO-2025-0042",
"createBO": true,
"complete": true
}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
order | string | Yes | PO number to finalize |
createBO | boolean | No | true to create a backorder for short-received lines (default false) |
complete | boolean | No | true to mark the PO complete (default false) |
Response
{
"order": "PO-2025-0042",
"status": "finalized"
}Permissions
| Action | Required Permission |
|---|---|
| List / Get POs | Preview PO (SecurityID 18) |
| Create / Finalize | Create/Modify PO (SecurityID 42) |
On this page