Get Purchase Order
GET/api/qbo/purchase-orders/:id
Get a single QBO purchase order by ID.
Any valid API token can call this endpoint — no specific scope required. Manage tokens.
The linked_sku_purchase_order field identifies the SKU purchase order this QuickBooks document was pushed from (id, purchase order number, and an app route); it is null when no such origin exists. qbo_link deep-links to the purchase order in the QuickBooks web UI.
The response includes vendor_link_id, cross-linking to the mirrored QuickBooks vendor. The reverse ledger cross-link fields ledger_entry_id, ledger_entry_reference, sku_link_type, sku_link_id, sku_link_label, and sku_link_route are also present but are always null for purchase orders, which are not pushed by SKU's ledger. Returns line_items (normalized line rows parsed from the stored QuickBooks payload) and detail_payload (the full raw QuickBooks payload); both are null until the document is re-synced from QuickBooks.
Also returns an amounts summary (subtotal, tax, total, balance, paid) and a tax_code on each line_items row.
Purchase orders additionally include a shipping block (ship_to_address, due_date, ship_method, memo, po_status).
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.