List purchase requests
Operation ID: purchaseRequests
Group: Accounting › Purchase Requests
Open in the interactive reference
GET /accounting/purchase-requests
Read-only: Reads and returns; changes nothing.
Lists purchase requests. Each item is the request's main fields, without its lines. To get the lines, use GET accounting/purchase-requests/:id or POST accounting/purchase-requests/search.
To filter by vendor, legal entity, or department, use POST accounting/purchase-requests/search.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1. |
Query surface
id— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likepurchaseRequestNumber— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likestatus— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likecurrency— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likestartDate— filter by eq, ne, gt, gte, lt, lte, in, notIn, betweenendDate— filter by eq, ne, gt, gte, lt, lte, in, notIn, betweenneedByDate— filter by eq, ne, gt, gte, lt, lte, in, notIn, betweenpaymentTerms— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likeexternalId— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likelastModifiedDate— filter by eq, ne, gt, gte, lt, lte, in, notIn, between- Orderable: id, purchaseRequestNumber, status, currency, startDate, endDate, needByDate, totalAmount, lastModifiedDate
- Selectable: id, purchaseRequestNumber, description, internalDescription, externalMemo, status, currency, totalAmount, startDate, endDate, needByDate, paymentTerms, externalId, entityName, departmentName, lastModifiedDate
page[size]— Page sizepage[cursor]— Opaque continuation cursor
Response
200 Success
Under data, an array of purchaseRequestsRow:
| Field | Type | Required | Filter | Sort | Description |
|---|---|---|---|---|---|
id |
string | no | Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) |
yes | The unique identifier for the purchase request. |
purchaseRequestNumber |
string | null | no | Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) |
yes | The purchase request number, for example 'PR-1', unique across purchase requests. Absent until one has been assigned. |
description |
string | null | no | no | no | A description of what is being requested. It is shown to the vendor. |
internalDescription |
string | null | no | no | no | Internal notes on the request, not shown to the vendor. |
externalMemo |
string | null | no | no | no | A memo intended for the vendor. |
status |
string | null | no | Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) |
yes | The lifecycle and approval state, in one field. Possible values: 'pendingApproval', 'approved', 'rejected', 'closed'. This resource has no separate approvalStatus. |
currency |
string | null | no | Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) |
yes | The currency the request is denominated in. Format ISO 4217, for example 'USD'. Governs totalAmount and every line amount. |
totalAmount |
decimal | null | no | no | yes | The total requested amount, the sum of the line totals, in the request currency. |
startDate |
date | null | no | Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) |
yes | The first day of the period the request covers. Format YYYY-MM-DD. |
endDate |
date | null | no | Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) |
yes | The last day of the period the request covers. Format YYYY-MM-DD. |
needByDate |
date | null | no | Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) |
yes | The date the goods or services are needed by. Format YYYY-MM-DD. |
paymentTerms |
string | null | no | Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) |
no | The payment-terms key requested for the resulting order, for example 'net30'. |
externalId |
string | null | no | Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn), Pattern (like) |
no | The identifier this request has in the upstream system that produced it. It is not unique. |
entityName |
string | null | no | no | no | The name of the legal entity this request belongs to. |
departmentName |
string | null | no | no | no | The name of the department raising the request. |
lastModifiedDate |
date-time | null | no | Exact (eq, ne), Range (gt, gte, lt, lte, between), Any of (in, notIn) |
yes | The date and time the purchase request last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
{
"data": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"purchaseRequestNumber": "<purchaseRequestNumber>",
"description": "<description>",
"internalDescription": "<internalDescription>",
"externalMemo": "<externalMemo>",
"status": "<status>",
"currency": "<currency>",
"totalAmount": "19.99",
"startDate": "2026-01-15",
"endDate": "2026-01-15",
"needByDate": "2026-01-15",
"paymentTerms": "<paymentTerms>",
"externalId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"entityName": "<entityName>",
"departmentName": "<departmentName>",
"lastModifiedDate": "2026-01-15T09:30:00.000Z"
}
],
"pagination": {
"hasMore": true,
"nextCursor": "<nextCursor>"
}
}
Statuses
400— Invalid request or business failure401— The request carries no valid access token.403— Not authorized404— Not found429— Too many requests from this client address. The response has no body and noRetry-Afterheader.500— Internal server error