E112: List purchase orders
GET /api/purchase-orders
Returns PO header rows for the Purchase Orders page, hydrated with vendor name and both cost rollups so the page can render expected and actual totals without a follow-up call. Filters are supplied by the caller.
Authentication
Standard tenant route. Requires Authorization: Bearer <firebase-id-token> and X-Org-Id: <org-id>. Access: Member.
Request
Query params: cursor pagination (?cursor=&limit=) plus optional filters:
| Param | Type | Notes |
|---|---|---|
status | string | Status name. |
vendorId | uuid | |
targetType | "materials" | "finished_goods" | |
q | string | Free-text on poNumber / notes / vendor name. |
orderDateFrom / orderDateTo | date | Inclusive bounds. |
Response — 200 OK
{
"data": [ { "id": "uuid", "poNumber": "PO-2026-0042", "vendor": { "id": "uuid", "name": "..." }, "status": "Planning", "orderDate": "...", "costs": 1234.56, "lineCount": 5 } ],
"nextCursor": null
}
List rows include a denormalized vendor summary and lineCount to spare a follow-up call for the index page.
Errors
Standard envelope only.
Workflow
Calls W112 List purchase orders.