Honorarnoten abrufen
Gibt eine paginierte Liste aller Honorarnoten des Unternehmens zurück.
Breaking Change: createdAt ist jetzt ein Zeitstempel
createdAt liefert jetzt einen vollständigen ISO-8601-Zeitstempel mit Offset (2026-06-01T09:30:00+02:00) statt eines reinen Datums (2026-06-01). Wer den Wert als Datum weiterverarbeitet, muss den Zeitanteil abschneiden.
Request
GET /api/oauth/v2/resource/fee-notes
Header
| Header | Wert |
|---|---|
Authorization | Bearer {access_token} |
Query-Parameter
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
offset | integer | Nein | Startposition (Standard: 0, Min: 0) |
limit | integer | Nein | Anzahl Ergebnisse (Standard: 50, Min: 1, Max: 200) |
createdSince | string (ISO 8601) | Nein | Nur Honorarnoten, die ab diesem Zeitpunkt angelegt wurden (createdAt >=) |
createdUntil | string (ISO 8601) | Nein | Nur Honorarnoten, die bis zu diesem Zeitpunkt angelegt wurden (createdAt <=) |
status | string | Nein | Kommaseparierte Liste (Standard: all). Erlaubte Werte: active, deleted. Ungültiger Wert → 400 validation_error. Details siehe Konventionen. |
Hinweis: Formate, Zeitzonen-Verhalten, Sortierung im Filter-Modus, Cursor-Strategie und die
meta.total-Falle gelten für alle Zeitstempel-Filter gleich – siehe Inkrementeller Abgleich. Bei Honorarnoten zählt dort überall der Erstellungszeitpunkt statt des Änderungszeitpunkts.Das Restrisiko der Paginierung tritt hier auf, wenn eine Honorarnote während des Durchlaufs gelöscht wird. Details dazu im Hinweis zu Löschungen unten.
Hinweis zu Änderungen und Löschungen: Honorarnoten führen weder einen Änderungs- noch einen Löschzeitpunkt. Deshalb gibt es hier nur
createdSinceundcreatedUntil. Über den Erstellungszeitpunkt sind ein Storno, eine nachträgliche Rechnungszuordnung und die Löschung der zugehörigen Rechnung nicht erkennbar.Eine Honorarnote wird zusammen mit ihrer Rechnung gelöscht. Sie bleibt über
status=deletedsichtbar (Felddata[].deleted=true), ohne dass dercreatedSince-Abgleich davon erfährt.Wer Löschungen braucht, kommt an einem periodischen Vollabgleich mit
status=deletednicht vorbei. Der inkrementelle Abgleich übercreatedSinceersetzt das hier also nicht.
Response
Erfolg (200 OK)
{
"data": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"sequence": 12,
"formattedSequence": "HN-2026-0012",
"stornoReason": null,
"deleted": false,
"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-Felder
| Feld | Typ | Beschreibung |
|---|---|---|
data | Array | Liste der Honorarnoten |
data[].id | string (UUID) | Eindeutige ID der Honorarnote |
data[].sequence | integer | null | Laufende Nummer der Honorarnote |
data[].formattedSequence | string | null | Formatierte Nummer der Honorarnote |
data[].stornoReason | string | null | Stornobegründung |
data[].deleted | boolean | true wenn die Honorarnote gelöscht ist (zusammen mit ihrer Rechnung) |
data[].createdAt | string (ISO 8601) | null | Erstellungszeitpunkt |
data[].customer | object | null | Zugeordnete:r Kunde/Kundin |
data[].customer.id | string (UUID) | Kunden-ID |
data[].customer.firstName | string | Vorname |
data[].customer.lastName | string | Nachname |
data[].invoice | object | null | Verknüpfte Rechnung (nur UUID-Referenz) |
data[].invoice.id | string (UUID) | UUID der verknüpften Rechnung |
meta.total | integer | Gesamtanzahl der Honorarnoten |
meta.offset | integer | Aktuelle Startposition |
meta.limit | integer | Anzahl der zurückgegebenen Einträge |
Hinweis zu Mandanten: Arbeitet dein Unternehmen mit dem Add-on Mandanten, liefert die Liste nur Honorarnoten aus Mandanten, auf die der Besitzer-Benutzer deines API-Zugangs Zugriff hat und in denen er das Recht Rechnungen: Anzeigen hat.
meta.totalzählt nur diese Datensätze. Details: Konventionen.
curl -X GET "https://my.offisy.at/api/oauth/v2/resource/fee-notes?offset=0&limit=50&createdSince=beispiel&createdUntil=beispiel&status=all" \
-H "Authorization: Bearer {access_token}"Mögliche Fehler
| Status | Code | Beschreibung |
|---|---|---|
| 400 | validation_error | Ein Zeitstempel-Filter enthält einen ungültigen Wert |
| 400 | validation_error | status enthält einen ungültigen Wert |
| 401 | invalid_client | Ungültiger oder fehlender Access Token |
| 403 | insufficient_scope | Scope invoices nicht vorhanden |