Skip to content

List invoices ​

Returns a paginated list of all invoices of the company. The list contains invoice headers without positions — use the details endpoint to retrieve the full positions list.

Request ​

GET /api/oauth/v2/resource/invoices

HeaderValue
AuthorizationBearer {access_token}

Query parameters ​

ParameterTypeRequiredDescription
offsetintegerNoStart position (default: 0, min: 0)
limitintegerNoNumber of results (default: 50, min: 1, max: 200)
createdSincestring (ISO 8601)NoOnly invoices created at or after this timestamp (createdAt >=)
createdUntilstring (ISO 8601)NoOnly invoices created at or before this timestamp (createdAt <=)
updatedSincestring (ISO 8601)NoOnly invoices modified at or after this timestamp (updatedAt >=). Newly created invoices are included, because the modification timestamp is set on creation.
updatedUntilstring (ISO 8601)NoOnly invoices modified at or before this timestamp (updatedAt <=)
statusstringNoComma-separated list (default: all). Allowed values: active, deleted. Invalid value → 400 validation_error. See Conventions for details.
viewstringNodefault (the default) or slim. slim returns only the most important fields per invoice — see Conventions for details. Invalid value → 400 validation_error.

Note: For a sync, updatedSince alone is enough — it covers new and modified invoices.

Note: Formats, time zones, sorting, cursor strategy, and the meta.total trap work the same across all filters. See Incremental Sync.

Note on deletions: Invoices carry no deletion timestamp of their own, but deleting one sets updatedAt. A deleted invoice stays visible via status=deleted (field data[].deleted = true), so it is detectable incrementally through updatedSince instead of disappearing from the list.

Response ​

Success (200 OK) ​

json
{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "sequence": 42,
      "formattedSequence": "RE-2026-0042",
      "name": "Invoice for Anna Muster",
      "status": "open",
      "net": 100.00,
      "subTotal": 110.00,
      "gross": 110.00,
      "discount": 0.00,
      "outstandingBalance": 110.00,
      "invoicingDate": "2026-06-01",
      "paidAt": null,
      "timeForPayment": "2026-06-15",
      "isFullyPaid": false,
      "visible": true,
      "comment": null,
      "customer": {
        "id": "f0e1d2c3-b4a5-6789-fedc-ba9876543210",
        "firstName": "Anna",
        "lastName": "Muster"
      },
      "deleted": false,
      "createdAt": "2026-06-01T09:30:00+02:00",
      "updatedAt": "2026-06-05T14:10:00+02:00"
    }
  ],
  "meta": {
    "total": 128,
    "offset": 0,
    "limit": 50
  }
}

Response fields ​

FieldTypeDescription
dataArrayList of invoices
data[].idstring (UUID)Unique ID of the invoice
data[].sequenceinteger | nullSequential invoice number
data[].formattedSequencestring | nullFormatted invoice number
data[].namestring | nullName of the invoice
data[].statusstring | nullInvoice status
data[].netnumber | nullNet amount
data[].subTotalnumber | nullSubtotal
data[].grossnumber | nullGross amount
data[].discountnumber | nullDiscount amount
data[].outstandingBalancenumber | nullOutstanding balance
data[].invoicingDatestring | nullInvoice date (YYYY-MM-DD)
data[].paidAtstring | nullPayment date (YYYY-MM-DD)
data[].timeForPaymentstring | nullPayment due date (YYYY-MM-DD)
data[].isFullyPaidbooleanFully paid
data[].visiblebooleanInvoice visible
data[].commentstring | nullComment on the invoice
data[].customerobject | nullAssigned customer
data[].customer.idstring (UUID)Customer ID
data[].customer.firstNamestringFirst name
data[].customer.lastNamestringLast name
data[].deletedbooleantrue if the invoice is deleted
data[].createdAtstring (ISO 8601) | nullCreation timestamp
data[].updatedAtstring (ISO 8601) | nullLast modification timestamp
meta.totalintegerTotal number of invoices
meta.offsetintegerCurrent start position
meta.limitintegerNumber of returned entries

Note on tenancies: If your company uses the Tenancies add-on, the list returns only invoices from tenancies the owning user of your API access has access to and where they hold the Rechnungen: Anzeigen permission. meta.total counts only those records. Details: Conventions.

Beispiele
bash
curl -X GET "https://my.offisy.at/api/oauth/v2/resource/invoices?offset=0&limit=50&createdSince=beispiel&createdUntil=beispiel&updatedSince=2026-04-15T10%3A00%3A00&updatedUntil=2026-04-15T10%3A00%3A00&status=all&view=default" \
  -H "Authorization: Bearer {access_token}"
Parameter
Zuerst Token anfordern

Possible errors ​

StatusCodeDescription
400validation_errorA timestamp filter contains an invalid value
400validation_errorstatus contains an invalid value
400validation_errorview is neither default nor slim
401invalid_clientInvalid or missing access token
403insufficient_scopeScope invoices not present

Offisy GmbH