Skip to content

Get Purchase Order

Retrieves a single purchase order header together with all of its line items.


Request

GET /api/purchase-order/{id}

Required privilege: Procurement / View

Path Parameters

Parameter Type Required Description
id integer Yes Internal PO identifier (id from the list response)

Example Request

GET /api/purchase-order/42 HTTP/1.1
Host: acme.knosc.com
Cookie: access_token_cookie=<token>

Response

200 OK
Content-Type: application/json

Response Body

{
  "data": {
    "headers": {
      "parent": [
        { "key": "PO List Number", "format": "string-link", "alias": "PO #" },
        { "key": "Supplier Name", "format": "string-link" },
        { "key": "PO List Document Status", "format": "string", "alias": "Status" },
        { "key": "PO List Order Date", "format": "date" }
      ],
      "details": [
        { "key": "Item Number", "format": "string-link" },
        { "key": "Item Description", "format": "string" },
        { "key": "PO Details Document Status", "format": "string", "alias": "Status" },
        { "key": "Warehouse Number", "format": "string-link", "alias": "Warehouse #" },
        { "key": "PO Details Tracking", "format": "string", "alias": "BOL #" },
        { "key": "PO Details Order Date", "format": "date" },
        { "key": "PO Details Ship Date", "format": "date" },
        { "key": "PO Details ETA Date", "format": "date" },
        { "key": "PO Details Price", "format": "currency" },
        { "key": "PO Details Quantity", "format": "number" }
      ]
    },
    "sort": { "key": "PO Details ETA Date", "type": "Descending" },
    "rows": {
      "id": 42,
      "PO List Number": "PO-2024-001",
      "PO List Order Date": "2024-03-01",
      "Supplier Id": 7,
      "Supplier Name": "Acme Components Ltd.",
      "Supplier Number": "SUP-007",
      "PO List Document Status": "Open",
      "PO List Servicenow Id": null,
      "details": [
        {
          "id": 101,
          "Item Id": 55,
          "Item Number": "ITEM-A",
          "Item Description": "Widget Assembly - Type A",
          "Sub Item Id": null,
          "Sub Item Number": null,
          "Warehouse Id": 3,
          "Warehouse Number": "WH-01",
          "Warehouse Name": "Main Distribution Center",
          "Ship From Id": 8,
          "Ship From Number": "SF-01",
          "Ship From Name": "Acme East Plant",
          "PO Details Tracking": "BOL-789456",
          "PO Details Price": 12.50,
          "PO Details Quantity": 200,
          "PO Details Order Date": "2024-03-01",
          "PO Details Ship Date": "2024-03-08",
          "PO Details ETA Date": "2024-03-15",
          "PO Details First Promise Date": "2024-03-14",
          "PO Details Request Date": "2024-03-12",
          "PO Details Actual Ship Date": null,
          "PO Details Actual Delivery Date": null,
          "PO Details Document Status": "Open",
          "PO Details Unique Id": "UNIQ-001",
          "PO Details Servicenow Id": null
        },
        {
          "id": 102,
          "Item Id": 56,
          "Item Number": "ITEM-B",
          "Item Description": "Widget Assembly - Type B",
          "Sub Item Id": 12,
          "Sub Item Number": "SUB-B1",
          "Warehouse Id": 3,
          "Warehouse Number": "WH-01",
          "Warehouse Name": "Main Distribution Center",
          "Ship From Id": 8,
          "Ship From Number": "SF-01",
          "Ship From Name": "Acme East Plant",
          "PO Details Tracking": null,
          "PO Details Price": 8.75,
          "PO Details Quantity": 300,
          "PO Details Order Date": "2024-03-01",
          "PO Details Ship Date": "2024-03-10",
          "PO Details ETA Date": "2024-03-18",
          "PO Details First Promise Date": null,
          "PO Details Request Date": null,
          "PO Details Actual Ship Date": null,
          "PO Details Actual Delivery Date": null,
          "PO Details Document Status": "Open",
          "PO Details Unique Id": null,
          "PO Details Servicenow Id": null
        }
      ]
    }
  },
  "tags": {},
  "extra": {}
}

Header Fields

Field Type Description
id integer Internal PO identifier
PO List Number string PO document number
PO List Order Date string | null Earliest order date across line items
Supplier Id integer Internal supplier ID
Supplier Name string Supplier display name
Supplier Number string Supplier reference code
PO List Document Status string PO header status
PO List Servicenow Id string | null External ServiceNow reference

Detail Line Fields

Field Type Description
id integer Internal line item identifier
Item Id integer Internal item master ID
Item Number string Item reference code
Item Description string Item display name
Sub Item Id integer | null Internal sub-item ID (if applicable)
Sub Item Number string | null Sub-item reference code
Warehouse Id integer Internal warehouse ID
Warehouse Number string Warehouse reference code
Warehouse Name string Warehouse display name
Ship From Id integer Internal ship-from location ID
Ship From Number string Ship-from reference code
Ship From Name string Ship-from display name
PO Details Tracking string | null Bill of Lading / tracking number
PO Details Price number | null Unit price
PO Details Quantity number Ordered quantity
PO Details Order Date string | null Line item order date (ISO 8601)
PO Details Ship Date string | null Expected ship date (ISO 8601)
PO Details ETA Date string | null Estimated arrival date (ISO 8601)
PO Details First Promise Date string | null First promise date from supplier
PO Details Request Date string | null Internally requested delivery date
PO Details Actual Ship Date string | null Actual date goods shipped
PO Details Actual Delivery Date string | null Actual date goods delivered
PO Details Document Status string Line item status
PO Details Unique Id string | null Unique identifier from source system
PO Details Servicenow Id string | null External ServiceNow reference

Error Responses

Status Code Description
400 PurchaseOrderList.NotFound No PO exists with the given id
401 - Authentication required
403 User.NotPrivileged User lacks Procurement / View privilege

Code Examples

curl

curl -b cookies.txt "https://acme.knosc.com/api/purchase-order/42"

Python

response = session.get("https://acme.knosc.com/api/purchase-order/42")

if response.status_code == 200:
    po = response.json()["data"]["rows"]
    print(f"PO: {po['PO List Number']}")
    for line in po["details"]:
        print(f"  {line['Item Number']} x{line['PO Details Quantity']} - ETA: {line['PO Details ETA Date']}")
else:
    error = response.json()
    print(f"Error {response.status_code}: {error['Code']} - {error['Message']}")