| List purchase orders | GET /v1/purchase-orders | purchaseorders.read |
| Create a purchase order | POST /v1/purchase-orders | purchaseorders.write |
| One purchase order with its lines | GET /v1/purchase-orders/{purchaseOrderId} | purchaseorders.read |
| Update a purchase order | PATCH /v1/purchase-orders/{purchaseOrderId} | purchaseorders.write |
| Archive a purchase order | POST /v1/purchase-orders/{purchaseOrderId}/archive | purchaseorders.write |
| Restore an archived purchase order | POST /v1/purchase-orders/{purchaseOrderId}/unarchive | purchaseorders.write |
| Add a line to a purchase order | POST /v1/purchase-orders/{purchaseOrderId}/lines | purchaseorders.write |
| Update a purchase-order line | PATCH /v1/purchase-order-lines/{lineId} | purchaseorders.write |
| Delete a purchase-order line | DELETE /v1/purchase-order-lines/{lineId} | purchaseorders.write |
| Record a receipt against a purchase-order line | POST /v1/purchase-order-lines/{lineId}/receive | purchaseorders.write |
| Attach a vendor to a purchase order | POST /v1/purchase-orders/{purchaseOrderId}/vendors/{vendorId} | purchaseorders.write, vendors.read |
| Detach a vendor from a purchase order | DELETE /v1/purchase-orders/{purchaseOrderId}/vendors/{vendorId} | purchaseorders.write, vendors.read |
| Receive every purchase-order line matching a target | POST /v1/purchase-orders/bulk/receive | purchaseorders.write |
| Set the status of every purchase order matching a target. Derived statuses are refused — see GET /v1/reference/statuses | POST /v1/purchase-orders/bulk/status | purchaseorders.write |
| Archive or restore every purchase order matching a target | POST /v1/purchase-orders/bulk/archive | purchaseorders.write |