# List Purchase Orders

**GET** `/v1/inventory/purchase-orders`

Returns purchase orders with their line items.

### Query parameters

| Field | Type | Description |
|---|---|---|
| `status` | string | Filter by status: `draft`, `sent`, `partial`, `received`, `closed`, `cancelled` |

### Response fields

| Field | Type | Description |
|---|---|---|
| `purchase_orders` | array | List of PO objects |

**Purchase order object**

| Field | Type | Description |
|---|---|---|
| `id` | integer | PO ID |
| `location_id` | integer | Receiving location |
| `supplier` | string | Supplier name (nullable) |
| `status` | string | `draft`, `sent`, `partial`, `received`, `closed`, or `cancelled` |
| `reference` | string | External PO number / reference (nullable) |
| `note` | string | Notes (nullable) |
| `expected_at` | timestamp | Expected delivery date (nullable) |
| `created_by` | integer | User who created the PO |
| `location` | object | Receiving location (`id`, `name`, `code`) |
| `items` | array | Line items (see below) |

**PO item object**

| Field | Type | Description |
|---|---|---|
| `id` | integer | Item ID |
| `listing_id` | integer | Listing being ordered |
| `quantity_ordered` | integer | Total units ordered |
| `quantity_received` | integer | Units received so far |
| `unit_cost` | float | Cost per unit (nullable) |
| `listing` | object | Associated listing (`id`, `sku`, `barcode`) |
