purchase_orders

list purchase orders

A page of purchase orders for one organisation: number, order type, status, supplier, destination location, order and expected delivery dates, total cost and line count, with filtered_max_size for the size of the filtered set. Header figures only, so call get_purchase_order for one order's line quantities and its deliveries.

organization_id in the path must be the key's own organisation; a key naming another one is refused organization_mismatch. Page with limit and offset, narrow with filter_args on status, supplier_id, location_id, date_created, date_drafted, delivery_date, total_cost and has_supplier_updates, and order with sort_args over expected_delivery_date, name and quantity_to_manufacture.

Filter the expected delivery date under the key delivery_date. expected_delivery_date is not a filter key: sent as one it is ignored rather than refused, and every order comes back.

Statuses: Drafted, FullyConfirmed, InProduction, FullyShipped, FullyDelivered, Completed, Cancelled.

on_hold says whether a row is held and hold_reason why, in the holder's own words. A hold with no reason is refused, so hold_reason is set whenever on_hold is true and null otherwise. A held order refuses every status advance but cancellation. The full log of who acted and why is status_audit on get_purchase_order, not here.

Scope: purchase_orders:read.

get/api/v1/organizations/{organization_id}/purchase-orders

Request

  • Base URL: https://api.app.tightly.io
  • URL: https://api.app.tightly.io/api/v1/organizations/{organization_id}/purchase-orders
  • Auth: HTTP bearer

Path parameters

organization_idstring required

The organisation. On the key path it must be the key's own organisation. A key naming another one is refused organization_mismatch rather than quietly served its own rows.

Query parameters

limitinteger

Pagination limit (defaults to 10 when neither limit nor offset is provided)

offsetinteger

Pagination offset

filter_argsobject[]

JSON array of filter conditions. Each filter includes: - key: Field to filter (e.g., id, supplier_id, location_id, status, adjustment_needed_for, date_created, date_drafted, delivery_date, total_cost, has_supplier_updates) - operation: Filter operation (eq, in, gt, gte, lt, lte, etc.) - value: Filter value (can be a string, number, or array) - group: Optional. Grouping logic for the filter (and or or, defaults to and).

[
  {
    "group": "and",
    "key": "status",
    "operation": "eq",
    "value": "Drafted"
  },
  {
    "group": "or",
    "key": "supplier_id",
    "operation": "eq",
    "value": "supplier123"
  }
]
sort_argsstring
Example:+name,-expected_delivery_date

Comma-separated list of sort arguments. Valid sort fields: expected_delivery_date, name, quantity_to_manufacture. Prefix with "+" for ascending or "-" for descending order. If not provided, defaults to sorting by date_created in descending order.

searchstring

Search term to filter purchase orders

Headers

Tightly-Versionstring
Example:2026-11

The date train to answer on. One train exists today, 2026-11, the one this reference describes and the one every key is minted on, so the call answers on it with or without this header. Send it anyway, so a client built now names its train from the start.

Response

A page of purchase orders

Changes

No recorded changes to this operation across all 1 revision of this API.