PO: Purchase order
The PO entity represents a purchase order tracking vendor procurement from quote through PO issuance, with requisition details and approval workflow.
PO definition shipped with DemandFlow. Administrators can add, remove, rename, or re-type fields, change which ones are required, and alter the layout from the Definitions screen in Settings. Your tenant's current schema may differ from what is shown here. To read the current definition at any time, GET the DEFINITION object whose id matches PO.Entity properties
| Property | Value |
|---|---|
| Entity code | PO |
| Display name | Purchase order |
| Plural | Purchase orders |
| Level | 800 |
Use cases
PO is the central procurement transaction entity, tracking the lifecycle of a purchase from initial request through to PO issuance. It links to VEN (vendor) and optionally to an OEM vendor, supporting three-party procurement where goods come from a manufacturer via a reseller. The PRREQ (PR Request) link connects the PO to its originating purchase requisition for traceability. The entity captures both the quote stage (quoteAmount, quoteRef) and the PO stage (poNumber, pototal, poRaised) to track the full procurement lifecycle. The approval workflow supports up to five named approvers, each with an independent status field, reflecting enterprise approval chains. The catCode and taskCode fields support integration with external procurement systems (e.g. Oracle/Ariba). The status field uses a singleselect with color-coded values for visual pipeline management. Field alias UUIDs suggest this entity was migrated from a legacy system where fields were identified by GUID rather than name. The liveUpdates flag enables real-time collaboration on PO records.
Fields
General
| Field | Type | Required | Notes |
|---|---|---|---|
name | text | Yes | Name. |
status | singleselect | Yes | Status. |
ownerId | reference → user | Requestor. Read-only. | |
quoteAmount | number | Yes | Quote amount. |
project | text | Project. | |
quoteRef | text | Quote ref. | |
vendor | reference → VEN | Yes | Vendor. |
oem | reference → VEN | OEM. | |
prRequest | reference → PRREQ | Project PR. | |
prNumber | text | PR number. | |
catCode | text | Cat. code. | |
taskCode | text | Task code. | |
poNumber | text | PO number. | |
pototal | number | PO amount. | |
poRaised | date | PO raised date. | |
deliveryStatus | enum | Delivery status. Valid ids: new (New), waiting (Waiting), partial (Partially Delivered), delivered (Fully Delivered). | |
ariba | text | Ariba procurement. | |
comment | text (multi-line) | Comments. | |
oracleURL | text (URL) | Oracle URL. | |
approver1 | text | Approver 1. | |
approver1Status | singleselect | Approver 1 status. | |
approver2 | text | Approver 2. | |
approver2Status | singleselect | Approver 2 status. | |
approver3 | text | Approver 3. | |
approver3Status | singleselect | Approver 3 status. | |
approver4 | text | Approver 4. | |
approver4Status | singleselect | Approver 4 status. | |
approver5 | text | Approver 5. | |
approver5Status | singleselect | Approver 5 status. | |
approved | singleselect | Approved. |
Relationships
- Lookups:
vendorpoints atVENrecord;oempoints atVENrecord;prRequestpoints atPRREQrecord. - Related lists:
POLINEvia formatSUB|PO.
Creating a Purchase order via the API
POST /v1/objects
Authorization: Bearer <your-pat>
Content-Type: application/json
{
"entity": "PO",
"level": 800,
"comboKey": "SUB:<your-sub-id>|ENT:",
"name": "Example",
"status": "",
"quoteAmount": 100,
"vendor": ""
}
Listing PO records
# All purchase orders in your tenant
GET /v1/entities/PO/SUB