Get PO Lines
GET/api/purchase-orders/:purchase_order/lines
Purchase order lines for the PO grid (POGridView), plus the vendor-credit / lookup callers that pass limit=-1 to fetch every line. Includes per-line COGS breakdown data.
purchase-orders:readGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Canonical params (the legacy table_specifications flag has been removed):
- query — search across line description, product SKU, product barcode
- filter[receipt_status] — fully_received / partially_received / not_received / not_fully_received
- filter[shipment_status] — fully_shipped / partially_shipped / not_shipped
- page / limit / total — pagination (limit=-1 returns ALL rows, un-paginated; the response is then a plain resource collection without pagination meta)
Authentication: Requires Bearer token.
Each line includes stock_uom_code — the product's stock unit of measure (e.g. KG, LB, EACH) that the quantity is expressed in; null when the product has no stock unit configured.
Each line also includes incoming_quantity — how many units of that product are already on the way on OTHER open purchase orders into this purchase order's destination warehouse. Supply bound for any other warehouse is not counted, and the purchase order being requested is excluded, so the figure never restates the line's own outstanding quantity. incoming_quantity_total is the same figure with this purchase order included, for callers that want the all-inclusive number. Both are 0 when the purchase order has no destination warehouse (dropship).
open_shipment_quantity: the line's unreceived quantity that is still on open inbound shipments (draft, planned, in transit or partially received). On an opening-balance purchase order this is the part of the line that is still incoming; the rest of its unreceived quantity was received before the inventory start date.
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.