Inventory Pro
Skip to main content

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

FieldTypeDescription
orderstringPurchase order number
orderDatedatetimeDate the PO was created
requestedDatedatetimeRequested delivery date
shippedDatedatetime or nullDate shipped
vIdintegerVendor record ID
vNamestringVendor name
statusintegerPO status code
isCompleteinteger1 when complete
isCanceledinteger1 when canceled
modifieddatetimeLast modification timestamp
modifiedByintegerUser who last modified the PO

Detail Line Fields

The detail response (GET /PurchaseOrder/{id}) adds a pOLines array:

FieldTypeDescription
recintegerLine record number
orderstringPO number
lineintegerLine sequence number
itemIdstringPart short ID
uOMintegerUnit of measure ID
unitsdecimalQuantity ordered
qtydecimalQuantity
pricedecimalPer-unit price
amountdecimalLine total
rcvQtydecimalQuantity received

List Purchase Orders

GET /PurchaseOrder

Returns purchase orders. Maximum page size is 50.

Parameters

FieldTypeRequiredDescription
pageintegerNoPage number (default 1)
pageSizeintegerNoResults per page (max 50)
sortstringNoField to sort by
directionstringNoasc or desc
startDatedatetimeNoFilter by order date on or after
endDatedatetimeNoFilter 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 /PurchaseOrder

Creates 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

FieldTypeRequiredDescription
orderstringNo*PO number (max 20 chars). Required when manual PO numbering is enabled — ask your administrator which mode your system uses
supplierIDintegerYesVendor/supplier record ID (must reference an active vendor)
warehouseIDintegerYesWarehouse ID (must be enabled for ship-to and bill-to)
userIDintegerNoUser ID to attribute the create to
linesarrayYesOne or more line items
lines[].partnointegerYesItem part number (must be an active, buyable part)
lines[].qtydecimalYesQuantity to order
lines[].unitCostdecimalNoPer-unit cost (default 0)

Response

{
  "order": "PO-2025-0043",
  "status": "created"
}

Finalize a Purchase Order

POST /PurchaseOrder/Finalize

Marks 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

FieldTypeRequiredDescription
orderstringYesPO number to finalize
createBObooleanNotrue to create a backorder for short-received lines (default false)
completebooleanNotrue to mark the PO complete (default false)

Response

{
  "order": "PO-2025-0042",
  "status": "finalized"
}

Permissions

ActionRequired Permission
List / Get POsPreview PO (SecurityID 18)
Create / FinalizeCreate/Modify PO (SecurityID 42)