Skip to main content
Version: v1.0.0

Purchase Orders

A purchase order (PO) buys stock from a vendor. A single PO targets either raw materials or finished products — set by its targetType — and that choice decides which inventory ledger the order feeds.

What problem it solves

A PO is the bridge between sourcing and inventory. It records what you've committed to buy (so the stock shows as on order), then captures what actually arrives through one or more receipts (so the stock becomes on hand). Partial deliveries are normal, so order and receipt are tracked separately.

Lifecycle

A PO starts in Planning, where it has no inventory effect yet. Moving to Placed (and onward through In Transit, Partial, Received, Paid) marks it as a real commitment. Cancelled is terminal and undoes the on-order effect. Each status stamps a business date you can edit.

Fields, line items, and receipts

  • HeaderpoNumber (unique per org), the vendor, targetType, a ship-to location, expected dates, and cost add-ons (shipping, setup, other).
  • Line items — one row per material or product, with a quantity and unitCost.
  • Receipts — each delivery is a receipt with its own date and lines; a receipt line's quantity can differ from the ordered line, which is how partial and over-receipts are recorded.

Inventory effects

WhenLedgerEventQuantity
Status leaves Planning (Placed and beyond)materials or finished goods, per targetTypeORDERordered quantity
A receipt is createdsame ledgerRECEIVEreceived quantity
Status becomes Cancelledsame ledgerthe ORDER is reversed

The ORDER effect is driven by status and reverses if you cancel; the RECEIVE effect is driven by receipts. Together they move stock from on order to on hand. All entries carry the PO number as their ref.

Relationships

See also

Drive purchase orders through the REST API or the MCP server.