List purchase invoices
Find received purchase invoices in a date range with cursor pagination.
Endpoint
GET https://prod.gets.complyance.io/api/v3/documents?type=purchasesAuthentication
Authorization: Bearer YOUR_API_KEY. The API key selects the workspace and environment.
Parameters
| Query | Required | Description |
|---|---|---|
type | Yes | purchases |
companyId | No | Connect company ID for a UAE company. Restricts results to that company. Use the companyId returned by List companies. |
from | Yes | Start date, YYYY-MM-DD |
to | No | End date, YYYY-MM-DD; defaults to from |
limit | No | Page size, 1–100; default 100 |
cursor | No | Opaque nextCursor from the previous response |
peppolId | No | Buyer’s Peppol participant ID, including its scheme, such as 0235:100000000000003 |
source | No | Exact source name, such as acme-erp |
version | No | Exact source version, such as 1.0.0; can be used with or without source |
curl --get 'https://prod.gets.complyance.io/api/v3/documents' \
--header "Authorization: Bearer ${COMPLYANCE_API_KEY}" \
--header 'Accept: application/json' \
--data-urlencode 'type=purchases' \
--data-urlencode 'from=2026-09-22' \
--data-urlencode 'limit=100'The range includes both dates, using UTC day boundaries for receipt/storage. It does not filter by the supplier’s invoice issue date.
All supplied filters must match. You can use companyId alone or combine it with peppolId, source and version. Source names and versions are case-sensitive. A source name without a version includes all its versions; a version without a source name includes all sources with that version. An unmatched source or version returns an empty page.
curl --get 'https://prod.gets.complyance.io/api/v3/documents' \
--header "Authorization: Bearer ${COMPLYANCE_API_KEY}" \
--data-urlencode 'type=purchases' \
--data-urlencode 'from=2026-09-22' \
--data-urlencode 'companyId=66b9f0a1c2d3e4f567890123' \
--data-urlencode 'peppolId=0235:100000000000003' \
--data-urlencode 'source=acme-erp' \
--data-urlencode 'version=1.0.0'Response
{
"success": true,
"data": {
"items": [
{
"documentId": "01JEXAMPLE0000000000000142",
"receivedAt": "2026-09-22T08:15:00.000Z",
"storedAt": "2026-09-22T08:15:02.000Z",
"status": "purchase.invoice.stored",
"country": "AE",
"environment": "sandbox",
"invoiceNumber": "INV-2026-0142",
"supplierName": "Acme Trading LLC",
"issueDate": "2026-09-22"
}
],
"hasMore": false,
"nextCursor": null
}
}invoiceNumber, supplierName and issueDate can be null. receivedAt and storedAt describe receipt and storage; they are distinct from the supplier’s issue date.
When hasMore is true, request the next page with cursor=nextCursor. URL-encode the cursor and retain the same date range, filters and limit. Stop when hasMore is false. Do not construct or modify a cursor.
Errors
| HTTP / code | Meaning |
|---|---|
400 VALIDATION_ERROR | A date is not YYYY-MM-DD, from is after to, or the cursor is not valid |
400 NOT_SUPPORTED | Sales listing was requested; use type=purchases |
401 | Missing or invalid authentication; see authentication failures |
422 | from or type is missing, type is not recognised, or limit is above 100, peppolId has no scheme and identifier, or companyId, source or version is blank |
500 INTERNAL_ERROR | Retrieval failed; retry with backoff |
A 422 lists the checks that failed in its own format, without success, code and message. Check the HTTP status before reading the body.
Next, get a purchase invoice using a returned documentId.
Last updated