List purchase invoices

Find received purchase invoices in a date range with cursor pagination.

Endpoint

http
GET https://prod.gets.complyance.io/api/v3/documents?type=purchases

Authentication

Authorization: Bearer YOUR_API_KEY. The API key selects the workspace and environment.

Parameters

QueryRequiredDescription
typeYespurchases
companyIdNoConnect company ID for a UAE company. Restricts results to that company. Use the companyId returned by List companies.
fromYesStart date, YYYY-MM-DD
toNoEnd date, YYYY-MM-DD; defaults to from
limitNoPage size, 1–100; default 100
cursorNoOpaque nextCursor from the previous response
peppolIdNoBuyer’s Peppol participant ID, including its scheme, such as 0235:100000000000003
sourceNoExact source name, such as acme-erp
versionNoExact source version, such as 1.0.0; can be used with or without source
List one day's received purchasesbash
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.

Filter purchases by company, buyer and sourcebash
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

Example responsejson
{
  "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 / codeMeaning
400 VALIDATION_ERRORA date is not YYYY-MM-DD, from is after to, or the cursor is not valid
400 NOT_SUPPORTEDSales listing was requested; use type=purchases
401Missing or invalid authentication; see authentication failures
422from 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_ERRORRetrieval 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