List purchase orders
Returns a paginated list of purchase orders for the entity. Supports filtering by
vendor_id, status (canonical order_status values OR comma-separated multi-value),
location_id, created_after, and created_before. Results are cursor-paginated using
starting_after. This is the dedicated PO resource; prefer this over the orders-family
GET /orders/purchase-orders. Requires purchasing:read scope.
status filter — accepted values (canonical): draft, open, processing,
fulfilled, cancelled, archived, expired, awaiting_ach_clearance. Pass a
single value (status=open) or comma-separated for multi (status=open,processing).
The sentinel all returns every row (no status filter).
status filter — legacy aliases (translated server-side, accepted for backward
compatibility): sent -> open, partially_received -> processing,
received -> fulfilled, closed -> archived, on_hold -> awaiting_ach_clearance.
New integrations SHOULD use canonical values.
Unknown status tokens return HTTP 400 invalid_status with the list of accepted
canonical + alias values in the hint field.
Authorizations
API key issued per entity via Settings > Developers > API Keys.
Each key carries scopes (e.g. orders:read, products:write).
Bearer token format: Authorization: Bearer ark_live_ent_Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.
Query Parameters
Single canonical status, comma-separated multi-value, or all. Accepts canonical
order_status ENUM values and 5 legacy aliases (translated server-side).
"open,processing"
UUID of the vendor account. Canonical filter name.
Legacy alias for vendor_id. Vendor records are account rows so
both keys refer to the same vendor account UUID. If both are
provided with different values, vendor_id wins and a server-side
warning is logged. New integrations SHOULD use vendor_id.
x <= 100data.line_items, data.line_items.product, data.vendor, data.receipts, data.bills 
