Implementation Steps
| Task | Responsible Party |
| Provide API endpoint access details and credentials | FacilityOS |
| Set up automated job to send PO Header and PO Line Data, and to pull PO Receipt data | Client |
| Review data and confirm accuracy | Client |
Add PO Header
Endpoint: /api/po/purchaseOrder
Authentication: Basic
Format: JSON
For each PO Header, send a POST to the /api/po/purchaseOrder endpoint with the latest PO Header details. It is recommended to only send updates for records that have recently changed.
Request
Fields
| Friendly Name | Field Name | Data Type | Required | Description |
|---|---|---|---|---|
| PO ID | po_ID | Text (50) | Yes | Primary Key Used to track Purchase Orders entered into system |
| PO Type | po_Type | Text (20) | No | Reporting use and may be displayed in the LOS UI |
| Business Unit | business_Unit | Text (50) | Yes | Reporting use and may be displayed in the Line Item UI |
| Receive Status | Recv_Status | Text (1) | No | N = New, P = Partial, R = Received (complete) Reporting use and may be displayed in the LOS UI |
| Vendor ID | vendor_ID | Text (50) | No | Reporting use and may be displayed in the LOS UI |
| Vendor Name | vendor_Name | Text (50) | No | Reporting use and may be displayed in the LOS UI |
| Vendor Set ID | vendor_SetID | Text (20) | No | Reporting use and may be displayed in the LOS UI |
| Entered DateTime | entered_DT | DateTime | No | Reporting use and may be displayed in the LOS UI |
| Last Modified | last_DTTM_Update | DateTime | No | Datetime of last modified |
| PO Revision | po_Revision | Int | No | Reporting use and may be displayed in the LOS UI |
| Total Order Amount | total_Order_Amt | Currency | No | Reporting use and may be displayed in the LOS UI |
| Default Cost Center | default_Cost_Center | Text (50) | No | Reporting use and may be displayed in the LOS UI |
| Default Deliver To | default_Deliver_To | Text (50) | No | Reporting use and may match EmpID in Recipient table; if so, the PO Lookup automation may set the Location. |
| Profile ID | profileID | Int | Yes | The FacilityOS profile ID |
Message
{
"business_Unit": "string",
"po_ID": "string",
"po_Type": "string",
"po_REVISION": 0,
"recv_STATUS": 0,
"vendor_ID": 0,
"vendor_SETID": 0,
"vendor_Name": "string",
"entered_DT": "2026-07-21T18:32:47.450Z",
"last_DTTM_UPDATE": "2026-07-21T18:32:47.450Z",
"total_Order_Amt": 0,
"default_Cost_Center": "string",
"default_Deliver_To": "string",
"profileID": 0
}Curl
curl -X POST "https://<FOS API URL>/api/po/purchaseOrder" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"business_Unit\": \"string\", \"po_ID\": \"string\", \"po_Type\": \"string\", \"po_REVISION\": 0, \"recv_STATUS\": 0, \"vendor_ID\": 0, \"vendor_SETID\": 0, \"vendor_Name\": \"string\", \"entered_DT\": \"2026-07-21T18:32:47.450Z\", \"last_DTTM_UPDATE\": \"2026-07-21T18:32:47.450Z\", \"total_Order_Amt\": 0, \"default_Cost_Center\": \"string\", \"default_Deliver_To\": \"string\", \"profileID\": 0}"Add PO Line
Endpoint: /api/po/poLine
Authentication: Basic
Format: JSON
For each PO Line, send a POST to the /api/po/poLine endpoint with the latest PO Line details. It is recommended to only send updates for records that have recently changed.
Request
Fields
| Friendly Name | Field Name | Data Type | Required | Description |
|---|---|---|---|---|
| PO ID | po_Id | Text (50) | Yes | Composite Key (with Line_Number) Used to track Purchase Orders entered into system |
| Line Number | line_Number | Int | Yes | Composite Key (with PO_ID) The line in the PO Line numbers should start with 1 and be sequential |
| Business Unit | business_Unit | Text (50) | Yes | Reporting use and may be displayed in the Line Item UI |
| Entered DateTime | entered_DT | Datetime | No | Reporting use |
| Quantity | quantity_PO | Numeric (11.4) | Yes | Reporting use and displayed in the Line Item UI Most quantities are whole numbers, but decimals are possible for units like gallons |
| Price | price_PO | Currency | No | Reporting use and may be displayed in the Line Item UI |
| Unit of Measure | unit_Of_Measure | Text (50) | No | Reporting use and may be displayed in the Line Item UI |
| Vendor Item ID | vendor_ItemId | Text (50) | No | Reporting use and may be displayed in the Line Item UI |
| Item Description | item_Description | Text (255) | Yes | Reporting use and may be displayed in the Line Item UI |
| Location ID | location_Id | Text (50) | No | Reporting use Vendor's Ship-to location; for central receiving, this is often the same for every order |
| Financial Asset SW | financial_Asset_SW | Text (1) | No | Reporting use and available for PO Receipts export |
| Requisition ID | req_Id | Text (50) | No | Reporting use and available for PO Receipts export |
| Schedule Line Number | schedule_Line_Number | Int | No | Reporting use and available for PO Receipts export |
| Distribution Line Number | distribution_Line_Number | Int | No | Reporting use and available for PO Receipts export |
| Delivery Location ID | delivery_Location_ID | Text (50) | No | Reporting use and may match EmpID in Recipient table; if so, the PO Lookup automation may set the Location |
| Delivery Comment | deliverycomment | Text (50) | No | Reporting use and may be displayed in the Line Item UI |
| Buyer Name | buyername | Text (50) | No | Reporting use and may be displayed in the Line Item UI |
| Default Cost Center | defaultcostcenter | Text (50) | No | Reporting use and may be displayed in the Line Item UI |
| Last Modified | lastModified | Datetime | No | Datetime of last modified |
| Profile ID | profileID | Int | Yes | The FacilityOS profile ID |
Message
{
"business_Unit": "string",
"po_ID": "string",
"line_Number": 0,
"entered_DT": "2026-07-21T18:38:01.416Z",
"quantity_PO": 0,
"price_PO": 0,
"unit_of_Measure": "string",
"vendor_ItemId": "string",
"item_Description": "string",
"location_ID": "string",
"financial_Asset_SW": "string",
"req_ID": "string",
"schedule_Line_Number": 0,
"distribution_Line_Number": 0,
"delivery_Location_ID": "string",
"delivery_Comment": "string",
"lastModified": "2026-07-21T18:38:01.416Z",
"buyer_Name": "string",
"default_Cost_Center": "string",
"profileID": 0
}Curl
curl -X POST "https://<FOS API URL>/api/po/poLine" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"business_Unit\": \"string\", \"po_ID\": \"string\", \"line_Number\": 0, \"entered_DT\": \"2026-07-21T18:38:01.416Z\", \"quantity_PO\": 0, \"price_PO\": 0, \"unit_of_Measure\": \"string\", \"vendor_ItemId\": \"string\", \"item_Description\": \"string\", \"location_ID\": \"string\", \"financial_Asset_SW\": \"string\", \"req_ID\": \"string\", \"schedule_Line_Number\": 0, \"distribution_Line_Number\": 0, \"delivery_Location_ID\": \"string\", \"delivery_Comment\": \"string\", \"lastModified\": \"2026-07-21T18:38:01.416Z\", \"buyer_Name\": \"string\", \"default_Cost_Center\": \"string\", \"profileID\": 0}"Get PO Receipts
Endpoint: /api/po/poReceipts
Authentication: Basic
Format: JSON
On a pre-defined frequency, send a POST to the /api/po/poReceipts endpoint with the start and end dates of the requested timeframe.
Request
Fields
| Field Name | Required | Type | Descriptions/Notes |
| beginDate | Yes | DateTime | The start of the timeframe of receipts to pull Time zone matches that of database server (UTC for FacilityOS-hosted clients) |
| endDate | Yes | DateTime | The end of the timeframe of receipts to pull Time zone matches that of database server (UTC for FacilityOS-hosted clients) |
| returnUnprocessed | No | Int | 1 = pull receipts not marked as processed 0 = pull receipts marked as processed; default |
| receiptSource | No | String | The source of the receipt transaction |
| po_ID | No | String | Purchase Order Number |
| profileID | Yes | Int | FacilityOS Profile ID |
Message
{
"beginDate": "2026-07-21T18:43:11.624Z",
"endDate": "2026-07-21T18:43:11.624Z",
"returnUnprocessed": 0,
"receiptSource": "string",
"po_ID": "string",
"profileID": 0
}Curl
curl -X POST "https://<FOS API URL>/ api/po/POReceipts" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"beginDate\": \"2026-07-21T18:43:11.624Z\", \"endDate\": \"2026-07-21T18:43:11.624Z\", \"returnUnprocessed\": 0, \"receiptSource\": \"string\", \"po_ID\": \"string\", \"profileID\": 0}"Response
Fields
| Field Name | Type (Length) | Description | Purpose/Notes |
| Business_Unit | Text (50) | Business Unit | Reporting use and may be displayed in the Line Item UI |
| PO_ID | Text (50) | Purchase Order Number | Used to track Purchase Orders entered into system |
| PO_Line_Number | Int | Line Number | The line in the PO |
| Recv_ID | String | Receipt ID | System-assigned unique ID for the PO and Line Number receipt transaction |
| ManifestNumber | Text (50) | Manifest ID | FacilityOS’s manifest/transaction ID |
| Quantity_Received | Numeric (11.4) | Quantity Received | Quantity received in manifest/transaction |
| PO_Type | Text (20) | PO Type | Reporting use and may be displayed in the FacilityOS UI |
| Vendor_ItemID | Text (50) | Vendor Item ID | Reporting use and may be displayed in the Line Item UI |
| Item_Description | Text (255) | Item Description | Reporting use and may be displayed in the Line Item UI |
| IntraUsername | Text (50) | Username | The FacilityOS user who received the PO |
| ReceivedDateTime | Datetime | HDate | Timestamp of receipt |
| Unit_of_Measure | Text (50) | EA, PK, CT, etc. | Reporting use and may be displayed in the Line Item UI |
| Price_PO | Currency | Cost per Unit | Reporting use and may be displayed in the Line Item UI |
| Vendor_ID | Text (50) | Vendor ID | Reporting use and may be displayed in the FacilityOS UI |
| Receiving_Comments | Text (350) | Comments from receipt activity | During the receiving process, the user can enter comments |
| Processed | Int | For ERP to mark receipt as processed | For ERP to mark receipt as processed 1 = processed by ERP 0 = not processed by ERP |
| ProcessedDateTime | Datetime | Timestamp of receipt being processed | Timestamp of receipt being processed |
Sample
The following is a sample response with a single receipt transaction. Multiple receipt transactions will be returned in an array.
[
{
"business_UNIT": "IT",
"po_ID": "130054AA32",
"po_LINE_NBR": 1,
"recv_ID": "SC00000034",
"manifestNumber": "130054AA32",
"quantity_RECEIVED": 2,
"po_TYPE": "GEN",
"vendor_ItemId": "0201255",
"item_Description": "100 Count Cable Ties",
"intraUsername": "admin",
"receivedDateTime": "2026-06-12T11:24:21.093",
"unit_of_Measure": "EA",
"price_PO": 20.00,
"vendor_ID": "0000000002",
"receiving_Comments": "",
"processed": 0,
"processedDateTime": "1900-01-01T00:00:00",
"receipt_Source": "",
"profileID": 1
}
]