Skip to content

List fee notes ​

Returns a paginated list of all fee notes of the company.

Breaking change: createdAt is now a timestamp

createdAt now returns a full ISO 8601 timestamp with offset (2026-06-01T09:30:00+02:00) instead of a plain date (2026-06-01). If you process the value as a date, strip the time part.

Request ​

GET /api/oauth/v2/resource/fee-notes

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 fee notes created at or after this timestamp (createdAt >=)
createdUntilstring (ISO 8601)NoOnly fee notes created at or before this timestamp (createdAt <=)

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

For fee notes, that means the creation timestamp everywhere, not the modification timestamp.

The residual risk of pagination shows up here when a fee note is deleted during the run. See the note on deletions below.

Note on changes and deletions: Fee notes carry neither a modification nor a deletion timestamp. That's why only createdSince and createdUntil exist here. A cancellation, a later invoice assignment, or the deletion of the linked invoice are not detectable through the creation timestamp.

A deleted fee note disappears from this list and from the details endpoint without the sync learning about it.

If you need those cases, a periodic full sync is unavoidable. Fetch all fee notes without a timestamp filter and compare them against your set. The incremental sync does not replace the full sync here.

Response ​

Success (200 OK) ​

json
{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "sequence": 12,
      "formattedSequence": "HN-2026-0012",
      "stornoReason": null,
      "createdAt": "2026-06-01T09:30:00+02:00",
      "customer": {
        "id": "f0e1d2c3-b4a5-6789-fedc-ba9876543210",
        "firstName": "Anna",
        "lastName": "Muster"
      },
      "invoice": {
        "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
      }
    }
  ],
  "meta": {
    "total": 30,
    "offset": 0,
    "limit": 50
  }
}

Response fields ​

FieldTypeDescription
dataArrayList of fee notes
data[].idstring (UUID)Unique ID of the fee note
data[].sequenceinteger | nullSequential fee note number
data[].formattedSequencestring | nullFormatted fee note number
data[].stornoReasonstring | nullReversal reason
data[].createdAtstring (ISO 8601) | nullCreation timestamp
data[].customerobject | nullAssigned customer
data[].customer.idstring (UUID)Customer ID
data[].customer.firstNamestringFirst name
data[].customer.lastNamestringLast name
data[].invoiceobject | nullLinked invoice (UUID reference only)
data[].invoice.idstring (UUID)UUID of the linked invoice
meta.totalintegerTotal number of fee notes
meta.offsetintegerCurrent start position
meta.limitintegerNumber of returned entries
Beispiele
bash
curl -X GET "https://my.offisy.at/api/oauth/v2/resource/fee-notes?offset=0&limit=50&createdSince=beispiel&createdUntil=beispiel" \
  -H "Authorization: Bearer {access_token}"
Parameter
Zuerst Token anfordern

Possible errors ​

StatusCodeDescription
400validation_errorA timestamp filter contains an invalid value
401invalid_clientInvalid or missing access token
403insufficient_scopeScope invoices not present

Offisy GmbH