# Gets Purchase Orders

Example use cases
`api/v2/purchaseOrders?pageNumber=1&pageSize=100&Filter=committed>2024-03-05T06:06:58.529Z&Filter=lastUpdated>2024-03-06&orderBy=committed`
will get the first page of purchase orders where the committed date is later than 2024-03-05T06:06:58.529Z AND the lastUpdated date is later than 2024-03-06T00:00:00Z, ordering by the committed date
`/api/v2/purchaseOrders?pageNumber=1&pageSize=100&Filter=committed>2024-03-05T06:06:58.529Z&orderBy=committed`
will get the first page of purchase orders where the committed date is later than `2024-03-05T06:06:58.529Z` ordering by the committed date.
#### Permission Requirements
- Permission Path: **Purchasing > Purchase Orders**

Endpoint: GET /purchaseOrders
Version: v3.0: 3.30.0
Security: Auth API User Token

## Query parameters:

  - `Filter` (array)
    ### Filter Options:
- docNumber (string: allows for pulling based on a particular document number)
- committed (DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in 
Getting Started Section for more information)
- lastUpdated (DateTime in v2, DateTimeOffset in v3: See Differences between v2 and v3 in 
Getting Started Section for more information)
- vendor (GUID: allows for filtering down to only a particular vendorId. This id can be found from the GET /vendors endpoint)

  - `Expand` (array)
    ### Expand Options:
- Items
- Stores
- Users
- Vendors
- LineDetails
- ApprovalStatuses

  - `OrderBy` (array)
    ### Order By Options:
- committed
- docNumber
- lastUpdated

  - `PageNumber` (integer)
    Page Number for the result set.

This is expected to be an integer value greater than 0. Defaults to 1 when not passed in.

For more information see the Getting Started Section for Pagination.

  - `PageSize` (integer)
    Page Size
- Default page size: 100 
- Max page size: 500

This is expected to be an integer value greater than 0. Defaults to 100 when not passed in.

For more information see the Getting Started Section for Pagination.

## Response 200 fields (application/json):

  - `status` (string | null)
    Status of Purchase Order

  - `commit` (boolean)

  - `id` (string)

  - `thirdPartyID` (string | null)

  - `docNumber` (string | null)

  - `reference` (string | null)

  - `description` (string | null)

  - `instructions` (string | null)

  - `totalAmount` (number)

  - `lines` (array | null)

  - `lines.id` (string)

  - `lines.thirdPartyLineID` (string | null)

  - `lines.lineNumber` (integer)

  - `lines.vendorPrice` (number | null)

  - `lines.quantity` (number | null)

  - `lines.notes` (string | null)

  - `lines.backLinkLineID` (string | null)

  - `lines.item` (string | null)

  - `created` (string)

  - `lastUpdated` (string)

  - `vendor` (string | null)

  - `createdByUser` (string | null)

  - `notes` (string | null)

  - `store` (string | null)

  - `committed` (string | null)

  - `committedByUser` (string | null)

  - `startShip` (string | null)

  - `cancelShip` (string | null)

  - `backOrdered` (boolean)

  - `canceled` (boolean)

  - `paid` (boolean)

  - `approvalStatuses` (array | null)

  - `approvalStatuses.status` (string | null)

  - `approvalStatuses.dateTime` (string | null)

  - `approvalStatuses.notes` (string | null)

  - `approvalStatuses.type` (string | null)

  - `approvalStatuses.tier` (integer | null)

  - `approvalStatuses.userID` (string | null)

  - `buyer` (string | null)

## Response 500 fields (application/json):

  - `message` (string | null)

  - `errors` (array | null)

  - `errors.message` (string | null)

  - `errors.extensions` (string | null)

