# Fetch a Purchase Order Returns a single purchase order by its ID, including notes, terms, sub_total and the full line_items list that the list endpoint leaves out. Endpoint: GET /api/v1/purchase_orders/{purchase_order_id} Security: BearerAuth ## Path parameters: - `purchase_order_id` (number, required) ID of the purchase order Example: "506" ## Response 200 fields (application/json): - `data` (object) - `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.sub_total` (string) Sum of every line's amount, computed by Sortly - `data.total` (string) sub_total plus tax plus shipping_cost minus discount, computed by Sortly - `data.line_items` (array) - `data.line_items.item_id` (number,null) ID of the Sortly item this line orders. Deleting that item in Sortly leaves this id untouched, so it can name an item GET /api/v1/items/{item_id} no longer returns. It is null only for a line whose item has been purged from Sortly altogether. - `data.line_items.name` (string) - `data.line_items.item_number` (string,null) - `data.line_items.quantity` (string) - `data.line_items.received_quantity` (string) How much of quantity has been received against this line - `data.line_items.unit_of_measure` (object) - `data.line_items.unit_of_measure.type` (string) - `data.line_items.unit_rate` (string,null) - `data.line_items.amount` (string) quantity multiplied by unit_rate, computed by Sortly - `data.line_items.line_number` (number) Assigned by Sortly from the order of the array - `data.line_items.variant_options` (array) - `data.line_items.variant_options.value` (string) - `data.line_items.notes` (string,null) - `data.vendor` (object,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.terms` (string,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. ## 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 ## Response 404 fields (application/json): - `message` (string) - `errors` (object,null) Field-level messages, present only on some validation failures