# List Purchase Orders Returns the company's purchase orders, most recently updated first. A listed purchase order leaves out notes, terms, sub_total and line_items, so fetch a single one for those. Endpoint: GET /api/v1/purchase_orders Security: BearerAuth ## Query parameters: - `page` (number) Page number, starting at 1 Example: "1" - `per_page` (number) Number of purchase orders per page (1-100) Example: "20" - `purchase_order_number` (string) Filters to purchase orders whose number contains this value Example: "PO-2026" - `status` (string) Comma-separated status keys to filter by. Defaults to all statuses. Example: "ordered,partially_received" - `sort_by` (string) Field to sort by. One of purchase_order_number, created_by, submitted_by, status, updated_at, total, ordered_date, expected_delivery_date, received_date. Defaults to updated_at. Example: "updated_at" - `sort_direction` (string) asc or desc. Defaults to desc. Example: "desc" ## Response 200 fields (application/json): - `data` (array) - `data.id` (number) - `data.purchase_order_number` (string) - `data.status` (string) - `data.currency_code` (string) - `data.charges` (object) - `data.charges.discount` (string) - `data.charges.tax` (string) - `data.charges.shipping_cost` (string) - `data.total` (string) - `data.vendor` (object,null) - `data.vendor.name` (string,null) - `data.vendor.email` (string,null) - `data.vendor.line1` (string,null) - `data.vendor.line2` (string,null) - `data.vendor.city` (string,null) - `data.vendor.state` (string,null) - `data.vendor.zip_code` (string,null) - `data.vendor.country` (string,null) - `data.vendor.phone` (string,null) - `data.ship_to` (object,null) - `data.bill_to` (object,null) - `data.expected_delivery_date` (string,null) When the order is expected to arrive - `data.submitted_date` (string,null) - `data.submitted_by` (string,null) - `data.approved_date` (string,null) - `data.approved_by` (string,null) - `data.ordered_date` (string,null) Recorded by Sortly on the move to ordered - `data.ordered_by` (string,null) - `data.received_date` (string,null) - `data.received_by` (string,null) - `data.created_by` (string) - `data.created_at` (string) - `data.updated_by` (string) - `data.updated_at` (string) - `data.version` (number) Send this back when updating. A stale version is rejected with 409. - `meta` (object) - `meta.page` (number) - `meta.per_page` (number) - `meta.has_next` (boolean) True when a further page is available - `meta.has_prev` (boolean) True when an earlier page is available ## Response 400 fields (application/json): - `message` (string) - `errors` (object,null) Field-level messages, present only on some validation failures ## Response 401 fields (application/json): - `message` (string) - `errors` (object,null) Field-level messages, present only on some validation failures ## Response 402 fields (application/json): - `message` (string) - `errors` (object,null) Field-level messages, present only on some validation failures